MultiPhaseTransaction.java
上传用户:szyujian
上传日期:2016-09-20
资源大小:320k
文件大小:2k
源码类别:

android开发

开发平台:

C/C++

  1. /*
  2.  * Copyright (C) 2007 Esmertec AG.
  3.  * Copyright (C) 2007 The Android Open Source Project
  4.  *
  5.  * Licensed under the Apache License, Version 2.0 (the "License");
  6.  * you may not use this file except in compliance with the License.
  7.  * You may obtain a copy of the License at
  8.  *
  9.  *      http://www.apache.org/licenses/LICENSE-2.0
  10.  *
  11.  * Unless required by applicable law or agreed to in writing, software
  12.  * distributed under the License is distributed on an "AS IS" BASIS,
  13.  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14.  * See the License for the specific language governing permissions and
  15.  * limitations under the License.
  16.  */
  17. package com.android.im.imps;
  18. abstract class MultiPhaseTransaction extends AsyncTransaction {
  19.     public enum TransactionStatus {
  20.         TRANSACTION_COMPLETED,
  21.         TRANSACTION_CONTINUE,
  22.     }
  23.     /* Multi-phase asynchronous transaction carries no AsyncCompletion.
  24.      */
  25.     public MultiPhaseTransaction(ImpsTransactionManager manager) {
  26.         super(manager);
  27.     }
  28.     @Override
  29.     protected void notifySuccessResponse(Primitive response) {
  30.         TransactionStatus status = processResponse(response);
  31.         if (status != TransactionStatus.TRANSACTION_CONTINUE) {
  32.             mTransManager.endClientTransaction(this);
  33.         }
  34.     }
  35.     @Override
  36.     protected void notifyErrorResponse(ImpsErrorInfo error) {
  37.         TransactionStatus status = processResponseError(error);
  38.         if (status != TransactionStatus.TRANSACTION_CONTINUE) {
  39.             mTransManager.endClientTransaction(this);
  40.         }
  41.     }
  42.     public abstract TransactionStatus processResponseError(ImpsErrorInfo error);
  43.     public abstract TransactionStatus processResponse(Primitive response);
  44.     @Override
  45.     final public void onResponseError(ImpsErrorInfo error) { }
  46.     @Override
  47.     final public void onResponseOk(Primitive response) { }
  48. }