|
1 /* |
|
2 * Copyright (c) 2002-2005 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: |
|
15 * logger for imps client. |
|
16 * |
|
17 */ |
|
18 |
|
19 |
|
20 // INCLUDE FILES |
|
21 #include <e32std.h> |
|
22 #ifdef _DEBUG |
|
23 #include <flogger.h> |
|
24 #endif |
|
25 #include "impsutils.h" |
|
26 #include "impsservercommon.h" |
|
27 #include "impsservices.h" |
|
28 #include "ImpsVariantAPI.h" |
|
29 |
|
30 |
|
31 // ================= MEMBER FUNCTIONS ======================= |
|
32 |
|
33 |
|
34 |
|
35 //********************************** |
|
36 // CImpsClientLogger |
|
37 //********************************** |
|
38 const TInt KLogBufferLength = 356; |
|
39 //_LIT(KLogDir, "impsc"); |
|
40 //_LIT(KLogFile, "impsc.txt"); |
|
41 |
|
42 EXPORT_C void CImpsClientLogger::Log(TRefByValue<const TDesC> aFmt,...) |
|
43 { |
|
44 VA_LIST list; |
|
45 VA_START(list, aFmt); |
|
46 |
|
47 // Print to log file |
|
48 TBuf<KLogBufferLength> buf; |
|
49 buf.FormatList(aFmt, list); |
|
50 |
|
51 #ifdef _DEBUG |
|
52 _LIT(KLogDir, "impsc"); |
|
53 _LIT(KLogFile, "impsc.txt"); |
|
54 // Write to log file |
|
55 RFileLogger::Write(KLogDir, KLogFile, EFileLoggingModeAppend, buf); |
|
56 RDebug::RawPrint( buf ); |
|
57 #endif |
|
58 |
|
59 } |
|
60 |
|
61 |
|
62 //********************************** |
|
63 // CImpsSettingFile |
|
64 //********************************** |
|
65 |
|
66 EXPORT_C CImpsSettingFile* CImpsSettingFile::NewL( |
|
67 RFs& aFs ) |
|
68 { |
|
69 CImpsSettingFile* self = new (ELeave) CImpsSettingFile( aFs ); |
|
70 return self; |
|
71 } |
|
72 |
|
73 EXPORT_C CImpsSettingFile::~CImpsSettingFile() |
|
74 { |
|
75 if ( iOpen ) |
|
76 { |
|
77 iReader.Close(); |
|
78 } |
|
79 iOpen = EFalse; |
|
80 } |
|
81 |
|
82 CImpsSettingFile::CImpsSettingFile( RFs& aFs) |
|
83 : iFs( aFs ), |
|
84 iOpen( EFalse ) |
|
85 { |
|
86 |
|
87 } |
|
88 |
|
89 EXPORT_C void CImpsSettingFile::OpenL(TDesC& aResFile) |
|
90 { |
|
91 // open a file |
|
92 iFileName = aResFile; |
|
93 |
|
94 TInt myError = iReader.Open( iFs, |
|
95 iFileName, |
|
96 EFileShareReadersOnly ); |
|
97 |
|
98 User::LeaveIfError( myError ); |
|
99 iOpen = ETrue; |
|
100 |
|
101 } |
|
102 |
|
103 EXPORT_C TPtrC8 CImpsSettingFile::KeyValueL( const TDesC8& aKey ) |
|
104 { |
|
105 |
|
106 TPtrC8 myKey; |
|
107 TPtrC8 myValue; |
|
108 TBool getIt(EFalse); |
|
109 TInt err = 0; |
|
110 |
|
111 // Reset the reader |
|
112 OpenL( iFileName ); |
|
113 |
|
114 // Start to search |
|
115 while ( !getIt) |
|
116 { |
|
117 TRAP ( err, ReadRowL( myKey, myValue )); |
|
118 if ( err != KErrNone ) |
|
119 { |
|
120 User::Leave( KErrNotFound ); |
|
121 } |
|
122 if ( !myKey.CompareF( aKey )) |
|
123 { |
|
124 return myValue; |
|
125 } |
|
126 } |
|
127 return TPtrC8(); |
|
128 } |
|
129 |
|
130 void CImpsSettingFile::ReadRowL( TPtrC8& aKey, TPtrC8& aValue ) |
|
131 { |
|
132 // READ ONE ROW |
|
133 TChar delim( 10 ); |
|
134 iReader.ReadL( iRowBuffer, delim); |
|
135 TInt length = iRowBuffer.Length(); |
|
136 if ( length > 2 ) |
|
137 { |
|
138 // DROP CR+LF FROM THE END OF LINE |
|
139 iRowBuffer.Delete( length - 2, 2 ); |
|
140 |
|
141 TInt pos = 0; |
|
142 pos = iRowBuffer.Find( _L8("=") ); |
|
143 if ( pos > 0 ) |
|
144 { |
|
145 aKey.Set( iRowBuffer.Left( pos ) ); |
|
146 // Cut off separator |
|
147 aValue.Set( iRowBuffer.Mid( pos + 1 ) ); |
|
148 } |
|
149 } |
|
150 } |
|
151 |
|
152 //********************************** |
|
153 // impsService |
|
154 //********************************** |
|
155 |
|
156 EXPORT_C GLDEF_C TImpsEventType impsService( const CImpsVariant* /*aVariant*/, |
|
157 TImpsMessageType aMessage ) |
|
158 { |
|
159 TImpsEventType event(EImpsEventNone); |
|
160 // Notice: update this table when new methods supported |
|
161 |
|
162 |
|
163 switch ( aMessage ) |
|
164 { |
|
165 case EImpsLoginReq: |
|
166 case EImpsLoginRes: |
|
167 case EImpsLogoutReq: |
|
168 case EImpsDisconnect: |
|
169 case EImpsClientCapabilityReq: // this is not mistake, |
|
170 // part of login procedure |
|
171 case EImpsServiceReq: // Same here. |
|
172 event = EImpsEventServerLogin; |
|
173 break; |
|
174 // IM |
|
175 case EImpsSendMessageReq: |
|
176 case EImpsSendMessageRes: |
|
177 case EImpsGetMessageReq: |
|
178 case EImpsNewMessage: |
|
179 case EImpsMessageDelivered: |
|
180 case EImpsGetBlockedListReq: |
|
181 case EImpsGetBlockedListRes: |
|
182 case EImpsBlockEntityReq: |
|
183 case EImpsDeliveryReportReq: |
|
184 event = EImpsEventMessage; |
|
185 break; |
|
186 // Presence |
|
187 case EImpsSubscribePresenceReq: |
|
188 case EImpsUnsubscribePresenceReq: |
|
189 case EImpsGetPresenceReq: |
|
190 case EImpsGetPresenceRes: |
|
191 case EImpsUpdatePresenceReq: |
|
192 case EImpsPresenceNotification: |
|
193 case EImpsCreateAttrListReq: |
|
194 case EImpsPureData: |
|
195 case EImpsGetWatcherListReq: |
|
196 case EImpsGetWatcherListRes: |
|
197 case EImpsPresenceAuthReq: |
|
198 case EImpsPresenceAuthUser: |
|
199 case EImpsCancelAuthReq: |
|
200 case EImpsGetListReq: |
|
201 case EImpsGetListRes: |
|
202 case EImpsCreateListReq: |
|
203 case EImpsDeleteListReq: |
|
204 case EImpsListManageReq: |
|
205 case EImpsListManageRes: |
|
206 case EImpsDeleteAttrListReq: |
|
207 case EImpsGetAttrListReq: |
|
208 case EImpsGetAttrListRes: |
|
209 event = EImpsEventPresence; |
|
210 break; |
|
211 // Group |
|
212 case EImpsCreateGroupReq: |
|
213 case EImpsDeleteGroupReq: |
|
214 case EImpsJoinGroupReq: |
|
215 case EImpsJoinGroupRes: |
|
216 case EImpsLeaveGroupReq: |
|
217 case EImpsLeaveGroupRes: |
|
218 case EImpsGroupMembersReq: |
|
219 case EImpsGroupMembersRes: |
|
220 case EImpsAddGroupMembersReq: |
|
221 case EImpsRemoveGroupMembersReq: |
|
222 case EImpsGroupMemberAccessReq: |
|
223 case EImpsGroupPropertiesReq: |
|
224 case EImpsGroupPropertiesRes: |
|
225 case EImpsSetGroupPropertiesReq: |
|
226 case EImpsGroupRejectListReq: |
|
227 case EImpsGroupRejectListRes: |
|
228 case EImpsSubsGroupNoticeReq: |
|
229 case EImpsSubsGroupNoticeRes: |
|
230 case EImpsGroupChangeNotice: |
|
231 case EImpsSubsGroupNoticeUnset: |
|
232 case EImpsSubsGroupNoticeGet: |
|
233 case EImpsSubsGroupNoticeSet: |
|
234 case EImpsNewUsers: |
|
235 case EImpsLeftUsers: |
|
236 event = EImpsEventGroup; |
|
237 break; |
|
238 // Fundamental |
|
239 case EImpsSearchReq: |
|
240 case EImpsStopSearchReq: |
|
241 case EImpsSearchRes: |
|
242 case EImpsInviteReq: |
|
243 case EImpsInviteRes: |
|
244 case EImpsInviteUserReq: |
|
245 case EImpsInviteUserRes: |
|
246 case EImpsCancelInviteReq: |
|
247 case EImpsCancelInviteUserReq: |
|
248 event = EImpsEventCommon; |
|
249 break; |
|
250 default: |
|
251 event = EImpsEventNone; |
|
252 } |
|
253 return event; |
|
254 } |
|
255 |
|
256 // End of File |
|
257 |