sl@0: // Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // sl@0: sl@0: #include "LogServOperationBase.h" sl@0: #include "logservpanic.h" sl@0: #include "LogServOperationManager.h" sl@0: sl@0: sl@0: CLogServOperationBase::CLogServOperationBase(MLogServTaskInterface& aTaskInterface, sl@0: MLogServOperationManager& aOperationManager, sl@0: const RMessage2& aMessage, sl@0: CLogPackage& aPackage, sl@0: const TLogClientServerData& aClientServerData, sl@0: TLogServSessionId aSessionId) : sl@0: iTaskInterface(aTaskInterface), sl@0: iOperationManager(aOperationManager), sl@0: iPackage(aPackage), sl@0: iMessage(aMessage), sl@0: iClientServerData(aClientServerData), sl@0: iSessionId(aSessionId), sl@0: iMessageCompletion(ETrue) sl@0: { sl@0: // Queue this operations sl@0: OperationManager().OMOperationQueueAdd(*this); sl@0: } sl@0: sl@0: CLogServOperationBase::~CLogServOperationBase() sl@0: { sl@0: // Dequeue this operations sl@0: OperationManager().OMOperationQueueRemove(*this); sl@0: } sl@0: sl@0: // sl@0: // By default operations don't write back to the client sl@0: // sl@0: void CLogServOperationBase::WriteL(const RMessage2& /*aMessage*/) sl@0: { sl@0: } sl@0: sl@0: // sl@0: // Finish processing for this operation sl@0: // sl@0: CLogServOperationBase::TCompletionStatus CLogServOperationBase::CompleteProcessingL(TInt /*aFinalCompletionCode*/) sl@0: { sl@0: Complete(KErrNone); sl@0: // sl@0: return CLogServOperationBase::EOperationComplete; sl@0: } sl@0: sl@0: // sl@0: // Complete the client request sl@0: // sl@0: void CLogServOperationBase::Complete(TInt aCompletionCode) sl@0: { sl@0: __ASSERT_ALWAYS(! iMessage.IsNull(), Panic(ELogNoOutstandingAsyncRequest)); sl@0: sl@0: if (iMessageCompletion) sl@0: { sl@0: iMessage.Complete(aCompletionCode); sl@0: } sl@0: sl@0: // Unnecessary? sl@0: iMessage = RMessage2(); sl@0: } sl@0: sl@0: // sl@0: // Return the offset of this item within a containing queue sl@0: // sl@0: TUint CLogServOperationBase::QueueOffset() sl@0: { sl@0: return _FOFF(CLogServOperationBase, iServerLink); sl@0: } sl@0: