• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
18 package com.android.im.imps;
19 
20 import com.android.im.engine.ImException;
21 
22 /**
23  * The protocol binding in data channel might be WSP, HTTP and HTTPS which are
24  * asymmetric. In this case when the server needs to start transaction, it has
25  * to send a communication initiation request message through the CIR channel to
26  * the client in order to request an immediate PollingRequest message from the
27  * client to the server on the data channel.
28  */
29 abstract class CirChannel {
30     protected ImpsConnection mConnection;
31 
CirChannel(ImpsConnection connection)32     protected CirChannel(ImpsConnection connection) {
33         mConnection = connection;
34     }
35 
36     /**
37      * Establishes the connection to the server if the protocol is connection
38      * oriented (e.g. as TCP)and starts to listen to CIR requests from the
39      * server.
40      * @throws Exception
41      */
connect()42     public abstract void connect() throws ImException;
43 
44     /**
45      * Re-establish the connection and drop the old one.
46      */
reconnect()47     public void reconnect(){
48     }
49 
50     /**
51      * Tells if the CIR has been shutdown or not.
52      */
isShutdown()53     public abstract boolean isShutdown();
54 
55     /**
56      * Shutdown the CIR channel, stops to listen to CIR requests from the server.
57      *
58      */
shutdown()59     public abstract void shutdown();
60 }
61