os/persistentdata/loggingservices/eventlogger/LogServ/src/LogServOperationBase.cpp
First public contribution.
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 "LogServOperationBase.h"
17 #include "logservpanic.h"
18 #include "LogServOperationManager.h"
21 CLogServOperationBase::CLogServOperationBase(MLogServTaskInterface& aTaskInterface,
22 MLogServOperationManager& aOperationManager,
23 const RMessage2& aMessage,
24 CLogPackage& aPackage,
25 const TLogClientServerData& aClientServerData,
26 TLogServSessionId aSessionId) :
27 iTaskInterface(aTaskInterface),
28 iOperationManager(aOperationManager),
31 iClientServerData(aClientServerData),
32 iSessionId(aSessionId),
33 iMessageCompletion(ETrue)
35 // Queue this operations
36 OperationManager().OMOperationQueueAdd(*this);
39 CLogServOperationBase::~CLogServOperationBase()
41 // Dequeue this operations
42 OperationManager().OMOperationQueueRemove(*this);
46 // By default operations don't write back to the client
48 void CLogServOperationBase::WriteL(const RMessage2& /*aMessage*/)
53 // Finish processing for this operation
55 CLogServOperationBase::TCompletionStatus CLogServOperationBase::CompleteProcessingL(TInt /*aFinalCompletionCode*/)
59 return CLogServOperationBase::EOperationComplete;
63 // Complete the client request
65 void CLogServOperationBase::Complete(TInt aCompletionCode)
67 __ASSERT_ALWAYS(! iMessage.IsNull(), Panic(ELogNoOutstandingAsyncRequest));
69 if (iMessageCompletion)
71 iMessage.Complete(aCompletionCode);
75 iMessage = RMessage2();
79 // Return the offset of this item within a containing queue
81 TUint CLogServOperationBase::QueueOffset()
83 return _FOFF(CLogServOperationBase, iServerLink);