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 "LogServOperations.h" sl@0: #include "logservpanic.h" sl@0: #include "LogServView.h" sl@0: #include "LogServTaskInterface.h" sl@0: sl@0: ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// sl@0: ////////////////////////////// CLogServOpEventAdd //////////////////////////////////////////////////////////// sl@0: ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// sl@0: sl@0: // sl@0: // Create an operation to add an event to the log sl@0: // sl@0: CLogServOpEventAdd::CLogServOpEventAdd(MLogServTaskInterface& aTaskInterface, sl@0: MLogServOperationManager& aOperationManager, sl@0: const RMessage2& aMessage, sl@0: CLogPackage& aPackage, sl@0: const TLogClientServerData& aCliServData, sl@0: TLogServSessionId aSessionId): sl@0: CLogServOperationBase(aTaskInterface, aOperationManager, aMessage, aPackage, aCliServData, aSessionId) sl@0: { sl@0: } sl@0: sl@0: CLogServOpEventAdd::~CLogServOpEventAdd() sl@0: { sl@0: delete iEvent; sl@0: } sl@0: sl@0: // sl@0: // Get stuff from the client and start doing the work sl@0: // sl@0: void CLogServOpEventAdd::StartL(TRequestStatus& aStatus) sl@0: { sl@0: // Read stuff from the client sl@0: const TInt length = Message().GetDesLengthL(1); sl@0: sl@0: Package().ResizeL(length); sl@0: TPtr8 pPackage(Package().Ptr()); sl@0: Message().ReadL(1,pPackage); sl@0: sl@0: // Decode the parameters we've read from the client sl@0: iEvent = CLogEvent::NewL(); sl@0: Package().GetLogEventL(*iEvent); sl@0: sl@0: // Do the actual work sl@0: TaskInterface().TaskEventAddL(aStatus, *iEvent, Message()); sl@0: } sl@0: sl@0: // sl@0: // Complete the client request - we need to wait for the client to request a response sl@0: // sl@0: CLogServOperationBase::TCompletionStatus CLogServOpEventAdd::CompleteProcessingL(TInt /*aFinalCompletionCode*/) sl@0: { sl@0: Package().SetLogEventL(*iEvent); sl@0: const TInt size = Package().Ptr().Size(); sl@0: Complete(size); sl@0: // sl@0: return CLogServOperationBase::EOperationCompleteWaitForClient; sl@0: } sl@0: sl@0: // sl@0: // Write stuff back to the client sl@0: // sl@0: void CLogServOpEventAdd::WriteL(const RMessage2& aMessage) sl@0: { sl@0: aMessage.WriteL(1, Package().Ptr()); sl@0: } sl@0: sl@0: ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// sl@0: ////////////////////////////// CLogServOpEventChange ///////////////////////////////////////////////////////// sl@0: ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// sl@0: sl@0: // sl@0: // Create an operation to change an event in the log sl@0: // sl@0: CLogServOpEventChange::CLogServOpEventChange(MLogServTaskInterface& aTaskInterface, sl@0: MLogServOperationManager& aOperationManager, sl@0: const RMessage2& aMessage, sl@0: CLogPackage& aPackage, sl@0: const TLogClientServerData& aCliServData, sl@0: TLogServSessionId aSessionId) : sl@0: CLogServOperationBase(aTaskInterface, aOperationManager, aMessage, aPackage, aCliServData, aSessionId) sl@0: { sl@0: } sl@0: sl@0: CLogServOpEventChange::~CLogServOpEventChange() sl@0: { sl@0: delete iEvent; sl@0: } sl@0: sl@0: // sl@0: // Get stuff from the client and start doing the work sl@0: // sl@0: void CLogServOpEventChange::StartL(TRequestStatus& aStatus) sl@0: { sl@0: // Read stuff from the client sl@0: Package().ResizeL(Message().GetDesLengthL(1)); sl@0: Message().ReadL(1, Package().Ptr()); sl@0: sl@0: // Decode the parameters we've read from the client sl@0: iEvent = CLogEvent::NewL(); sl@0: Package().GetLogEventL(*iEvent); sl@0: sl@0: // Do the actual work sl@0: TaskInterface().TaskEventChangeL(aStatus, *iEvent, Message()); sl@0: } sl@0: sl@0: ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// sl@0: ////////////////////////////// CLogServOpEventGet //////////////////////////////////////////////////////////// sl@0: ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// sl@0: sl@0: // sl@0: // Create an operation to get an event in the log sl@0: // sl@0: CLogServOpEventGet::CLogServOpEventGet(MLogServTaskInterface& aTaskInterface, sl@0: MLogServOperationManager& aOperationManager, sl@0: const RMessage2& aMessage, sl@0: CLogPackage& aPackage, sl@0: const TLogClientServerData& aCliServData, sl@0: TLogServSessionId aSessionId) : sl@0: CLogServOperationBase(aTaskInterface, aOperationManager, aMessage, aPackage, aCliServData, aSessionId) sl@0: { sl@0: } sl@0: sl@0: CLogServOpEventGet::~CLogServOpEventGet() sl@0: { sl@0: delete iEvent; sl@0: } sl@0: sl@0: // sl@0: // Get stuff from the client and start doing the work sl@0: // sl@0: void CLogServOpEventGet::StartL(TRequestStatus& aStatus) sl@0: { sl@0: // Setup the event sl@0: iEvent = CLogEvent::NewL(); sl@0: iEvent->SetId((TLogId)Message().Ptr1()); sl@0: sl@0: // Do the actual work sl@0: TaskInterface().TaskEventGetL(aStatus, *iEvent, Message()); sl@0: } sl@0: sl@0: // sl@0: // Complete the client request - we need to wait for the client to request a response sl@0: // sl@0: CLogServOperationBase::TCompletionStatus CLogServOpEventGet::CompleteProcessingL(TInt /*aFinalCompletionCode*/) sl@0: { sl@0: Package().SetLogEventL(*iEvent); sl@0: const TInt size = Package().Ptr().Size(); sl@0: Complete(size); sl@0: // sl@0: return CLogServOperationBase::EOperationCompleteWaitForClient; sl@0: } sl@0: sl@0: // sl@0: // Write stuff back to the client sl@0: // sl@0: void CLogServOpEventGet::WriteL(const RMessage2& aMessage) sl@0: { sl@0: aMessage.WriteL(1, Package().Ptr()); sl@0: } sl@0: sl@0: ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// sl@0: ////////////////////////////// CLogServOpEventDelete ///////////////////////////////////////////////////////// sl@0: ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// sl@0: sl@0: // sl@0: // Create an operation to delete an event from the log sl@0: // sl@0: CLogServOpEventDelete::CLogServOpEventDelete(MLogServTaskInterface& aTaskInterface, sl@0: MLogServOperationManager& aOperationManager, sl@0: const RMessage2& aMessage, sl@0: CLogPackage& aPackage, sl@0: const TLogClientServerData& aCliServData, sl@0: TLogServSessionId aSessionId) : sl@0: CLogServOperationBase(aTaskInterface, aOperationManager, aMessage, aPackage, aCliServData, aSessionId) sl@0: { sl@0: } sl@0: sl@0: void CLogServOpEventDelete::StartL(TRequestStatus& aStatus) sl@0: { sl@0: // Do the actual work sl@0: const TLogId eventId = static_cast(Message().Int1()); sl@0: TaskInterface().TaskEventDeleteL(aStatus, eventId, Message()); sl@0: } sl@0: sl@0: ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// sl@0: ////////////////////////////// CLogServOpTypeAdd ///////////////////////////////////////////////////////////// sl@0: ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// sl@0: sl@0: // sl@0: // Add a new event type to the database sl@0: // sl@0: CLogServOpTypeAdd::CLogServOpTypeAdd(MLogServTaskInterface& aTaskInterface, sl@0: MLogServOperationManager& aOperationManager, sl@0: const RMessage2& aMessage, sl@0: CLogPackage& aPackage, sl@0: const TLogClientServerData& aCliServData, sl@0: TLogServSessionId aSessionId) : sl@0: CLogServOperationBase(aTaskInterface, aOperationManager, aMessage, aPackage, aCliServData, aSessionId) sl@0: { sl@0: } sl@0: sl@0: CLogServOpTypeAdd::~CLogServOpTypeAdd() sl@0: { sl@0: delete iEventType; sl@0: } sl@0: sl@0: // sl@0: // Get stuff from the client and start doing the work sl@0: // sl@0: void CLogServOpTypeAdd::StartL(TRequestStatus& aStatus) sl@0: { sl@0: // Read stuff from the client sl@0: Package().ResizeL(Message().GetDesLengthL(1)); sl@0: Message().ReadL(1, Package().Ptr()); sl@0: sl@0: sl@0: // Decode the parameters we've read from the client sl@0: iEventType = CLogEventType::NewL(); sl@0: Package().GetLogEventTypeL(*iEventType); sl@0: sl@0: // Do the actual work sl@0: TaskInterface().TaskEventTypeAddL(aStatus, *iEventType); sl@0: } sl@0: sl@0: ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// sl@0: ////////////////////////////// CLogServOpTypeGet ///////////////////////////////////////////////////////////// sl@0: ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// sl@0: sl@0: // sl@0: // Get event type details from the database sl@0: // sl@0: CLogServOpTypeGet::CLogServOpTypeGet(MLogServTaskInterface& aTaskInterface, sl@0: MLogServOperationManager& aOperationManager, sl@0: const RMessage2& aMessage, sl@0: CLogPackage& aPackage, sl@0: const TLogClientServerData& aCliServData, sl@0: TLogServSessionId aSessionId) : sl@0: CLogServOperationBase(aTaskInterface, aOperationManager, aMessage, aPackage, aCliServData, aSessionId) sl@0: { sl@0: } sl@0: sl@0: // sl@0: // Get stuff from the client and start doing the work sl@0: // sl@0: void CLogServOpTypeGet::StartL(TRequestStatus& aStatus) sl@0: { sl@0: // Do the actual work sl@0: const TUid eventTypeUid = { Message().Int1() }; sl@0: const CLogEventType *eventType; sl@0: TaskInterface().TaskEventTypeGetL(aStatus, eventType, eventTypeUid); sl@0: iEventType = const_cast(eventType); sl@0: } sl@0: sl@0: // sl@0: // Complete the client request - we need to wait for the client to request a response sl@0: // sl@0: CLogServOperationBase::TCompletionStatus CLogServOpTypeGet::CompleteProcessingL(TInt /*aFinalCompletionCode*/) sl@0: { sl@0: Package().SetLogEventTypeL(*iEventType); sl@0: const TInt size = Package().Ptr().Size(); sl@0: Complete(size); sl@0: // sl@0: return CLogServOperationBase::EOperationCompleteWaitForClient; sl@0: } sl@0: sl@0: // sl@0: // Write stuff back to the client sl@0: // sl@0: void CLogServOpTypeGet::WriteL(const RMessage2& aMessage) sl@0: { sl@0: aMessage.WriteL(1, Package().Ptr()); sl@0: } sl@0: sl@0: ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// sl@0: ////////////////////////////// CLogServOpTypeChange ////////////////////////////////////////////////////////// sl@0: ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// sl@0: sl@0: // sl@0: // Change event type details in the database sl@0: // sl@0: CLogServOpTypeChange::CLogServOpTypeChange(MLogServTaskInterface& aTaskInterface, sl@0: MLogServOperationManager& aOperationManager, sl@0: const RMessage2& aMessage, sl@0: CLogPackage& aPackage, sl@0: const TLogClientServerData& aCliServData, sl@0: TLogServSessionId aSessionId) : sl@0: CLogServOperationBase(aTaskInterface, aOperationManager, aMessage, aPackage, aCliServData, aSessionId) sl@0: { sl@0: } sl@0: sl@0: CLogServOpTypeChange::~CLogServOpTypeChange() sl@0: { sl@0: delete iEventType; sl@0: } sl@0: sl@0: // sl@0: // Get stuff from the client and start doing the work sl@0: // sl@0: void CLogServOpTypeChange::StartL(TRequestStatus& aStatus) sl@0: { sl@0: // Read stuff from the client sl@0: Package().ResizeL(Message().GetDesLengthL(1)); sl@0: Message().ReadL(1, Package().Ptr()); sl@0: sl@0: // Decode the parameters we've read from the client sl@0: iEventType = CLogEventType::NewL(); sl@0: Package().GetLogEventTypeL(*iEventType); sl@0: sl@0: // Do the actual work sl@0: TaskInterface().TaskEventTypeChangeL(aStatus, *iEventType); sl@0: } sl@0: sl@0: ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// sl@0: ////////////////////////////// CLogServOpTypeDelete ////////////////////////////////////////////////////////// sl@0: ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// sl@0: sl@0: // sl@0: // Delete event type details from the database sl@0: // sl@0: CLogServOpTypeDelete::CLogServOpTypeDelete(MLogServTaskInterface& aTaskInterface, sl@0: MLogServOperationManager& aOperationManager, sl@0: const RMessage2& aMessage, sl@0: CLogPackage& aPackage, sl@0: const TLogClientServerData& aCliServData, sl@0: TLogServSessionId aSessionId) : sl@0: CLogServOperationBase(aTaskInterface, aOperationManager, aMessage, aPackage, aCliServData, aSessionId) sl@0: { sl@0: } sl@0: sl@0: // sl@0: // Get stuff from the client and start doing the work sl@0: // sl@0: void CLogServOpTypeDelete::StartL(TRequestStatus& aStatus) sl@0: { sl@0: // Do the actual work sl@0: const TUid eventTypeUid = { Message().Int1() }; sl@0: TaskInterface().TaskEventTypeDeleteL(aStatus, eventTypeUid); sl@0: } sl@0: sl@0: ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// sl@0: ////////////////////////////// CLogServOpConfigGet /////////////////////////////////////////////////////////// sl@0: ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// sl@0: sl@0: // sl@0: // Get database config sl@0: // sl@0: CLogServOpConfigGet::CLogServOpConfigGet(MLogServTaskInterface& aTaskInterface, sl@0: MLogServOperationManager& aOperationManager, sl@0: const RMessage2& aMessage, sl@0: CLogPackage& aPackage, sl@0: const TLogClientServerData& aCliServData, sl@0: TLogServSessionId aSessionId) : sl@0: CLogServOperationBase(aTaskInterface, aOperationManager, aMessage, aPackage, aCliServData, aSessionId) sl@0: { sl@0: } sl@0: sl@0: // sl@0: // Start doing the work sl@0: // sl@0: void CLogServOpConfigGet::StartL(TRequestStatus& aStatus) sl@0: { sl@0: // Do the actual work sl@0: TaskInterface().TaskConfigGetL(aStatus, iConfig); sl@0: } sl@0: sl@0: // sl@0: // Complete the client request - we need to wait for the client to request a response sl@0: // sl@0: CLogServOperationBase::TCompletionStatus CLogServOpConfigGet::CompleteProcessingL(TInt /*aFinalCompletionCode*/) sl@0: { sl@0: Package().SetLogConfigL(iConfig); sl@0: const TInt size = Package().Ptr().Size(); sl@0: Complete(size); sl@0: // sl@0: return CLogServOperationBase::EOperationCompleteWaitForClient; sl@0: } sl@0: sl@0: // Write stuff back to the client sl@0: void CLogServOpConfigGet::WriteL(const RMessage2& aMessage) sl@0: { sl@0: aMessage.WriteL(1, Package().Ptr()); sl@0: } sl@0: sl@0: ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// sl@0: ////////////////////////////// CLogServOpConfigChange //////////////////////////////////////////////////////// sl@0: ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// sl@0: sl@0: // sl@0: // Change database config sl@0: // sl@0: CLogServOpConfigChange::CLogServOpConfigChange(MLogServTaskInterface& aTaskInterface, sl@0: MLogServOperationManager& aOperationManager, sl@0: const RMessage2& aMessage, sl@0: CLogPackage& aPackage, sl@0: const TLogClientServerData& aCliServData, sl@0: TLogServSessionId aSessionId) : sl@0: CLogServOperationBase(aTaskInterface, aOperationManager, aMessage, aPackage, aCliServData, aSessionId) sl@0: { sl@0: } sl@0: sl@0: // sl@0: // Decode parameters from a client and start doing the work sl@0: // sl@0: void CLogServOpConfigChange::StartL(TRequestStatus& aStatus) sl@0: { sl@0: // Read stuff from the client sl@0: Package().ResizeL(Message().GetDesLengthL(1)); sl@0: Message().ReadL(1, Package().Ptr()); sl@0: sl@0: // Decode the parameters we've read from the client sl@0: Package().GetLogConfigL(iConfig); sl@0: sl@0: // Do the actual work sl@0: TaskInterface().TaskConfigChangeL(aStatus, iConfig); sl@0: } sl@0: sl@0: ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// sl@0: ////////////////////////////// CLogServOpClearLog //////////////////////////////////////////////////////////// sl@0: ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// sl@0: sl@0: // sl@0: // Clear the event log sl@0: // sl@0: CLogServOpClearLog::CLogServOpClearLog(MLogServTaskInterface& aTaskInterface, sl@0: MLogServOperationManager& aOperationManager, sl@0: const RMessage2& aMessage, sl@0: CLogPackage& aPackage, sl@0: const TLogClientServerData& aCliServData, sl@0: TLogServSessionId aSessionId) : sl@0: CLogServOperationBase(aTaskInterface, aOperationManager, aMessage, aPackage, aCliServData, aSessionId) sl@0: { sl@0: } sl@0: sl@0: // sl@0: // Decode parameters from the client and start doing the work sl@0: // sl@0: void CLogServOpClearLog::StartL(TRequestStatus& aStatus) sl@0: { sl@0: // Do the actual work sl@0: TUint p2 = (TUint)Message().Ptr2(); sl@0: TUint p1 = (TUint)Message().Ptr1(); sl@0: const TTime time(MAKE_TINT64(p2, p1)); sl@0: #ifdef SYMBIAN_ENABLE_EVENTLOGGER_DUALSIM sl@0: TSimId simId = (TSimId)Message().Int3(); sl@0: TaskInterface().TaskClearLogL(aStatus, time, simId); sl@0: #else sl@0: TaskInterface().TaskClearLogL(aStatus, time); sl@0: #endif sl@0: } sl@0: sl@0: ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// sl@0: ////////////////////////////// CLogServOpClearRecent ///////////////////////////////////////////////////////// sl@0: ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// sl@0: sl@0: // sl@0: // Clear a recent list sl@0: // sl@0: CLogServOpClearRecent::CLogServOpClearRecent(MLogServTaskInterface& aTaskInterface, sl@0: MLogServOperationManager& aOperationManager, sl@0: const RMessage2& aMessage, sl@0: CLogPackage& aPackage, sl@0: const TLogClientServerData& aCliServData, sl@0: TLogServSessionId aSessionId) : sl@0: CLogServOperationBase(aTaskInterface, aOperationManager, aMessage, aPackage, aCliServData, aSessionId) sl@0: { sl@0: } sl@0: sl@0: // sl@0: // Decode parameters from the client and start doing the work sl@0: // sl@0: void CLogServOpClearRecent::StartL(TRequestStatus& aStatus) sl@0: { sl@0: // Do the actual work sl@0: const TLogRecentList recentList = static_cast(Message().Int1()); sl@0: #ifdef SYMBIAN_ENABLE_EVENTLOGGER_DUALSIM sl@0: TSimId simId = (TSimId)Message().Int2(); sl@0: TaskInterface().TaskClearRecentL(aStatus, recentList, simId); sl@0: #else sl@0: TaskInterface().TaskClearRecentL(aStatus, recentList); sl@0: #endif sl@0: } sl@0: sl@0: ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// sl@0: ////////////////////////////// CLogServOpMaintenance ///////////////////////////////////////////////////////// sl@0: ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// sl@0: sl@0: // sl@0: // Kicks the server to perform a maintain on the database. sl@0: // Always done after an op as necessary sl@0: // sl@0: CLogServOpMaintenance::CLogServOpMaintenance(MLogServTaskInterface& aTaskInterface, sl@0: MLogServOperationManager& aOperationManager, sl@0: const RMessage2& aMessage, sl@0: CLogPackage& aPackage, sl@0: const TLogClientServerData& aCliServData, sl@0: TLogServSessionId aSessionId) : sl@0: CLogServOperationBase(aTaskInterface, aOperationManager, aMessage, aPackage, aCliServData, aSessionId) sl@0: { sl@0: } sl@0: sl@0: // sl@0: // Just complete ourselves sl@0: // sl@0: void CLogServOpMaintenance::StartL(TRequestStatus& aStatus) sl@0: { sl@0: TRequestStatus* status = &aStatus; sl@0: User::RequestComplete(status, KErrNone); sl@0: } sl@0: sl@0: ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// sl@0: ////////////////////////////// CLogServOpViewSetup /////////////////////////////////////////////////////////// sl@0: ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// sl@0: sl@0: // Setup a view sl@0: CLogServOpViewSetup::CLogServOpViewSetup(MLogServTaskInterface& aTaskInterface, sl@0: MLogServOperationManager& aOperationManager, sl@0: const RMessage2& aMessage, sl@0: CLogPackage& aPackage, sl@0: CLogServViewBase& aView, sl@0: const TLogClientServerData& aCliServData, sl@0: TLogServSessionId aSessionId) : sl@0: CLogServOperationBase(aTaskInterface, aOperationManager, aMessage, aPackage, aCliServData, aSessionId), sl@0: iView(aView) sl@0: { sl@0: } sl@0: sl@0: // sl@0: // Decode parameters from the client and start doing the work sl@0: // sl@0: void CLogServOpViewSetup::StartL(TRequestStatus& aStatus) sl@0: { sl@0: // Read the filter construction type from the shared data slot sl@0: const TInt filterConstructionType = ClientServerData().iDataSlot1; sl@0: if (filterConstructionType == ELogFilterConstructFilterByFilterFieldByField || filterConstructionType == ELogFilterConstructFieldByFieldFilterByFilter) sl@0: { sl@0: // Do the actual work sl@0: iView.SetupL(Message(), static_cast(filterConstructionType)); sl@0: TRequestStatus* status = &aStatus; sl@0: User::RequestComplete(status, KErrNone); sl@0: } sl@0: else sl@0: ::PanicClientL(Message(), ELogBadFilterConstructionType); sl@0: } sl@0: sl@0: // sl@0: // Complete the client request telling it the number of entries in the view sl@0: // sl@0: CLogServOperationBase::TCompletionStatus CLogServOpViewSetup::CompleteProcessingL(TInt /*aFinalCompletionCode*/) sl@0: { sl@0: const TInt viewCount = iView.Count(); sl@0: Complete(viewCount); sl@0: // sl@0: return CLogServOperationBase::EOperationComplete; sl@0: } sl@0: sl@0: ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// sl@0: ////////////////////////////// CLogServOpViewEventRemove ///////////////////////////////////////////////////// sl@0: ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// sl@0: sl@0: // sl@0: // Remove an event from a view sl@0: // sl@0: CLogServOpViewEventRemove::CLogServOpViewEventRemove(MLogServTaskInterface& aTaskInterface, sl@0: MLogServOperationManager& aOperationManager, sl@0: const RMessage2& aMessage, sl@0: CLogPackage& aPackage, sl@0: CLogServViewBase& aView, sl@0: const TLogClientServerData& aCliServData, sl@0: TLogServSessionId aSessionId): sl@0: CLogServOperationBase(aTaskInterface, aOperationManager, aMessage, aPackage, aCliServData, aSessionId), sl@0: iView(aView) sl@0: { sl@0: } sl@0: sl@0: // sl@0: // Decode parameters from the client and start doing the work sl@0: // sl@0: void CLogServOpViewEventRemove::StartL(TRequestStatus& aStatus) sl@0: { sl@0: iView.RemoveL(Message()); sl@0: TRequestStatus* status = &aStatus; sl@0: User::RequestComplete(status, KErrNone); sl@0: } sl@0: sl@0: ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// sl@0: ////////////////////////////// CLogServOpViewClearDuplicates ///////////////////////////////////////////////// sl@0: ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// sl@0: sl@0: CLogServOpViewClearDuplicates::CLogServOpViewClearDuplicates(MLogServTaskInterface& aTaskInterface, sl@0: MLogServOperationManager& aOperationManager, sl@0: const RMessage2& aMessage, sl@0: CLogPackage& aPackage, sl@0: CLogServViewBase& aView, sl@0: const TLogClientServerData& aCliServData, sl@0: TLogServSessionId aSessionId): sl@0: CLogServOperationBase(aTaskInterface, aOperationManager, aMessage, aPackage, aCliServData, aSessionId), sl@0: iView(aView) sl@0: { sl@0: } sl@0: sl@0: void CLogServOpViewClearDuplicates::StartL(TRequestStatus& aStatus) sl@0: { sl@0: iView.ClearDuplicatesL(Message()); sl@0: TRequestStatus* status = &aStatus; sl@0: User::RequestComplete(status, KErrNone); sl@0: } sl@0: sl@0: ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// sl@0: ////////////////////////////// CLogServOpViewSetFlags //////////////////////////////////////////////////////// sl@0: ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// sl@0: sl@0: CLogServOpViewSetFlags::CLogServOpViewSetFlags(MLogServTaskInterface& aTaskInterface, sl@0: MLogServOperationManager& aOperationManager, sl@0: const RMessage2& aMessage, sl@0: CLogPackage& aPackage, sl@0: CLogServViewBase& aView, sl@0: const TLogClientServerData& aCliServData, sl@0: TLogServSessionId aSessionId) : sl@0: CLogServOperationBase(aTaskInterface, aOperationManager, aMessage, aPackage, aCliServData, aSessionId), sl@0: iView(aView) sl@0: { sl@0: } sl@0: sl@0: void CLogServOpViewSetFlags::StartL(TRequestStatus& aStatus) sl@0: { sl@0: iView.SetFlagsL(Message()); sl@0: TRequestStatus* status = &aStatus; sl@0: User::RequestComplete(status, KErrNone); sl@0: } sl@0: sl@0: ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// sl@0: ////////////////////////////// CLogServOpViewWindowFetcher /////////////////////////////////////////////////// sl@0: ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// sl@0: sl@0: CLogServOpViewWindowFetcher::CLogServOpViewWindowFetcher(MLogServTaskInterface& aTaskInterface, sl@0: MLogServOperationManager& aOperationManager, sl@0: const RMessage2& aMessage, sl@0: CLogPackage& aPackage, sl@0: CLogServViewBase& aView, sl@0: const TLogClientServerData& aCliServData, sl@0: TLogServSessionId aSessionId) : sl@0: CLogServOperationBase(aTaskInterface, aOperationManager, aMessage, aPackage, aCliServData, aSessionId), sl@0: iView(aView) sl@0: { sl@0: } sl@0: sl@0: void CLogServOpViewWindowFetcher::StartL(TRequestStatus& aStatus) sl@0: { sl@0: // Get the window sl@0: TLogTransferWindow window; sl@0: TPckg pWindow(window); sl@0: Message().ReadL(2, pWindow); sl@0: sl@0: // Do the actual work sl@0: TaskInterface().TaskBuildWindowL(aStatus, iView, window, Message()); sl@0: } sl@0: sl@0: // sl@0: // Complete the client request - the final completion code tells us, in this instance, how many records were sl@0: // read from the view. sl@0: // sl@0: CLogServOperationBase::TCompletionStatus CLogServOpViewWindowFetcher::CompleteProcessingL(TInt aFinalCompletionCode) sl@0: { sl@0: Complete(aFinalCompletionCode); sl@0: sl@0: // Don't need to wait for anything - we've already written back to the client's address space sl@0: // when we built the window. sl@0: return CLogServOperationBase::EOperationComplete; sl@0: }