00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #ifndef INCL_FCONNECTION
00037 #define INCL_FCONNECTION
00038
00039 #include <es_sock.h>
00040 #include "base/fscapi.h"
00041 #include "base/util/StringBuffer.h"
00042 #include "base/globalsdef.h"
00043
00044 BEGIN_NAMESPACE
00045
00046
00048 #define MAX_RETRY_CONNECTION 3
00049
00050
00051
00052
00059 class FConnection
00060 {
00061
00062 private:
00063
00065 static FConnection* iInstance;
00066
00068 RSocketServ iSession;
00069
00071 RConnection iConnection;
00072
00074 StringBuffer iLocalIpAddress;
00075
00076
00079 TUint32 iIAP;
00080
00084 StringBuffer iIAPName;
00085
00086
00088 TInt iLastError;
00089
00091 TInt iRetryConnection;
00092
00096 bool isConnectionOpened;
00097
00098
00099
00100 static FConnection* NewL();
00101 static FConnection* NewLC();
00102
00107 void ConstructL();
00108
00117 const int openConnection();
00118
00119
00120
00127 TInt GetIAPIDFromName(const StringBuffer& aIAPName);
00128
00135 StringBuffer GetIAPNameFromID(const TUint aIAPID);
00136
00137
00138 protected:
00139
00141 FConnection();
00142
00143 public:
00144
00146 static FConnection* getInstance();
00147
00149 static void dispose();
00150
00151
00153 virtual ~FConnection();
00154
00155
00164 const int startConnection();
00165
00174 const int startConnection(const StringBuffer& aIAPName);
00175
00184 void closeConnection();
00185
00195 const int stopConnection();
00196
00202 const bool isConnected();
00203
00208 const StringBuffer& getLocalIpAddress();
00209
00216 void setIAPName(const StringBuffer& aIAPName) { iIAPName = aIAPName; }
00217
00219 StringBuffer& getIAPName() { return iIAPName; }
00220
00227 RArray<HBufC*> GetAllIAPNames() ;
00228
00229
00230
00232 RConnection* getConnection() { return &iConnection; }
00233
00235 RSocketServ* getSession() { return &iSession; }
00236
00238 TInt getLastError() { return iLastError; }
00239 };
00240
00241 END_NAMESPACE
00242
00243 #endif