logsui/EngineInc/CLogsModel.h
changeset 0 e686773b3f54
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/logsui/EngineInc/CLogsModel.h	Tue Feb 02 10:12:17 2010 +0200
@@ -0,0 +1,142 @@
+/*
+* Copyright (c) 2002 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: 
+*     Abstract base class for logs model.
+*
+*/
+
+
+#ifndef __CLogsModel_H_
+#define __CLogsModel_H_
+
+//  INCLUDES
+#include <e32base.h>
+#include <f32file.h>
+#include "MLogsModel.h"
+#include "MLogsObserver.h"
+#include "MLogsStateHolder.h"
+#include "TLogsEventStrings.h"
+
+// MACROS
+
+// DATA TYPES
+
+// FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+class MLogsStateHolder;
+class MLogsEvent;
+class MLogsReader;
+class MLogsEventWrapper;
+class MLogsEventArray;
+class CLogsEngine;
+
+// CLASS DECLARATION
+
+/**
+ *	Defines abstract interface for Logs model
+ */
+class CLogsModel :  public CBase,
+                    public MLogsModel,
+                    public MLogsObserver,
+                    public MLogsStateHolder
+    {
+    public:
+        /**
+         * EPOC constructor. 
+         *
+         * @param aFsSession   ref. to file server session
+         * @param aModel model type
+         * @param aStrings     log client constants
+         * @return model object
+         */
+        static CLogsModel* NewL( RFs& aFsSession, TLogsModel aModel,
+                            TLogsEventStrings& aStrings, CLogsEngine* aLogsEngine );
+        /**
+         *  Destructor
+         */
+        ~CLogsModel();
+
+    private:
+        /**
+         * EPOC constructor. 
+         */
+        void ConstructL();
+        
+        /**
+         * C++ constructor. 
+         *
+         * @param aFsSession   ref. to file server session
+         * @param aModel model type
+         * @param aStrings     log client constants
+         */
+        CLogsModel( RFs& aFsSession, 
+                    TLogsModel aModel, 
+                    TLogsEventStrings& aStrings, 
+                    CLogsEngine* aLogsEngineRef );
+
+    private:
+
+    public: // from MLogsModel
+		void Delete( TInt aIndex );
+        TInt Count();
+        const MLogsEventGetter* At( TInt aIndex );
+        void SetObserver( MLogsObserver* aObserver );
+        void DoActivateL( TDoActivate aDoActivate );  
+        void DoDeactivate( TClearMissedCalls aClearMissedCalls,
+                           TDoDeactivate aDisconnectDb  );  
+        void Reset();
+        void ConfigureL( const MLogsReaderConfig* aConfig );
+        void KickStartL( TBool aReset );
+
+    public: // from MLogsStateHolder
+        TLogsState State() const;
+
+    public: // from MLogsObserver
+        void StateChangedL( MLogsStateHolder* aHolder );
+
+    private: // data
+
+        /// Ref: File server session
+        RFs& iFsSession;
+
+        /// Own: model type
+        TLogsModel iModel;
+
+        /// Ref: log strings
+        TLogsEventStrings& iStrings;
+
+        /// Own: Event array
+        MLogsEventArray* iEventArray;
+
+        /// Own: MLogsReader
+        MLogsReader* iReader;
+
+        /// Own: wrapper for CLogsGetEvent
+        MLogsEventWrapper* iWrapper;
+
+        /// Ref: Observer
+        MLogsObserver* iObserver;
+
+        /// own: state for observer
+        TLogsState      iState;
+        
+        /// Ref: Log db engine        
+        CLogsEngine* iLogsEngineRef;         
+    };
+
+            
+#endif
+
+// End of File  __CLogsModel_H_