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 __LOGCHNGE_H__ sl@0: #define __LOGCHNGE_H__ sl@0: sl@0: #include sl@0: sl@0: // Classes referenced sl@0: class TLogConfig; sl@0: class CLogServRecentList; sl@0: class CLogServRecentListManager; sl@0: class MLogServDatabaseTransactionInterface; sl@0: class CLogDuplicate; sl@0: class CLogFilter; sl@0: class RLogEventDbTable; sl@0: sl@0: sl@0: /** sl@0: This class provides functions for updating properties of particular event. sl@0: The database record holding the event data will be updated. sl@0: sl@0: @see MLogServDatabaseTransactionInterface sl@0: @see CLogServRecentList sl@0: @see CLogDuplicate sl@0: @see CLogEvent sl@0: @internalComponent sl@0: */ sl@0: class CLogChangeEvent : public CLogActive sl@0: { sl@0: public: sl@0: static CLogChangeEvent* NewL(MLogServDatabaseTransactionInterface& aDatabase, TInt aPriority); sl@0: ~CLogChangeEvent(); sl@0: // sl@0: public: sl@0: void StartL(const CLogEvent& aEvent, sl@0: const CLogServRecentList* aRecentList, sl@0: TRequestStatus& aStatus, sl@0: const RMessage2& aMessage); sl@0: // sl@0: private: sl@0: CLogChangeEvent(MLogServDatabaseTransactionInterface& aDatabase, TInt aPriority); sl@0: void ConstructL(); sl@0: // sl@0: void DoRunL(); sl@0: void DoComplete(TInt& aStatus); sl@0: void ResetDuplicatesL(); sl@0: void UpdateDuplicateEventsL(); sl@0: void DoChangeEventL(); sl@0: void DoChangeL(RLogEventDbTable& aTbl, TLogStringId aDirectionId, TLogStringId aStatusId); sl@0: // sl@0: enum TLogChangeState sl@0: { sl@0: ELogNone = 0, sl@0: ELogChangeEvent, sl@0: ELogPurgeRecent sl@0: }; sl@0: // sl@0: private: sl@0: MLogServDatabaseTransactionInterface& iDatabase; sl@0: CLogEvent* iEvent; sl@0: TLogChangeState iState; sl@0: const CLogServRecentList* iRecentList; sl@0: TInt iOldRecentList; sl@0: // sl@0: CLogDuplicate* iDuplicate; sl@0: CLogFilter* iDuplicateFilter; sl@0: // sl@0: const RMessage2* iMessage; sl@0: }; sl@0: sl@0: sl@0: sl@0: sl@0: sl@0: sl@0: sl@0: sl@0: sl@0: sl@0: sl@0: //********************************** sl@0: // CLogChangeConfig sl@0: //********************************** sl@0: sl@0: class CLogChangeConfig : public CLogActive sl@0: /** sl@0: @internalComponent sl@0: */ sl@0: { sl@0: public: sl@0: static CLogChangeConfig* NewL(MLogServDatabaseTransactionInterface& aDatabase, const CLogServRecentListManager& aRecentSetup, TInt aPriority); sl@0: ~CLogChangeConfig(); sl@0: // sl@0: public: sl@0: void StartL(const TLogConfig& aConfig, TRequestStatus& aStatus); sl@0: // sl@0: private: sl@0: CLogChangeConfig(MLogServDatabaseTransactionInterface& aDatabase, const CLogServRecentListManager& aRecentSetup, TInt aPriority); sl@0: // sl@0: void DoRunL(); sl@0: void DoComplete(TInt& aStatus); sl@0: // sl@0: enum TLogChangeState sl@0: { sl@0: ELogNone, sl@0: ELogChange, sl@0: ELogPurgeRecent sl@0: }; sl@0: // sl@0: private: sl@0: MLogServDatabaseTransactionInterface& iDatabase; sl@0: const TLogConfig* iConfig; sl@0: const CLogServRecentListManager& iRecentSetup; sl@0: TLogChangeState iState; sl@0: TInt iRecent; sl@0: sl@0: }; sl@0: sl@0: #endif