|
1 /* |
|
2 * Copyright (c) 2002 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 * Class for more comprehensive logging features |
|
16 * |
|
17 */ |
|
18 |
|
19 |
|
20 #ifndef __ALWAYSONLINEEMAILLOGGINGTOOLS_H__ |
|
21 #define __ALWAYSONLINEEMAILLOGGINGTOOLS_H__ |
|
22 |
|
23 #ifdef _DEBUG |
|
24 #define AO_LOGGING_TOOLS_ON |
|
25 #endif |
|
26 |
|
27 #ifdef AO_LOGGING_TOOLS_ON |
|
28 |
|
29 #include <e32debug.h> |
|
30 #include <flogger.h> |
|
31 |
|
32 |
|
33 const TInt KAOLoggingToolsBuffer = 200; |
|
34 const TInt KAOLoggingToolsMaxFuncLength = 40; |
|
35 const TInt KAOLoggingToolsMaxMsgLength = 70; |
|
36 |
|
37 #define AO_LAST_MAP_VALUE -999983 |
|
38 #define AO_LAST_MAP_ROW { AO_LAST_MAP_VALUE , (TText*)L" val not found!" } |
|
39 #define AO_MAP_ROW(a,b) { a , (TText*)L ## #b } |
|
40 |
|
41 // define AOLOG_USE_RBUF if you want to use RBuf (heap) instead of TBuf (stack) |
|
42 // There is not used CleanupStack with RBuf because of efficiency issues |
|
43 // that my cause memory leaks (and leak notifications in debug mode) |
|
44 #define AO_LOG_USE_RBUF |
|
45 |
|
46 struct AOMapVal // CSI: 80 # no need to use classes |
|
47 { |
|
48 TInt _numVal; |
|
49 TText* _strVal; |
|
50 }; |
|
51 |
|
52 /* |
|
53 * Log filter stages |
|
54 */ |
|
55 |
|
56 enum TAOLogVerboseSt |
|
57 { |
|
58 EAOLogSt1 = 0x00000001, // log st1 |
|
59 |
|
60 EAoLogSt2 = 0x00000002, // log st2 |
|
61 |
|
62 EAoLogSt3 = 0x00000004, // log st3 |
|
63 |
|
64 EAoLogInOut = 0x00000008, // in out logs |
|
65 |
|
66 EAoLogStAll = 0xffffffff // all |
|
67 }; |
|
68 |
|
69 /* |
|
70 * Log directory and file |
|
71 */ |
|
72 |
|
73 _LIT(KAOEmailLogToolsDir, "AOEmail"); |
|
74 _LIT(KAOEmailLogToolsFile, "AOEmailTool.txt"); |
|
75 |
|
76 |
|
77 /* |
|
78 * Hard coded log verbose state |
|
79 */ |
|
80 |
|
81 const TInt KAoLoggingToolsFilter = EAoLogStAll; |
|
82 |
|
83 |
|
84 /* |
|
85 * Default log strings |
|
86 */ |
|
87 |
|
88 _LIT(KAOMapError, " tableptr NULL, check AOLogT::WriteAoL implementation"); |
|
89 _LIT(KAOLogToolInFunc, "--> " ); |
|
90 _LIT(KAOLogToolOutFunc, "<-- " ); |
|
91 _LIT(KAOLogError, "LOGGING ERROR" ); |
|
92 |
|
93 |
|
94 /* |
|
95 * Value mapping table to email plugin states |
|
96 */ |
|
97 |
|
98 const AOMapVal EMailPluginStatesTable[] = |
|
99 { |
|
100 AO_MAP_ROW(0,EEmailAgentInitialised), |
|
101 AO_MAP_ROW(1,EEmailAgentIdle), |
|
102 AO_MAP_ROW(2,EEmailAgentConnecting), |
|
103 AO_MAP_ROW(3,EEmailAgentDoingFilteredPopulate), |
|
104 AO_MAP_ROW(4,EEmailAgentPlainConnecting), |
|
105 AO_MAP_ROW(5,EEmailAgentConnectingToStayOnline), |
|
106 AO_MAP_ROW(6,EEmailAgentSynchronising), |
|
107 AO_MAP_ROW(7,EEmailAgentFetching), |
|
108 AO_MAP_ROW(8,EEmailAgentAutoDisconnecting), |
|
109 AO_MAP_ROW(9,EEmailAgentUserDisconnecting), |
|
110 AO_MAP_ROW(10,EEmailAgentQueued), |
|
111 AO_MAP_ROW(11,EEmailAgentTimerWaiting), |
|
112 AO_MAP_ROW(12,EEmailAgentTimerWaitingForStart), |
|
113 AO_MAP_ROW(13,EEmailAgentTimerWaitingForStop), |
|
114 AO_MAP_ROW(14,EEmailAgentReconnecting), |
|
115 AO_MAP_ROW(15,EEmailAgentConnectFailed), |
|
116 AO_MAP_ROW(16,EEmailAgentFatalError), |
|
117 AO_MAP_ROW(17,EEmailAgentConnTerminated), |
|
118 AO_LAST_MAP_ROW |
|
119 }; |
|
120 |
|
121 |
|
122 const AOMapVal TManagerServerCommandsTable[] = |
|
123 { |
|
124 AO_MAP_ROW(0,EAOManagerPluginStart), |
|
125 AO_MAP_ROW(1,EAOManagerPluginStop), |
|
126 AO_MAP_ROW(2,EAOManagerStartedRoaming), |
|
127 AO_MAP_ROW(3,EAOManagerStoppedRoaming), |
|
128 AO_MAP_ROW(4,EAOManagerNWOpsAllowed), |
|
129 AO_MAP_ROW(5,EAOManagerNWOpsNotAllowed), |
|
130 AO_MAP_ROW(6,EAOManagerDiskSpaceAboveCritical), |
|
131 AO_MAP_ROW(7,EAOManagerDiskSpaceBelowCritical), |
|
132 AO_MAP_ROW(8,EAOManagerSuicideQuery), |
|
133 AO_MAP_ROW(199,EAOManagerAOSchdulerError), |
|
134 AO_MAP_ROW(1000,EAOManagerEmailCommandBase), |
|
135 AO_MAP_ROW(1001,EAOManagerMailboxAgentSuspend), |
|
136 AO_MAP_ROW(1002,EAOManagerMailboxAgentResume), |
|
137 AO_MAP_ROW(1003,EAOManagerMailboxAgentRemove), |
|
138 AO_MAP_ROW(1004,EAOManagerEMNReceived), |
|
139 AO_MAP_ROW(1005,EAOManagerMailboxAgentUpdateMailWhileConnected), |
|
140 AO_LAST_MAP_ROW |
|
141 }; |
|
142 |
|
143 const AOMapVal TMsvSessionEventTable[] = |
|
144 { |
|
145 AO_MAP_ROW(0,EMsvEntriesCreated), |
|
146 AO_MAP_ROW(1,EMsvEntriesChanged), |
|
147 AO_MAP_ROW(2,EMsvEntriesDeleted), |
|
148 AO_MAP_ROW(3,EMsvEntriesMoved), |
|
149 AO_MAP_ROW(4,EMsvMtmGroupInstalled), |
|
150 AO_MAP_ROW(5,EMsvMtmGroupDeInstalled), |
|
151 AO_MAP_ROW(6,EMsvGeneralError), |
|
152 AO_MAP_ROW(7,EMsvCloseSession), |
|
153 AO_MAP_ROW(8,EMsvServerReady), |
|
154 AO_MAP_ROW(9,EMsvServerFailedToStart), |
|
155 AO_MAP_ROW(10,EMsvCorruptedIndexRebuilt), |
|
156 AO_MAP_ROW(11,EMsvServerTerminated), |
|
157 AO_MAP_ROW(12,EMsvMediaChanged), |
|
158 AO_MAP_ROW(13,EMsvMediaUnavailable), |
|
159 AO_MAP_ROW(14,EMsvMediaAvailable), |
|
160 AO_MAP_ROW(15,EMsvMediaIncorrect), |
|
161 AO_MAP_ROW(16,EMsvCorruptedIndexRebuilding), |
|
162 AO_LAST_MAP_ROW |
|
163 }; |
|
164 |
|
165 const AOMapVal NormalErrorTable[] = |
|
166 { |
|
167 AO_MAP_ROW(0, KErrNone), |
|
168 AO_MAP_ROW(-1, KErrNotFound), |
|
169 AO_MAP_ROW(-2, KErrGeneral), |
|
170 AO_MAP_ROW(-3, KErrCancel), |
|
171 AO_MAP_ROW(-4, KErrNoMemory), |
|
172 AO_MAP_ROW(-5, KErrNotSupported), |
|
173 AO_MAP_ROW(-6, KErrArgument), |
|
174 AO_MAP_ROW(-7, KErrTotalLossOfPrecision), |
|
175 AO_MAP_ROW(-8, KErrBadHandle), |
|
176 AO_MAP_ROW(-9, KErrOverflow), |
|
177 AO_MAP_ROW(-5120, KErrAoServerNotFound), |
|
178 AO_MAP_ROW(-10, KErrUnderflow), |
|
179 AO_MAP_ROW(-11, KErrAlreadyExists), |
|
180 AO_MAP_ROW(-12, KErrPathNotFound), |
|
181 AO_MAP_ROW(-13, KErrDied), |
|
182 AO_MAP_ROW(-14, KErrInUse), |
|
183 AO_MAP_ROW(-15, KErrServerTerminated), |
|
184 AO_MAP_ROW(-16, KErrServerBusy), |
|
185 AO_MAP_ROW(-17, KErrCompletion), |
|
186 AO_MAP_ROW(-18, KErrNotReady), |
|
187 AO_MAP_ROW(-19, KErrUnknown), |
|
188 AO_MAP_ROW(-20, KErrCorrupt), |
|
189 AO_MAP_ROW(-21, KErrAccessDenied), |
|
190 AO_MAP_ROW(-22, KErrLocked), |
|
191 AO_MAP_ROW(-23, KErrWrite), |
|
192 AO_MAP_ROW(-24, KErrDisMounted), |
|
193 AO_MAP_ROW(-26, KErrDiskFull), |
|
194 AO_MAP_ROW(-27, KErrBadDriver), |
|
195 AO_MAP_ROW(-28, KErrBadName), |
|
196 AO_MAP_ROW(-29, KErrCommsLineFail), |
|
197 AO_MAP_ROW(-30, KErrCommsFrame), |
|
198 AO_MAP_ROW(-31, KErrCommsOverrun), |
|
199 AO_MAP_ROW(-32, KErrCommsParity), |
|
200 AO_MAP_ROW(-33, KErrTimedOut), |
|
201 AO_MAP_ROW(-34, KErrCouldNotConnect), |
|
202 AO_MAP_ROW(-17210,KErrConnectionTerminated), |
|
203 AO_MAP_ROW(-17211,KErrCannotFindProtocol), |
|
204 AO_MAP_ROW(-35, KErrCouldNotDisconnect), |
|
205 AO_MAP_ROW(-36, KErrDisconnected), |
|
206 AO_MAP_ROW(-37, KErrBadLibraryEntryPoint), |
|
207 AO_MAP_ROW(-38, KErrBadDescriptor), |
|
208 AO_MAP_ROW(-39, KErrAbort), |
|
209 AO_MAP_ROW(-40, KErrTooBig), |
|
210 AO_MAP_ROW(-41, KErrDivideByZero), |
|
211 AO_MAP_ROW(-42, KErrBadPower), |
|
212 AO_MAP_ROW(-43, KErrDirFull), |
|
213 AO_MAP_ROW(-44, KErrHardwareNotAvailable), |
|
214 AO_MAP_ROW(-45, KErrSessionClosed), |
|
215 AO_MAP_ROW(-46, KErrPermissionDenied), |
|
216 AO_MAP_ROW(-47, KErrExtensionNotSupported), |
|
217 AO_MAP_ROW(-48, KErrCommsBreak), |
|
218 AO_MAP_ROW(-170, KPop3CannotConnect), |
|
219 AO_MAP_ROW(-171, KPop3InvalidUser), |
|
220 AO_MAP_ROW(-172, KPop3InvalidLogin), |
|
221 AO_MAP_ROW(-173, KPop3CannotCreateApopLogonString), |
|
222 AO_MAP_ROW(-174, KPop3ProblemWithRemotePopServer), |
|
223 AO_MAP_ROW(-175, KPop3CannotOpenServiceEntry), |
|
224 AO_MAP_ROW(-176, KPop3CannotSetRequiredFolderContext), |
|
225 AO_MAP_ROW(-177, KPop3InvalidApopLogin), |
|
226 AO_MAP_ROW(-180, KImskErrorDNSNotFound), |
|
227 AO_MAP_ROW(-183, KImskErrorActiveSettingIsDifferent), |
|
228 AO_MAP_ROW(-181, KImskErrorControlPanelLocked), |
|
229 AO_MAP_ROW(-182, KImskErrorISPOrIAPRecordNotFound), |
|
230 AO_MAP_ROW(-184, KImskSecuritySettingsFailed), |
|
231 AO_MAP_ROW(-200, KErrImapConnectFail), |
|
232 AO_MAP_ROW(-201, KErrImapServerFail), |
|
233 AO_MAP_ROW(-202, KErrImapServerParse), |
|
234 AO_MAP_ROW(-203, KErrImapServerBusy), |
|
235 AO_MAP_ROW(-204, KErrImapServerVersion), |
|
236 AO_MAP_ROW(-213 ,KErrImapInvalidServerResponse), |
|
237 AO_MAP_ROW(-205, KErrImapSendFail), |
|
238 AO_MAP_ROW(-206, KErrImapBadLogon), |
|
239 AO_MAP_ROW(-207, KErrImapSelectFail), |
|
240 AO_MAP_ROW(-208, KErrImapWrongFolder), |
|
241 AO_MAP_ROW(-209, KErrImapServerNoSecurity), |
|
242 AO_MAP_ROW(-210, KErrImapServerLoginDisabled), |
|
243 AO_MAP_ROW(-211, KErrImapTLSNegotiateFailed), |
|
244 AO_MAP_ROW(-212, KErrImapCantDeleteFolder), |
|
245 AO_MAP_ROW(-240, KSmtpNoMailFromErr), |
|
246 AO_MAP_ROW(-241, KSmtpUnknownErr), |
|
247 AO_MAP_ROW(-242, KSmtpBadMailFromAddress), |
|
248 AO_MAP_ROW(-243, KSmtpBadRcptToAddress), |
|
249 AO_MAP_ROW(-244, KSmtpLoginRefused), |
|
250 AO_MAP_ROW(-245, KSmtpNoMsgsToSendWithActiveSettings), |
|
251 AO_MAP_ROW(-246, KErrSmtpTLSNegotiateFailed), |
|
252 AO_MAP_ROW(-249, KSmtpTopError), |
|
253 AO_MAP_ROW(-260, KErrPop3TLSNegotiateFailed), |
|
254 AO_MAP_ROW(-2013, KErrEtelPortNotLoanedToClient), |
|
255 AO_MAP_ROW(-2014, KErrEtelWrongModemType), |
|
256 AO_MAP_ROW(-2015, KErrEtelUnknownModemCapability), |
|
257 AO_MAP_ROW(-2016, KErrEtelAnswerAlreadyOutstanding), |
|
258 AO_MAP_ROW(-2017, KErrEtelModemNotDetected), |
|
259 AO_MAP_ROW(-2018, KErrEtelModemSettingsCorrupt), |
|
260 AO_MAP_ROW(-2019, KErrEtelPortAlreadyLoaned), |
|
261 AO_MAP_ROW(-2020, KErrEtelCallAlreadyActive), |
|
262 AO_MAP_ROW(-3001, KErrExitNoModem), |
|
263 AO_MAP_ROW(-3002, KErrExitModemError), |
|
264 AO_MAP_ROW(-3003, KErrExitLoginFail), |
|
265 AO_MAP_ROW(-3004, KErrExitScriptTimeOut), |
|
266 AO_MAP_ROW(-3005, KErrExitScriptError), |
|
267 AO_MAP_ROW(-3050, KErrIfAuthenticationFailure), |
|
268 AO_MAP_ROW(-3051, KErrIfAuthNotSecure), |
|
269 AO_MAP_ROW(-3052, KErrIfAccountDisabled), |
|
270 AO_MAP_ROW(-3053, KErrIfRestrictedLogonHours), |
|
271 AO_MAP_ROW(-3055, KErrIfNoDialInPermission), |
|
272 AO_MAP_ROW(-3056, KErrIfChangingPassword), |
|
273 AO_MAP_ROW(-3057, KErrIfCallbackNotAcceptable), |
|
274 AO_MAP_ROW(-3058, KErrIfDNSNotFound), |
|
275 AO_MAP_ROW(-3059, KErrIfLRDBadLine), |
|
276 AO_MAP_ROW(-3609, KErrGenConnNoGPRSNetwork), |
|
277 AO_MAP_ROW(-4135, KErrGprsServicesNotAllowed), |
|
278 AO_MAP_ROW(-4136, KErrGprsAndNonGprsServicesNotAllowed), |
|
279 AO_MAP_ROW(-4137, KErrGprsMSIdentityCannotBeDerivedByTheNetwork), |
|
280 AO_MAP_ROW(-4138, KErrGprsMSImplicitlyDetached), |
|
281 AO_MAP_ROW(-4141, KErrGsmMMRoamingNotAllowedInThisLocationArea), |
|
282 AO_MAP_ROW(-4144, KErrGprsMSCTemporarilyNotReachable), |
|
283 AO_MAP_ROW(-4153, KErrGprsLlcOrSndcpFailure), |
|
284 AO_MAP_ROW(-4154, KErrGprsInsufficientResources), |
|
285 AO_MAP_ROW(-4155, KErrGprsMissingorUnknownAPN), |
|
286 AO_MAP_ROW(-4156, KErrGprsUnknownPDPAddress), |
|
287 AO_MAP_ROW(-4157, KErrGprsUserAuthenticationFailure), |
|
288 AO_MAP_ROW(-4158, KErrGprsActivationRejectedByGGSN), |
|
289 AO_MAP_ROW(-4159, KErrGprsActivationRejected), |
|
290 AO_MAP_ROW(-4163, KErrGprsNSAPIAlreadyUsed), |
|
291 AO_MAP_ROW(-4164, KErrGprsRegularContextDeactivation), |
|
292 AO_MAP_ROW(-4165, KErrGprsQoSNotAccepted), |
|
293 AO_MAP_ROW(-4167, KErrGprsReactivationRequested), |
|
294 AO_MAP_ROW(-4168, KErrGprsFeatureNotSupported), |
|
295 AO_MAP_ROW(-5105, KErrInet6NoRoute), |
|
296 AO_MAP_ROW(-5120, KErrDndNameNotFound), |
|
297 AO_MAP_ROW(-6000, KErrPDPMaxContextsReached), |
|
298 AO_MAP_ROW(-6001, KErrPacketDataTsyInvalidAPN), |
|
299 AO_MAP_ROW(-30172, KErrWlanOpenAuthFailed), |
|
300 AO_MAP_ROW(-30173, KErrWlanSharedKeyAuthRequired), |
|
301 AO_MAP_ROW(-30174, KErrWlanSharedKeyAuthFailed), |
|
302 AO_MAP_ROW(-30175, KErrWlanWpaAuthRequired), |
|
303 AO_MAP_ROW(-30176, KErrWlanWpaAuthFailed), |
|
304 AO_MAP_ROW(-30177, KErrWlan802dot1xAuthFailed), |
|
305 AO_MAP_ROW(-30178, KErrWlanIllegalWpaPskKey), |
|
306 AO_MAP_ROW(-30179, KErrWlanWpaCounterMeasuresActive), |
|
307 AO_MAP_ROW(-30180, KErrWlanNetworkNotFound), |
|
308 AO_MAP_ROW(-30181, KErrWlanIllegalEncryptionKeys), |
|
309 AO_MAP_ROW(-30182, KErrWlanRoamingFailed), |
|
310 AO_MAP_ROW(-30184, KErrWlanPSKModeRequired), |
|
311 AO_MAP_ROW(-30185, KErrWlanEAPModeRequired), |
|
312 AO_MAP_ROW(-30186, KErrWlanEAPSIMFailed), |
|
313 AO_MAP_ROW(-30187, KErrWlanEAPTLSFailed), |
|
314 AO_MAP_ROW(-30188, KErrWlanEAPPEAPFailed), |
|
315 AO_MAP_ROW(-30189, KErrWlanEAPMSCHAPFailed), |
|
316 AO_MAP_ROW(-30190, KErrWlanEAPAKAFailed), |
|
317 AO_MAP_ROW(-30191, KErrWlanEAPTTLSFailed), |
|
318 AO_MAP_ROW(-30192, KErrWlanLEAPFailed), |
|
319 AO_MAP_ROW(-30193, KErrWlanEAPGTCFailed), |
|
320 AO_MAP_ROW(-30194, KErrWlanSIMNotInstalled), |
|
321 AO_MAP_ROW(-30195, KErrWlanNotSubscribed), |
|
322 AO_MAP_ROW(-30196, KErrWlanAccessBarred), |
|
323 AO_MAP_ROW(-30197, KErrWlanPasswordExpired), |
|
324 AO_MAP_ROW(-30198, KErrWlanNoDialinPermissions), |
|
325 AO_MAP_ROW(-30199, KErrWlanAccountDisabled), |
|
326 AO_MAP_ROW(-30200, KErrWlanRestrictedLogonHours), |
|
327 AO_MAP_ROW(-30201, KErrWlanServerCertificateExpired), |
|
328 AO_MAP_ROW(-30202, KErrWlanCertificateVerifyFailed), |
|
329 AO_MAP_ROW(-30203, KErrWlanNoUserCertificate), |
|
330 AO_MAP_ROW(-30204, KErrWlanNoCipherSuite), |
|
331 AO_MAP_ROW(-30205, KErrWlanUserRejected), |
|
332 AO_MAP_ROW(-30206, KErrWlanUserCertificateExpired), |
|
333 AO_MAP_ROW(-30207, KErrWlanConnAlreadyActive), |
|
334 AO_MAP_ROW(-50000, KErrGeneralConnection), |
|
335 AO_MAP_ROW(-50001, GenericMailConnectionFailure), |
|
336 AO_LAST_MAP_ROW |
|
337 }; |
|
338 |
|
339 /* |
|
340 * Map Value Categories |
|
341 */ |
|
342 |
|
343 enum TAoValueCat |
|
344 { |
|
345 EAoMailPluginStates, |
|
346 EAoManagerServerCommands, |
|
347 EAoMsvSessionEvent, |
|
348 EAoNormalError, |
|
349 EAoLastValue |
|
350 }; |
|
351 |
|
352 |
|
353 /** |
|
354 * |
|
355 * This macros make easy to use logging interface |
|
356 * |
|
357 * OBJECT MACROS: |
|
358 * |
|
359 * Put this macro first in every function |
|
360 * |
|
361 * AOLOG_IN( "<function name>" ) |
|
362 * |
|
363 * Used when mapping values needed, object have to be |
|
364 * created first with AOLOG_IN macro |
|
365 * |
|
366 * AOLOG_WRM( "<log msg>", <map value category>, <map value> ) |
|
367 * |
|
368 * Only for message, adds function name in the begining of log text, |
|
369 * object have to be created first with AOLOG_IN macro |
|
370 * |
|
371 * AOLOG_WR( "<log msg>" ) |
|
372 * |
|
373 * Adds mapping value with message text and log filtering |
|
374 * |
|
375 * AOLOG_WRMV( "<log msg>", <map value category>, <map value> , <log filter> ) |
|
376 * |
|
377 * |
|
378 * Message with log filtering, adds function name in the begining of log text |
|
379 * |
|
380 * AOLOG_WRV( "<log msg>", <log filter> ) |
|
381 * |
|
382 * Message with number append in the end |
|
383 * |
|
384 * AOLOG_WRN( "<log msg>", <number> ) |
|
385 * |
|
386 * Message with number append in the end, log filtering |
|
387 * |
|
388 * AOLOG_WRNV( "<log msg>", <number>, <log filter> ) |
|
389 * |
|
390 * Writes descriptor in log |
|
391 * |
|
392 * AOLOG_WRDES( "<log msg>", <TDesC>, <log filter> ) |
|
393 * |
|
394 * Writes descriptor if filter is on |
|
395 * |
|
396 * AOLOG_WRDESV( "<log msg>", <TDesC>, <log filter> ) |
|
397 * |
|
398 * Writes 8-bit descriptor in log, |
|
399 * NOTE: no spaces added in log message. Use spaces in log message |
|
400 * |
|
401 * AOLOG_WRDES8( "<log msg>", <TDesC8>, <log filter> ) |
|
402 * |
|
403 * Writes 8-bit descriptor if filter is on |
|
404 * NOTE: no spacess added in log message. Use spaces in log message |
|
405 * |
|
406 * AOLOG_WRDES8V( "<log msg>", <TDesC8>, <log filter> ) |
|
407 * |
|
408 * STATIC MACROS: |
|
409 * |
|
410 * In these macros AOLOG_IN() have not to be called before use, |
|
411 * macros call static functions |
|
412 * |
|
413 * AOLOG_STAWRM( "<log msg>", <map value category>, <map value> ) |
|
414 * |
|
415 * AOLOG_STAWR( "<log msg>" ) |
|
416 * |
|
417 * AOLOG_STAWRMV( "<log msg>", <map value category>, <map value>, <log filter> ) |
|
418 * |
|
419 * AOLOG_STAWRV( "<log msg>", <log filter> ) |
|
420 * |
|
421 * Message with formatted (%d) number |
|
422 * |
|
423 * AOLOG_STAWRF( "<log msg>", <number> ) |
|
424 * |
|
425 * Message with formatted (%d) number and filtering |
|
426 * |
|
427 * AOLOG_STAWRFV( "<log msg>", <number>, <log filter> ) |
|
428 */ |
|
429 |
|
430 |
|
431 #define AOLOG_IN(a) _LIT(_aoLtempIn, a); AOLogT _aolTempObj(_aoLtempIn); |
|
432 #define AOLOG_WRM(a, b, c) { _LIT(_aoLtempWRM, a ); _aolTempObj.WriteContext(_aoLtempWRM, b, c ); } |
|
433 #define AOLOG_WR(a) { _LIT(_aoLtempWR, a); _aolTempObj.WriteContext(_aoLtempWR); } |
|
434 |
|
435 #define AOLOG_WRMV(a, b, c ,d) { if ( AOLogT::DoFilter(d) ) { \ |
|
436 _LIT(_aoLtempWRMV, a ); _aolTempObj.WriteContext(_aoLtempWRMV, b, c ); } } |
|
437 #define AOLOG_WRV(a, b) { if ( AOLogT::DoFilter(b) ) { \ |
|
438 _LIT(_aoLtempWRV, a); _aolTempObj.WriteContext(_aoLtempWRV); } } |
|
439 |
|
440 #define AOLOG_WRDES(a, b) { _LIT(_aoLtempWRDES, a); \ |
|
441 _aolTempObj.WriteContextDes(_aoLtempWRDES, b); } |
|
442 |
|
443 #define AOLOG_WRDESV(a, b, c) { if ( AOLogT::DoFilter(c) ) { \ |
|
444 _LIT(_aoLtempWRDESV, a); _aolTempObj.WriteContextDes(_aoLtempWRDESV, b); } } |
|
445 |
|
446 #define AOLOG_WRDES8(a, b) { _LIT(_aoLtempWRDES8, a); \ |
|
447 _aolTempObj.WriteContextDes8(_aoLtempWRDES8, b); } |
|
448 |
|
449 #define AOLOG_WRDES8V(a, b, c) { if ( AOLogT::DoFilter(c) ) { \ |
|
450 _LIT(_aoLtempWRDES8V, a); _aolTempObj.WriteContextDes8(_aoLtempWRDES8V, b); } } |
|
451 |
|
452 #define AOLOG_WRN(a, b) { _LIT(_aoLtempWRN, a); _aolTempObj.WriteContextNum(_aoLtempWRN, b); } |
|
453 |
|
454 #define AOLOG_WRNV(a, b, c) { if ( AOLogT::DoFilter(c) ) { \ |
|
455 _LIT(_aoLtempWRNV, a); _aolTempObj.WriteContextNum(_aoLtempWRNV, b); } } |
|
456 |
|
457 #define AOLOG_STAWR(a) { {_LIT(temp, a); AOLogT::WriteAoLog(temp);} } |
|
458 #define AOLOG_STAWRF(a, b) { {_LIT(temp, a); AOLogT::WriteAoLogFormat(temp, b);} } |
|
459 |
|
460 #ifndef AO_LOG_USE_RBUF |
|
461 |
|
462 #define AOLOG_STAWRM(a, b, c) {_LIT(temp, a ); TBuf<KAOLoggingToolsBuffer> buffe (temp); \ |
|
463 AOLogT::WriteAoLog(buffe, b, c );} |
|
464 |
|
465 |
|
466 #define AOLOG_STAWRMV(a, b, c ,d) { if ( AOLogT::DoFilter(d) ) { \ |
|
467 _LIT(temp, a ); TBuf<KAOLoggingToolsBuffer> buffe (temp); \ |
|
468 AOLogT::WriteAoLog(buffe, b, c ); } } |
|
469 |
|
470 #else |
|
471 |
|
472 #define AOLOG_STAWRM(a, b, c) {_LIT(temp, a ); RBuf rBuffe; \ |
|
473 if ( !rBuffe.Create(KAOLoggingToolsBuffer) ) \ |
|
474 { rBuffe.Append( temp ); AOLogT::WriteAoLog(rBuffe, b, c ); } rBuffe.Close(); } |
|
475 |
|
476 |
|
477 #define AOLOG_STAWRMV(a, b, c ,d) { if ( AOLogT::DoFilter(d) ) { \ |
|
478 _LIT(temp, a ); RBuf rBuffe; if ( !rBuffe.Create(KAOLoggingToolsBuffer) ) \ |
|
479 { rBuffe.Append( temp ); \ |
|
480 AOLogT::WriteAoLog(rBuffe, b, c ); } rBuffe.Close(); } } |
|
481 |
|
482 #endif |
|
483 |
|
484 #define AOLOG_STAWRV(a, b) { if ( AOLogT::DoFilter(b) ) { \ |
|
485 _LIT(_aoLtempWRV, a); AOLogT::WriteAoLog(_aoLtempWRV); } } |
|
486 |
|
487 #define AOLOG_STAWRFV(a, b, c) { if ( AOLogT::DoFilter(c) ) { \ |
|
488 _LIT(_aoLtempWRV, a); AOLogT::WriteAoLogFormat(_aoLtempWRV, b); } } |
|
489 |
|
490 |
|
491 /** |
|
492 * |
|
493 * Regular C++ class for logging |
|
494 * |
|
495 * @lib ALVAYSONLINEEMAILPLUGIN.DLL |
|
496 * @since S60 3.2 |
|
497 */ |
|
498 class AOLogT |
|
499 { |
|
500 public: |
|
501 |
|
502 /** |
|
503 * Constructor. |
|
504 */ |
|
505 |
|
506 AOLogT( const TDesC& _aolFunc ); |
|
507 |
|
508 /** |
|
509 * Destructor. |
|
510 */ |
|
511 |
|
512 ~AOLogT(); |
|
513 |
|
514 /** |
|
515 * Writes log message and map integer value to values logical name |
|
516 * |
|
517 * @since S60 v3.2 |
|
518 * @param _aolMsg Log message to be written in file |
|
519 * @param valCat integer value category |
|
520 * @param _aolVal integer value |
|
521 */ |
|
522 void WriteContext( const TDesC& _aolMsg, TAoValueCat valCat, TInt _aolVal ); |
|
523 |
|
524 /** |
|
525 * Writes log message |
|
526 * |
|
527 * @since S60 v3.2 |
|
528 * @param _aolMsg Log message to be written in file |
|
529 */ |
|
530 void WriteContext( const TDesC& _aolMsg ); |
|
531 |
|
532 /** |
|
533 * Writes log message and number |
|
534 * |
|
535 * @since S60 v3.2 |
|
536 * @param _aolMsg Log message to be written in file |
|
537 * @param aNum Number to be added in the end |
|
538 */ |
|
539 void WriteContextNum( const TDesC& _aolMsg, TInt aNum ); |
|
540 |
|
541 /** |
|
542 * Writes message and additional descriptor in log |
|
543 * |
|
544 * @since S60 v3.2 |
|
545 * @param _aolMsg Log message to be written in file |
|
546 * @param aDes descriptor to be added in the end |
|
547 */ |
|
548 void WriteContextDes( const TDesC& _aolMsg, const TDesC& aDes ); |
|
549 |
|
550 /** |
|
551 * Writes message and additional 8-bit descriptor in log |
|
552 * |
|
553 * @since S60 v3.2 |
|
554 * @param _aolMsg Log message to be written in file |
|
555 * @param aDes8 8-bit descriptor to be added in the end |
|
556 */ |
|
557 void WriteContextDes8( const TDesC& _aolMsg, const TDesC8& aDes8 ); |
|
558 |
|
559 /** |
|
560 * Writes log message |
|
561 * |
|
562 * @since S60 v3.2 |
|
563 * @param _aolMsg Log message to be written in file |
|
564 */ |
|
565 static void WriteAoLog( const TDesC& _aolMsg ); |
|
566 |
|
567 /** |
|
568 * Writes formatted log message and number |
|
569 * |
|
570 * @since S60 v3.2 |
|
571 * @param _aolMsg Log message to be written in file, message have to contain %s |
|
572 * @param aNum Number to be added in the end |
|
573 */ |
|
574 static void WriteAoLogFormat( const TDesC& _aolMsgFor, TInt aNum ); |
|
575 |
|
576 /** |
|
577 * Writes log message and map integer value to values logical name |
|
578 * |
|
579 * @since S60 v3.2 |
|
580 * @param _aolMsg Log message to be written in file |
|
581 * @param valCat integer value category |
|
582 * @param _aolVal integer value |
|
583 */ |
|
584 static void WriteAoLog( TDes& _aolMsg, TAoValueCat valCat, TInt _aolVal ); |
|
585 |
|
586 /** |
|
587 * Adds integers logical name string to descriptor |
|
588 * |
|
589 * @since S60 v3.2 |
|
590 * @param _aMapVal descriptor where logical name is added |
|
591 * @param _aVal integer value |
|
592 * @param _mapTable reference to integer - string pair table |
|
593 */ |
|
594 static void AddMapValue(TDes& _aMapVal, TInt _aVal, const AOMapVal _mapTable[] ); |
|
595 |
|
596 /** |
|
597 * Check is aFilter is contained to KAoLoggingToolsFilter flags |
|
598 * |
|
599 * @since S60 v3.2 |
|
600 * @param aFilter filter flag parameter |
|
601 * @return True if filter flag is set, |
|
602 * false if constant flags not contains aFilter |
|
603 */ |
|
604 static TBool DoFilter(TInt aFilter); |
|
605 |
|
606 private: |
|
607 |
|
608 // name of function |
|
609 const TDesC& iAoFunc; |
|
610 |
|
611 // one log line |
|
612 #ifndef AO_LOG_USE_RBUF |
|
613 TBuf<KAOLoggingToolsBuffer> iAoLogBuf; |
|
614 #else |
|
615 RBuf iAoLogBuf; |
|
616 #endif |
|
617 }; |
|
618 #else |
|
619 |
|
620 #define AOLOG_IN(a) |
|
621 #define AOLOG_WRM(a, b, c) |
|
622 #define AOLOG_WR(a) |
|
623 #define AOLOG_WRMV(a, b, c ,d) |
|
624 #define AOLOG_WRV(a, b) |
|
625 #define AOLOG_WRDES(a, b) |
|
626 #define AOLOG_WRDESV(a, b, c) |
|
627 #define AOLOG_WRDES8(a, b) |
|
628 #define AOLOG_WRDES8V(a, b, c) |
|
629 #define AOLOG_WRN(a, b) |
|
630 #define AOLOG_WRNV(a, b, c) |
|
631 #define AOLOG_STAWR(a) |
|
632 #define AOLOG_STAWRF(a, b) |
|
633 #define AOLOG_STAWRM(a, b, c) |
|
634 #define AOLOG_STAWRMV(a, b, c ,d) |
|
635 #define AOLOG_STAWRV(a, b) |
|
636 #define AOLOG_STAWRFV(a, b, c) |
|
637 |
|
638 |
|
639 #endif //AO_LOGGING_TOOLS_ON |
|
640 |
|
641 #endif // __ALWAYSONLINEEMAILLOGGINGTOOLS_H__ |
|
642 |