|
1 /* |
|
2 * Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). |
|
3 * All rights reserved. |
|
4 * This component and the accompanying materials are made available |
|
5 * under the terms of "Eclipse Public License v1.0" |
|
6 * which accompanies this distribution, and is available |
|
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
8 * |
|
9 * Initial Contributors: |
|
10 * Nokia Corporation - initial contribution. |
|
11 * |
|
12 * Contributors: |
|
13 * |
|
14 * Description: Connection Manager for IMPS Protocol adaptation |
|
15 * |
|
16 */ |
|
17 |
|
18 #ifndef __CIMPSPLUGINCONNECTIONMANAGER_H__ |
|
19 #define __CIMPSPLUGINCONNECTIONMANAGER_H__ |
|
20 |
|
21 // INCLUDES |
|
22 #include <e32base.h> |
|
23 #include <impsclient.h> |
|
24 #include <impsaccesscli.h> |
|
25 #include <impspurecli.h> |
|
26 #include <flogger.h> |
|
27 #include <ximpstatus.h> |
|
28 |
|
29 #include "PEngPresenceEngineConsts2.h" |
|
30 #include "MPEngSessionStatusObserver.h" |
|
31 #include "impsconfig.h" |
|
32 #include "impsconnectionmanagercontrolif.h" |
|
33 #include "PImpsAdapWVCspVersion.h" |
|
34 #include "CPresenceNotificationHandler.h" |
|
35 |
|
36 |
|
37 // FORWARD DECLARATIONS |
|
38 |
|
39 class MXIMPServiceInfo; |
|
40 class MImpsConnectionObserver; |
|
41 class CImpsPluginAccessHandler; |
|
42 class CImpsPluginPureDataHandler; |
|
43 class MXIMPProtocolConnectionHost; |
|
44 class CImpsPluginLoginRequest; |
|
45 class CImpsPluginLogoutRequest; |
|
46 class CActive; |
|
47 |
|
48 |
|
49 |
|
50 /** |
|
51 * CImpsPluginConnectionManager |
|
52 * |
|
53 * Every Imps Connection has Connection Manager Object. |
|
54 * |
|
55 * @lib ?library |
|
56 * @since S60 v4.0 |
|
57 */ |
|
58 NONSHARABLE_CLASS( CImpsPluginConnectionManager ) : public CBase, |
|
59 public MImpsPrtPluginConnectionManager, |
|
60 public MPEngSessionStatusObserver |
|
61 // implement session status observer callback |
|
62 { |
|
63 |
|
64 public: |
|
65 |
|
66 static CImpsPluginConnectionManager* NewL(); |
|
67 virtual ~CImpsPluginConnectionManager(); |
|
68 |
|
69 |
|
70 private: |
|
71 |
|
72 CImpsPluginConnectionManager(); |
|
73 void ConstructL(); |
|
74 |
|
75 |
|
76 public: // MImpsPrtPluginConnectionManager |
|
77 |
|
78 TInt32 IapId(); |
|
79 TDesC& ServerAddress(); |
|
80 TDesC& UserName(); |
|
81 TDesC& Password(); |
|
82 |
|
83 CImpsPluginAccessHandler& AccessHandler(); |
|
84 CImpsPluginPureDataHandler& DataHandler(); |
|
85 |
|
86 MXIMPProtocolConnectionHost& HandleToHost(); |
|
87 void InitializeStatusL(); |
|
88 |
|
89 public: |
|
90 |
|
91 void StatusChangedL( TPEngNWSessionSlotState aNewState, |
|
92 TPEngNWSessionSlotEvent aNewEvent ); |
|
93 |
|
94 public: |
|
95 |
|
96 void ReserveSpaceForOneMoreRequestL(); |
|
97 void AddRequest( CActive* aRequestObject ); |
|
98 void Remove( CActive* aRequestObject ); |
|
99 CPEngXMLParser& Parser(); |
|
100 void ManufactureDataHandlerL(); |
|
101 TBool IsDataHandlerCreatedL(); |
|
102 TImpsAdapWVCspVersion GetVersion(); |
|
103 void SetVersion( TImpsAdapWVCspVersion aVersion ); |
|
104 |
|
105 public: // new methods |
|
106 |
|
107 |
|
108 /** |
|
109 * ?description |
|
110 * |
|
111 * @since S60 ?S60_version |
|
112 * @param ?arg1 ?description |
|
113 * @param ?arg2 ?description |
|
114 * @return ?description |
|
115 */ |
|
116 void SetHost( MXIMPProtocolConnectionHost& aHost ); |
|
117 |
|
118 |
|
119 void SetConnectionParamsL( const TDesC& aServerAddress, |
|
120 const TDesC& aUserName, |
|
121 const TDesC& aPassword, |
|
122 const TInt32 aIapId ); |
|
123 |
|
124 RArray< HBufC >* PresenceAuthGrantReqList(); |
|
125 |
|
126 private: // data |
|
127 |
|
128 HBufC* iServerAddress; |
|
129 HBufC* iUserName; |
|
130 HBufC* iPassword; |
|
131 TInt32 iIapId; |
|
132 TBool iIsDataHandlerReady; |
|
133 |
|
134 CImpsPluginLoginRequest* iLoginRequest; |
|
135 CImpsPluginLogoutRequest* iLogoutRequest; |
|
136 |
|
137 RImpsEng iImpsClient; |
|
138 |
|
139 CImpsPluginAccessHandler* iAccessHandler; |
|
140 CImpsPluginPureDataHandler* iPureHandler; |
|
141 |
|
142 MXIMPStatus* iDisconnectStatusObj; |
|
143 MXIMPProtocolConnectionHost* iHostHandle; |
|
144 |
|
145 RPointerArray< CActive > iRequestArray; |
|
146 TImpsAdapWVCspVersion iCSPVersion; |
|
147 |
|
148 public: //data |
|
149 |
|
150 RArray< HBufC > iPresenceAuthGrantReqList; |
|
151 CPresenceNotificationHandler* iNotifier; |
|
152 CPresenceNotificationHandler* PresNotifier(); |
|
153 }; |
|
154 |
|
155 |
|
156 #endif // __CIMPSPLUGINCONNECTIONMANAGER_H__ |