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: #ifndef __LOGCLIENTOP_H__ sl@0: #define __LOGCLIENTOP_H__ sl@0: sl@0: #include sl@0: #include "logpackage.h" sl@0: #include sl@0: #include "logservcli.h" sl@0: #include "LogServShared.h" sl@0: sl@0: /** sl@0: @internalComponent sl@0: */ sl@0: NONSHARABLE_CLASS(CLogClientOp) : public CActive sl@0: { sl@0: public: sl@0: void Start(TRequestStatus& aObserver); sl@0: TInt Start(); sl@0: sl@0: protected: sl@0: CLogClientOp(RLogSession& aSession, CLogPackage& aPackage, TLogOperationType aType, TInt aPriority); sl@0: ~CLogClientOp(); sl@0: void FetchResultFromServerL(TInt aResult); sl@0: void SetDataSlot1(TInt aValue); sl@0: sl@0: private: sl@0: void RunL(); sl@0: void DoCancel(); sl@0: TInt RunError(TInt aError); sl@0: TInt DoStartL(); sl@0: virtual void InitiateRequestToServerL()=0; sl@0: virtual void CompleteL(TInt& aResult); sl@0: sl@0: protected: sl@0: CLogPackage& iPackage; sl@0: RLogSession& iSession; sl@0: TPckgBuf iData; sl@0: sl@0: private: sl@0: /** sl@0: * The observer's request status sl@0: */ sl@0: TRequestStatus* iObserver; sl@0: }; sl@0: sl@0: /** sl@0: Add an event to the database sl@0: @internalComponent sl@0: */ sl@0: NONSHARABLE_CLASS(CLogAddEventClientOp) : public CLogClientOp sl@0: { sl@0: public: sl@0: CLogAddEventClientOp(RLogSession& aSession, CLogPackage& aPackage, TInt aPriority); sl@0: void Start(CLogEvent& aEvent, TRequestStatus& aObserver); sl@0: // sl@0: private: sl@0: void InitiateRequestToServerL(); sl@0: void CompleteL(TInt& aResult); sl@0: // sl@0: private: sl@0: CLogEvent* iEvent; sl@0: }; sl@0: sl@0: /** sl@0: Change an event in the database sl@0: @internalComponent sl@0: */ sl@0: NONSHARABLE_CLASS(CLogChangeEventClientOp) : public CLogClientOp sl@0: { sl@0: public: sl@0: CLogChangeEventClientOp(RLogSession& aSession, CLogPackage& aPackage, TInt aPriority); sl@0: void Start(const CLogEvent& aEvent, TRequestStatus& aObserver); sl@0: // sl@0: private: sl@0: void InitiateRequestToServerL(); sl@0: // sl@0: private: sl@0: const CLogEvent* iEvent; sl@0: }; sl@0: sl@0: /** sl@0: Get an event from the database sl@0: @internalComponent sl@0: */ sl@0: NONSHARABLE_CLASS(CLogGetEventClientOp) : public CLogClientOp sl@0: { sl@0: public: sl@0: CLogGetEventClientOp(RLogSession& aSession, CLogPackage& aPackage, TInt aPriority); sl@0: void Start(CLogEvent& aEvent, TRequestStatus& aObserver); sl@0: // sl@0: private: sl@0: void InitiateRequestToServerL(); sl@0: void CompleteL(TInt& aResult); sl@0: // sl@0: private: sl@0: CLogEvent* iEvent; sl@0: }; sl@0: sl@0: /** sl@0: Delete an event from the database sl@0: @internalComponent sl@0: */ sl@0: NONSHARABLE_CLASS(CLogDeleteEventClientOp) : public CLogClientOp sl@0: { sl@0: public: sl@0: CLogDeleteEventClientOp(RLogSession& aSession, CLogPackage& aPackage, TInt aPriority); sl@0: void Start(TLogId aId, TRequestStatus& aObserver); sl@0: // sl@0: private: sl@0: void InitiateRequestToServerL(); sl@0: // sl@0: private: sl@0: TLogId iId; sl@0: }; sl@0: sl@0: /** sl@0: Add an event type to the database sl@0: @internalComponent sl@0: */ sl@0: NONSHARABLE_CLASS(CLogAddTypeClientOp) : public CLogClientOp sl@0: { sl@0: public: sl@0: CLogAddTypeClientOp(RLogSession& aSession, CLogPackage& aPackage, TInt aPriority); sl@0: void Start(const CLogEventType& aEventType, TRequestStatus& aObserver); sl@0: // sl@0: private: sl@0: void InitiateRequestToServerL(); sl@0: // sl@0: private: sl@0: const CLogEventType* iEventType; sl@0: }; sl@0: sl@0: /** sl@0: Change an event type in the database sl@0: @internalComponent sl@0: */ sl@0: NONSHARABLE_CLASS(CLogChangeTypeClientOp) : public CLogClientOp sl@0: { sl@0: public: sl@0: CLogChangeTypeClientOp(RLogSession& aSession, CLogPackage& aPackage, TInt aPriority); sl@0: void Start(const CLogEventType& aEventType, TRequestStatus& aObserver); sl@0: // sl@0: private: sl@0: void InitiateRequestToServerL(); sl@0: // sl@0: private: sl@0: const CLogEventType* iEventType; sl@0: }; sl@0: sl@0: /** sl@0: Get event type details sl@0: @internalComponent sl@0: */ sl@0: NONSHARABLE_CLASS(CLogGetTypeClientOp) : public CLogClientOp sl@0: { sl@0: public: sl@0: CLogGetTypeClientOp(RLogSession& aSession, CLogPackage& aPackage, TInt aPriority); sl@0: void Start(CLogEventType& aEventType, TRequestStatus& aObserver); sl@0: // sl@0: private: sl@0: void InitiateRequestToServerL(); sl@0: void CompleteL(TInt& aResult); sl@0: // sl@0: private: sl@0: CLogEventType* iEventType; sl@0: }; sl@0: sl@0: /** sl@0: Delete an event type sl@0: @internalComponent sl@0: */ sl@0: NONSHARABLE_CLASS(CLogDeleteTypeClientOp) : public CLogClientOp sl@0: { sl@0: public: sl@0: CLogDeleteTypeClientOp(RLogSession& aSession, CLogPackage& aPackage, TInt aPriority); sl@0: void Start(TUid aUid, TRequestStatus& aObserver); sl@0: // sl@0: private: sl@0: void InitiateRequestToServerL(); sl@0: // sl@0: private: sl@0: TUid iUid; sl@0: }; sl@0: sl@0: /** sl@0: Get engine configuration sl@0: @internalComponent sl@0: */ sl@0: NONSHARABLE_CLASS(CLogGetConfigClientOp) : public CLogClientOp sl@0: { sl@0: public: sl@0: CLogGetConfigClientOp(RLogSession& aSession, CLogPackage& aPackage, TInt aPriority); sl@0: void Start(TLogConfig& aConfig, TRequestStatus& aObserver); sl@0: // sl@0: private: sl@0: void InitiateRequestToServerL(); sl@0: void CompleteL(TInt& aResult); sl@0: // sl@0: private: sl@0: TLogConfig* iConfig; sl@0: }; sl@0: sl@0: /** sl@0: Change the configuration sl@0: @internalComponent sl@0: */ sl@0: NONSHARABLE_CLASS(CLogChangeConfigClientOp) : public CLogClientOp sl@0: { sl@0: public: sl@0: CLogChangeConfigClientOp(RLogSession& aSession, CLogPackage& aPackage, TInt aPriority); sl@0: void Start(const TLogConfig& aConfig, TRequestStatus& aObserver); sl@0: // sl@0: private: sl@0: void InitiateRequestToServerL(); sl@0: // sl@0: private: sl@0: const TLogConfig* iConfig; sl@0: }; sl@0: sl@0: /** sl@0: Clear the main event log sl@0: @internalComponent sl@0: */ sl@0: NONSHARABLE_CLASS(CLogClearLogClientOp) : public CLogClientOp sl@0: { sl@0: public: sl@0: CLogClearLogClientOp(RLogSession& aSession, CLogPackage& aPackage, TInt aPriority); sl@0: void Start(const TTime& aDate, TRequestStatus& aObserver sl@0: #ifdef SYMBIAN_ENABLE_EVENTLOGGER_DUALSIM sl@0: , TSimId aSimId = KLogNullSimId sl@0: #endif sl@0: ); sl@0: // sl@0: private: sl@0: void InitiateRequestToServerL(); sl@0: // sl@0: private: sl@0: TTime iDate; // UTC sl@0: #ifdef SYMBIAN_ENABLE_EVENTLOGGER_DUALSIM sl@0: TSimId iSimId; sl@0: #endif sl@0: }; sl@0: sl@0: /** sl@0: Clear a recent event log sl@0: @internalComponent sl@0: */ sl@0: NONSHARABLE_CLASS(CLogClearRecentClientOp) : public CLogClientOp sl@0: { sl@0: public: sl@0: CLogClearRecentClientOp(RLogSession& aSession, CLogPackage& aPackage, TInt aPriority); sl@0: void Start(TLogRecentList aList, TRequestStatus& aObserver sl@0: #ifdef SYMBIAN_ENABLE_EVENTLOGGER_DUALSIM sl@0: , TSimId aSimId = KLogNullSimId sl@0: #endif sl@0: ); sl@0: // sl@0: private: sl@0: void InitiateRequestToServerL(); sl@0: // sl@0: private: sl@0: TLogRecentList iList; sl@0: #ifdef SYMBIAN_ENABLE_EVENTLOGGER_DUALSIM sl@0: TSimId iSimId; sl@0: #endif sl@0: }; sl@0: sl@0: /** sl@0: Setup a view - Only synch version provided sl@0: @internalComponent sl@0: */ sl@0: NONSHARABLE_CLASS(CLogViewSetupClientOp) : public CLogClientOp sl@0: { sl@0: public: sl@0: CLogViewSetupClientOp(RLogSession& aSession, CLogPackage& aPackage, TInt aPriority); sl@0: TInt Start(TLogViewId aViewId, const CLogFilterList& aFilterList, TInt aParam, TLogFilterConstructionType aFilterConstructionType); sl@0: // sl@0: private: sl@0: void InitiateRequestToServerL(); sl@0: // sl@0: private: sl@0: TLogViewId iViewId; sl@0: const CLogFilterList* iFilterList; sl@0: TInt iParam; sl@0: }; sl@0: sl@0: /** sl@0: Remove an event from a view - Only synch version provided sl@0: @internalComponent sl@0: */ sl@0: NONSHARABLE_CLASS(CLogViewRemoveEventClientOp) : public CLogClientOp sl@0: { sl@0: public: sl@0: CLogViewRemoveEventClientOp(RLogSession& aSession, CLogPackage& aPackage, TInt aPriority); sl@0: TInt Start(TLogViewId aViewId, TLogId aId); sl@0: // sl@0: private: sl@0: void InitiateRequestToServerL(); sl@0: // sl@0: private: sl@0: TLogViewId iViewId; sl@0: TLogId iId; sl@0: }; sl@0: sl@0: /** sl@0: Do maintenance on the database - for view creation? sl@0: @internalComponent sl@0: */ sl@0: NONSHARABLE_CLASS(CLogMaintainClientOp) : public CLogClientOp sl@0: { sl@0: public: sl@0: CLogMaintainClientOp(RLogSession& aSession, CLogPackage& aPackage, TInt aPriority); sl@0: // sl@0: private: sl@0: void InitiateRequestToServerL(); sl@0: }; sl@0: sl@0: #endif