diff -r 000000000000 -r 08ec8eefde2f loggingservices/eventlogger/LogServ/inc/LogServDatabaseDriver.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/loggingservices/eventlogger/LogServ/inc/LogServDatabaseDriver.h Fri Jan 22 11:06:30 2010 +0200 @@ -0,0 +1,122 @@ +// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +#ifndef __LOGSERVDATABASEDRIVER_H__ +#define __LOGSERVDATABASEDRIVER_H__ + +#include +#include "LogServTaskInterface.h" +#include "LogServBackupObserver.h" + +// Classes referenced +class CLogEvent; +class CLogEventType; +class CLogAddEvent; +class CLogMaintenance; +class CLogChangeEvent; +class CLogGetEvent; +class CLogDeleteEvent; +class CLogChangeConfig; +class MLogServDatabaseTransactionInterface; +class MLogServBackupInterface; +class CLogServRecentListManager; +class CLogServResourceInterpreter; +class CLogServViewWindowFetcher; + +/** +Implements MLogServTaskInterface and MLogServBackupObserver. +Maintains a list of hitters, i.e. objects that will execute the requested by the client operation - add event, etc. +Every time, when one of the implemented TaskEventAddL(), TaskEventChangeL() etc. methods is called, that method +will read the client data and call the StartL() method of the hitter suitable for that operation. + +@see MLogServTaskInterface +@see MLogServBackupObserver +@see CLogAddEvent; +@see CLogGetEvent; +@see CLogChangeEvent; +@see CLogDeleteEvent; +@see CLogChangeConfig; +@see CLogMaintenance; + +@internalComponent +*/ +class CLogServDatabaseDriver : public CBase, public MLogServTaskInterface, public MLogServBackupObserver + { +public: + static CLogServDatabaseDriver* NewL(MLogServBackupInterface& aBackupInterface, MLogServDatabaseTransactionInterface& aDatabase, CLogServResourceInterpreter& aResourceInterface, CLogServRecentListManager& aRecentListManager, TInt aHitterPriorities); + ~CLogServDatabaseDriver(); + +private: + CLogServDatabaseDriver(MLogServBackupInterface& aBackupInterface, MLogServDatabaseTransactionInterface& aDatabase, CLogServResourceInterpreter& aResourceInterface, CLogServRecentListManager& aRecentListManager, TInt aHitterPriorities); + void ConstructL(); + +private: // FROM MLogServBackupObserver + void BOHandleEventL(TLogServBackupEvent aEvent); + +private: // FROM MLogServTaskInterface + void TaskEventAddL(TRequestStatus& aStatus, CLogEvent& aEvent, const RMessage2& aMessage); + void TaskEventChangeL(TRequestStatus& aStatus, const CLogEvent& aEvent, const RMessage2& aMessage); + void TaskEventGetL(TRequestStatus& aStatus, CLogEvent& aEvent, const RMessage2& aMessage); + void TaskEventDeleteL(TRequestStatus& aStatus, TLogId aId, const RMessage2& aMessage); + // + void TaskEventTypeAddL(TRequestStatus& aStatus, const CLogEventType& aEventType); + void TaskEventTypeGetL(TRequestStatus& aStatus, const CLogEventType*& aEventType, TUid aUid); + void TaskEventTypeChangeL(TRequestStatus& aStatus, const CLogEventType& aEventType); + void TaskEventTypeDeleteL(TRequestStatus& aStatus, TUid aType); + // + void TaskConfigGetL(TRequestStatus& aStatus, TLogConfig& aConfig); + void TaskConfigChangeL(TRequestStatus& aStatus, const TLogConfig& aConfig); + // + void TaskClearLogL(TRequestStatus& aStatus, const TTime& aDate +#ifdef SYMBIAN_ENABLE_EVENTLOGGER_DUALSIM + , TSimId aSimId +#endif + ); + void TaskClearRecentL(TRequestStatus& aStatus, TInt aRecentList +#ifdef SYMBIAN_ENABLE_EVENTLOGGER_DUALSIM + , TSimId aSimId +#endif + ); + // + void TaskMaintenanceStartL(TRequestStatus& aStatus, TBool aPurge); + // + void TaskBuildWindowL(TRequestStatus& aStatus, const CLogServViewBase& aView, const TLogTransferWindow& aWindow, const RMessage2& aMessage); + // + void TaskCancelCurrent(); + +private: + void DestroyHitters(); + void CreateHittersL(); + +private: + TInt iHitterPriorities;//The active object priority used for all objects which hit the database + MLogServBackupInterface& iBackupInterface;//The interface to the backup manager + MLogServDatabaseTransactionInterface& iDatabase;//Access the database + CLogServResourceInterpreter& iResourceInterface;//Access resource files + CLogServRecentListManager& iRecentListManager;//Access recent list + // The hitters - named as such because they all hit the database in some + // way (e.g. read or write from/to it). + CLogAddEvent* iAddEvent; + CLogGetEvent* iGetEvent; + CLogChangeEvent* iChangeEvent; + CLogDeleteEvent* iDeleteEvent; + CLogChangeConfig* iChangeConfig; + CLogMaintenance* iMaintainer; + CLogServViewWindowFetcher* iWindowFetcher; + + }; + +#endif +