Update contrib.
1 // Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of "Eclipse Public License v1.0"
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
16 #include "logclientop.h"
19 #include "logservcli.h"
22 CLogClientOp::CLogClientOp(RLogSession& aSession, CLogPackage& aPackage, TLogOperationType aType, TInt aPriority)
23 : CActive(aPriority), iPackage(aPackage), iSession(aSession)
25 // Base client side operation
28 iData().iOperationType = aType;
29 CActiveScheduler::Add(this);
32 CLogClientOp::~CLogClientOp()
37 void CLogClientOp::Start(TRequestStatus& aObserver)
39 // Start the ball rolling - InitiateRequestToServerL called in RunL so it can leave
42 iObserver = &aObserver;
43 aObserver = KRequestPending;
45 // Just complete ourselves
46 TRequestStatus* status = &iStatus;
47 User::RequestComplete(status, KErrNone);
51 TInt CLogClientOp::Start()
53 // Synchronous way of running operations
56 TInt result = KErrNone;
57 TRAP(result, result = DoStartL());
58 iData().iOperationId = KLogNullOperationId;
62 TInt CLogClientOp::DoStartL()
64 iData().iOperationId = iSession.AllocateIdOperation();
65 InitiateRequestToServerL();
66 User::WaitForRequest(iStatus);
67 //We have an asynchronous request completed synchronously.
68 //We have to do some iStatus cleanups.
69 TRequestStatus status;//New TRequestStatus local variable. The default constructor will set iFlags data memebr to 0.
70 status = iStatus.Int();//Only iStatus data member getzs initialized.
71 iStatus = status;//Return back the same iStatus value but with iFlags data memeber cleared.
72 User::LeaveIfError(iStatus.Int());
74 TInt result = iStatus.Int();
76 iData().iOperationId = KLogNullOperationId;
80 void CLogClientOp::RunL()
82 LOGTEXT2("CLogClientOp::RunL(%d)", iStatus.Int());
84 User::LeaveIfError(iStatus.Int());
86 // Set ourselves up - make the actual request?
87 if (iData().iOperationId == KLogNullOperationId)
89 // Get the id of the operation
90 iData().iOperationId = iSession.AllocateIdOperation();
92 InitiateRequestToServerL();
97 // Finish off the request
98 iData().iOperationId = KLogNullOperationId;
99 TInt result = iStatus.Int();
101 User::RequestComplete(iObserver, result);
104 LOGTEXT("CLogClientOp::RunL() - end");
107 void CLogClientOp::DoCancel()
109 // Cancel the request to the server if we initiated one
112 LOGTEXT2("CLogClientOp::DoCancel() - OperationId: %d", iData().iOperationId);
114 // Cancel this operation if we have an id
115 if (iData().iOperationId > 0)
117 iSession.Send(ELogOperationCancel, TIpcArgs(&iData));
119 iData().iOperationId = KLogNullOperationId;
122 User::RequestComplete(iObserver, KErrCancel);
123 LOGTEXT("CLogClientOp::DoCancel() - end");
126 // Just complete the observer on error
127 TInt CLogClientOp::RunError(TInt aError)
129 iData().iOperationId = KLogNullOperationId;
130 User::RequestComplete(iObserver, aError);
134 void CLogClientOp::CompleteL(TInt& /*aCompletionCode*/)
136 // By default operations don't do anything after completion
141 void CLogClientOp::FetchResultFromServerL(TInt aResult)
143 iPackage.ResizeL(aResult);
144 TPtr8 ptr(iPackage.Ptr());
146 User::LeaveIfError(iSession.Send(ELogOperationGetResult, TIpcArgs(&iData,&ptr,ptr.Length())));
150 * Initialise the data slot values
152 void CLogClientOp::SetDataSlot1(TInt aValue)
154 iData().iDataSlot1 = aValue;
163 CLogAddEventClientOp::CLogAddEventClientOp(RLogSession& aSession, CLogPackage& aPackage, TInt aPriority)
164 : CLogClientOp(aSession, aPackage, ELogOperationEventAdd, aPriority)
168 void CLogAddEventClientOp::Start(CLogEvent& aEvent, TRequestStatus& aObserver)
171 CLogClientOp::Start(aObserver);
174 void CLogAddEventClientOp::InitiateRequestToServerL()
176 iPackage.SetLogEventL(*iEvent);
177 iSession.Send(ELogOperationInitiate, TIpcArgs(&iData, &iPackage.Ptr()), iStatus);
180 void CLogAddEventClientOp::CompleteL(TInt& aResult)
182 FetchResultFromServerL(aResult);
183 iPackage.GetLogEventL(*iEvent);
192 CLogChangeEventClientOp::CLogChangeEventClientOp(RLogSession& aSession, CLogPackage& aPackage, TInt aPriority)
193 : CLogClientOp(aSession, aPackage, ELogOperationEventChange, aPriority)
197 void CLogChangeEventClientOp::Start(const CLogEvent& aEvent, TRequestStatus& aObserver)
200 CLogClientOp::Start(aObserver);
203 void CLogChangeEventClientOp::InitiateRequestToServerL()
205 iPackage.SetLogEventL(*iEvent);
206 iSession.Send(ELogOperationInitiate, TIpcArgs(&iData, &iPackage.Ptr()), iStatus);
214 CLogGetEventClientOp::CLogGetEventClientOp(RLogSession& aSession, CLogPackage& aPackage, TInt aPriority)
215 : CLogClientOp(aSession, aPackage, ELogOperationEventGet, aPriority)
219 void CLogGetEventClientOp::Start(CLogEvent& aEvent, TRequestStatus& aObserver)
222 CLogClientOp::Start(aObserver);
225 void CLogGetEventClientOp::InitiateRequestToServerL()
227 iSession.Send(ELogOperationInitiate, TIpcArgs(&iData, iEvent->Id()), iStatus);
230 void CLogGetEventClientOp::CompleteL(TInt& aResult)
232 FetchResultFromServerL(aResult);
233 iPackage.GetLogEventL(*iEvent);
242 CLogDeleteEventClientOp::CLogDeleteEventClientOp(RLogSession& aSession, CLogPackage& aPackage, TInt aPriority)
243 : CLogClientOp(aSession, aPackage, ELogOperationEventDelete, aPriority)
247 void CLogDeleteEventClientOp::Start(TLogId aId, TRequestStatus& aObserver)
250 CLogClientOp::Start(aObserver);
253 void CLogDeleteEventClientOp::InitiateRequestToServerL()
255 iSession.Send(ELogOperationInitiate, TIpcArgs(&iData, iId), iStatus);
266 CLogAddTypeClientOp::CLogAddTypeClientOp(RLogSession& aSession, CLogPackage& aPackage, TInt aPriority)
267 : CLogClientOp(aSession, aPackage, ELogOperationTypeAdd, aPriority)
271 void CLogAddTypeClientOp::Start(const CLogEventType& aEventType, TRequestStatus& aObserver)
273 iEventType = &aEventType;
274 CLogClientOp::Start(aObserver);
277 void CLogAddTypeClientOp::InitiateRequestToServerL()
279 iPackage.SetLogEventTypeL(*iEventType);
280 iSession.Send(ELogOperationInitiate, TIpcArgs(&iData, &iPackage.Ptr()), iStatus);
290 CLogChangeTypeClientOp::CLogChangeTypeClientOp(RLogSession& aSession, CLogPackage& aPackage, TInt aPriority)
291 : CLogClientOp(aSession, aPackage, ELogOperationTypeChange, aPriority)
295 void CLogChangeTypeClientOp::Start(const CLogEventType& aEventType, TRequestStatus& aObserver)
297 iEventType = &aEventType;
298 CLogClientOp::Start(aObserver);
301 void CLogChangeTypeClientOp::InitiateRequestToServerL()
303 iPackage.SetLogEventTypeL(*iEventType);
304 iSession.Send(ELogOperationInitiate, TIpcArgs(&iData, &iPackage.Ptr()), iStatus);
313 CLogGetTypeClientOp::CLogGetTypeClientOp(RLogSession& aSession, CLogPackage& aPackage, TInt aPriority)
314 : CLogClientOp(aSession, aPackage, ELogOperationTypeGet, aPriority)
318 void CLogGetTypeClientOp::Start(CLogEventType& aEventType, TRequestStatus& aObserver)
320 iEventType = &aEventType;
321 CLogClientOp::Start(aObserver);
324 void CLogGetTypeClientOp::InitiateRequestToServerL()
326 TIpcArgs args(&iData, iEventType->Uid().iUid);
327 iSession.Send(ELogOperationInitiate, args, iStatus);
330 void CLogGetTypeClientOp::CompleteL(TInt& aResult)
332 FetchResultFromServerL(aResult);
333 iPackage.GetLogEventTypeL(*iEventType);
343 CLogDeleteTypeClientOp::CLogDeleteTypeClientOp(RLogSession& aSession, CLogPackage& aPackage, TInt aPriority)
344 : CLogClientOp(aSession, aPackage, ELogOperationTypeDelete, aPriority)
348 void CLogDeleteTypeClientOp::Start(TUid aUid, TRequestStatus& aObserver)
351 CLogClientOp::Start(aObserver);
354 void CLogDeleteTypeClientOp::InitiateRequestToServerL()
356 TIpcArgs args(&iData, iUid.iUid);
357 iSession.Send(ELogOperationInitiate, args, iStatus);
367 CLogGetConfigClientOp::CLogGetConfigClientOp(RLogSession& aSession, CLogPackage& aPackage, TInt aPriority)
368 : CLogClientOp(aSession, aPackage, ELogOperationConfigGet, aPriority)
372 void CLogGetConfigClientOp::Start(TLogConfig& aConfig, TRequestStatus& aObserver)
375 CLogClientOp::Start(aObserver);
378 void CLogGetConfigClientOp::InitiateRequestToServerL()
380 iSession.Send(ELogOperationInitiate, TIpcArgs(&iData), iStatus);
383 void CLogGetConfigClientOp::CompleteL(TInt& aResult)
385 FetchResultFromServerL(aResult);
386 iPackage.GetLogConfigL(*iConfig);
397 CLogChangeConfigClientOp::CLogChangeConfigClientOp(RLogSession& aSession, CLogPackage& aPackage, TInt aPriority)
398 : CLogClientOp(aSession, aPackage, ELogOperationConfigChange, aPriority)
402 void CLogChangeConfigClientOp::Start(const TLogConfig& aConfig, TRequestStatus& aObserver)
405 CLogClientOp::Start(aObserver);
408 void CLogChangeConfigClientOp::InitiateRequestToServerL()
410 iPackage.SetLogConfigL(*iConfig);
411 iSession.Send(ELogOperationInitiate, TIpcArgs(&iData, &iPackage.Ptr()), iStatus);
422 CLogClearLogClientOp::CLogClearLogClientOp(RLogSession& aSession, CLogPackage& aPackage, TInt aPriority) :
423 CLogClientOp(aSession, aPackage, ELogOperationClearLog, aPriority)
427 void CLogClearLogClientOp::Start(const TTime& aDate, TRequestStatus& aObserver
428 #ifdef SYMBIAN_ENABLE_EVENTLOGGER_DUALSIM
433 iDate = aDate; // UTC
434 #ifdef SYMBIAN_ENABLE_EVENTLOGGER_DUALSIM
437 CLogClientOp::Start(aObserver);
440 void CLogClearLogClientOp::InitiateRequestToServerL()
442 const TInt64 dateVal(iDate.Int64());
443 #ifdef SYMBIAN_ENABLE_EVENTLOGGER_DUALSIM
444 TIpcArgs args(&iData, I64LOW(dateVal), I64HIGH(dateVal), iSimId);
446 TIpcArgs args(&iData, I64LOW(dateVal), I64HIGH(dateVal));
448 iSession.Send(ELogOperationInitiate, args, iStatus);
458 CLogClearRecentClientOp::CLogClearRecentClientOp(RLogSession& aSession, CLogPackage& aPackage, TInt aPriority)
459 : CLogClientOp(aSession, aPackage, ELogOperationClearRecent, aPriority)
463 void CLogClearRecentClientOp::Start(TLogRecentList aList, TRequestStatus& aObserver
464 #ifdef SYMBIAN_ENABLE_EVENTLOGGER_DUALSIM
470 #ifdef SYMBIAN_ENABLE_EVENTLOGGER_DUALSIM
473 CLogClientOp::Start(aObserver);
476 void CLogClearRecentClientOp::InitiateRequestToServerL()
478 #ifdef SYMBIAN_ENABLE_EVENTLOGGER_DUALSIM
479 iSession.Send(ELogOperationInitiate, TIpcArgs(&iData, iList, iSimId), iStatus);
481 iSession.Send(ELogOperationInitiate, TIpcArgs(&iData, iList), iStatus);
491 CLogMaintainClientOp::CLogMaintainClientOp(RLogSession& aSession, CLogPackage& aPackage, TInt aPriority)
492 : CLogClientOp(aSession, aPackage, ELogOperationMaintain, aPriority)
496 void CLogMaintainClientOp::InitiateRequestToServerL()
498 iSession.Send(ELogOperationInitiate, TIpcArgs(&iData), iStatus);
508 CLogViewSetupClientOp::CLogViewSetupClientOp(RLogSession& aSession, CLogPackage& aPackage, TInt aPriority)
509 : CLogClientOp(aSession, aPackage, ELogOperationViewSetup, aPriority)
513 TInt CLogViewSetupClientOp::Start(TLogViewId aViewId, const CLogFilterList& aFilterList, TInt aParam, TLogFilterConstructionType aFilterConstructionType)
517 iFilterList = &aFilterList;
519 SetDataSlot1(aFilterConstructionType);
521 return CLogClientOp::Start();
524 void CLogViewSetupClientOp::InitiateRequestToServerL()
526 TIpcArgs args (&iData, iViewId, &iPackage.Ptr(), iParam);
527 iSession.Send(ELogViewOperationInitiate, args, iStatus);
536 CLogViewRemoveEventClientOp::CLogViewRemoveEventClientOp(RLogSession& aSession, CLogPackage& aPackage, TInt aPriority)
537 : CLogClientOp(aSession, aPackage, ELogOperationViewRemoveEvent, aPriority)
541 TInt CLogViewRemoveEventClientOp::Start(TLogViewId aViewId, TLogId aId)
546 return CLogClientOp::Start();
549 void CLogViewRemoveEventClientOp::InitiateRequestToServerL()
551 TIpcArgs args(&iData, iViewId, iId, 0);
552 iSession.Send(ELogViewOperationInitiate, args, iStatus);