sl@0: // Copyright (c) 2003-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 __LOGMAIN_H__ sl@0: #define __LOGMAIN_H__ sl@0: sl@0: #include sl@0: #include sl@0: sl@0: // Classes referenced sl@0: class CLogRecover; sl@0: class CLogCompact; sl@0: class MLogServDatabaseTransactionInterface; sl@0: sl@0: /** sl@0: Performas maintenance tasks on the LogEng database, such as database compaction and database recovery. sl@0: sl@0: @see MLogServDatabaseTransactionInterface sl@0: @see CLogRecover sl@0: @see CLogCompact sl@0: @internalComponent sl@0: */ sl@0: class CLogMaintenance : public CLogActive sl@0: { sl@0: public: sl@0: static CLogMaintenance* NewL(MLogServDatabaseTransactionInterface& aDatabase, TInt aPriority); sl@0: ~CLogMaintenance(); sl@0: // sl@0: void Start(TBool aPurge, TRequestStatus& aStatus); sl@0: // sl@0: private: sl@0: CLogMaintenance(MLogServDatabaseTransactionInterface& aDatabase, TInt aPriority); sl@0: void ConstructL(); sl@0: // sl@0: void DoRunL(); sl@0: void DoComplete(TInt& aStatus); sl@0: TBool DoNextL(); sl@0: void DoCancel(); sl@0: // sl@0: void ClearLogL(const TTime& aDate, TRequestStatus& aStatus); sl@0: sl@0: // sl@0: enum TLogState { ELogRecover, ELogGetConfig, ELogPurgeMainAge, ELogCompact, ELogComplete }; sl@0: // sl@0: private: sl@0: MLogServDatabaseTransactionInterface& iDatabase; sl@0: TLogState iState; sl@0: TLogConfig iConfig; sl@0: TBool iPurge; sl@0: CLogRecover* iRecover; sl@0: CLogCompact* iCompact; sl@0: }; sl@0: sl@0: #endif