--- /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 <e32base.h>
+#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
+