logsui/EngineInc/CLogsMainReader.h
changeset 0 e686773b3f54
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/logsui/EngineInc/CLogsMainReader.h	Tue Feb 02 10:12:17 2010 +0200
@@ -0,0 +1,197 @@
+/*
+* 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: 
+*     Main list reader
+*
+*/
+
+
+#ifndef __Logs_Engine_CLogsMainReader_H__
+#define __Logs_Engine_CLogsMainReader_H__
+
+//  INCLUDES
+#include <logclientchangeobserver.h>
+#include "CLogsBaseReader.h"
+
+// FORWARD DECLARATION
+class CLogViewEvent;
+class CLogFilter;
+class CLogFilterList;
+
+// CLASS DECLARATION
+class MLogsEventArray;
+
+/**
+ *  Main list reader
+ */
+class CLogsMainReader : public CLogsBaseReader,
+                        public MLogClientChangeObserver
+    {
+
+    public:
+
+        /**
+         *  Two phase constructor
+         *
+         *  @param aFsSession   ref. to file server session
+         *  @param aEventArray  array of events
+         *  @param aStrings     log client constants
+         *  @param aModel       model id
+         *  @param aObserver    observer
+         */
+        static CLogsMainReader* NewL( RFs& aFsSession, 
+                        MLogsEventArray& aEventArray, 
+                        TLogsEventStrings& aStrings, TLogsModel aModel,
+                        MLogsObserver* aObserver,
+                        CLogsEngine* aLogsEngineRef );
+        
+       /**
+        *   Destructor.
+        */
+        virtual ~CLogsMainReader();
+
+    private:
+
+       /**
+        *  Default constructor
+        */
+        CLogsMainReader();
+       
+        /**
+         *  Constructor
+         *
+         *  @param aFsSession   ref. to file server session
+         *  @param aEventArray  array of events
+         *  @param aStrings     log client constants
+         *  @param aModel       model id
+         *  @param aObserver    observer
+         */
+        CLogsMainReader( RFs& aFsSession, 
+                        MLogsEventArray& aEventArray, 
+                        TLogsEventStrings& aStrings, TLogsModel aModel,
+                        MLogsObserver* aObserver,
+                        CLogsEngine* aLogsEngineRef );
+                                    
+        /**
+         *  Second phase constructor
+         */
+        void ConstructL();
+
+        
+        /**
+         *  Creates and returns a filter.
+         *  Leaves filter object on cleanupstack.
+         *
+         *  @param  aFilterType     Filter type id.
+         *
+         *  @return  Pointer to created and configured filter.
+         */
+        CLogFilter* SetOneFilterLC( TUid aFilterType );
+
+        /**
+         *  Creates and returns a filter.
+         *  Leaves filter object on cleanupstack.
+         *
+         *  @param  aDirection     Filter direction
+         *
+         *  @return  Pointer to created and configured filter.
+         */
+        CLogFilter* SetOneFilterLC( TLogString& aDirection );
+
+        /**
+         *  Creates and returns a filter.
+         *  Leaves filter object to cleanupstack.
+         *
+         *  @param  aNumber     number filter
+         *  @param  aName       remoty party filter
+         *
+         *  @return  Pointer to created and configured filter.
+         */
+        CLogFilter* SetOneFilterLC( const TDesC* aNumber, const TDesC* aName );
+
+        /**
+         *  Set filter.
+         *
+         *  @param aFilter          Filter type.
+         *  @param aNumber          Telephone number as filter criterion,
+         *                              NULL is a default
+         *  @param aName            Person's name as filter criterion,
+         *                              NULL is a default
+         */
+        void SetFilterL( const TLogsFilter aFilter,
+            const TDesC* aNumber = NULL, const TDesC* aName = NULL );
+
+    private:  // from CLogsBaseReader 
+
+        TInt ViewCountL() const;
+        CLogEvent& Event() const;
+        TBool DoNextL();
+        void ConstructEventL( MLogsEvent& aDest, const CLogEvent& aSource );
+    
+    protected: // From CActive
+
+        void DoCancel();
+        
+
+    public: // from MLogsReader
+
+        void Stop();
+
+        void StartL();
+
+        void ConfigureL( const MLogsReaderConfig* aConfig ); 
+
+    private: // from MLogClientChangeObserver
+		/** (copied from LOGCLIENTCHANGEOBSERVER.H: 
+        Handle a global change within the logs database
+		
+		This method is called when a generic event occurs within the log database. 
+		Such events are	not specific to a view (see MLogViewChangeObserver for view 
+		specific events).
+		
+		@param aChangeType The uid corresponding to the type of event which 
+		occurred.
+		@param aChangeParam1 A context-specific change paramater which can be 
+		interpreted	based on the change type.
+		@param aChangeParam2 A context-specific change paramater which can be 
+		interpreted based on the change type.
+		@param aChangeParam3 A context-specific change paramater which can be 
+		interpreted	based on the change type.
+		
+		A list of change types and their associated parameters follows:
+		
+		KLogClientChangeEventLogCleared - no parameters. This event occurs when 
+		the log database is cleared.	 */
+        void HandleLogClientChangeEventL(   TUid aChangeType, 
+                                            TInt aChangeParam1, 
+                                            TInt aChangeParam2, 
+                                            TInt aChangeParam3);
+            
+    private: // data
+        
+        /// Own: View to filtered events.
+        CLogViewEvent* iLogViewEvent;        
+               
+        /// Own: Filterlist
+        CLogFilterList* iFilterList;
+    };
+
+#endif      // __Logs_Engine_CLogsMainReader_H__
+
+
+// End of File
+      
+
+        
+