idlefw/plugins/sapidataplugin/inc/sapidataplugin.h
branchRCL_3
changeset 9 d0529222e3f0
parent 1 844b978f8d5e
child 19 502e5d91ad42
--- a/idlefw/plugins/sapidataplugin/inc/sapidataplugin.h	Tue Feb 02 00:23:10 2010 +0200
+++ b/idlefw/plugins/sapidataplugin/inc/sapidataplugin.h	Fri Feb 19 23:07:29 2010 +0200
@@ -11,7 +11,7 @@
 *
 * Contributors:
 *
-* Description:  Plug-in main class
+* Description:  SAPI data plug-in main class
 *
 */
 
@@ -19,16 +19,16 @@
 #ifndef SAPIDATAPLUGIN_H
 #define SAPIDATAPLUGIN_H
 
-#include <aicontentpublisher.h>
-#include <aipropertyextension.h>
+// System includes
+
+// User includes
+#include <hscontentpublisher.h>
 #include <aicontentmodel.h>
-#include <aieventhandlerextension.h>
 
+// Forward declarations
 class MAiContentObserver;
 class MAiContentItemIterator;
-class MAiPSPropertyObserver;
 class CSapiData;
-class CDesC16Array;
 class CGulIcon;
 
 /**
@@ -38,13 +38,11 @@
  *
  *  @since S60 v3.2
  */
-class CSapiDataPlugin : public CAiContentPublisher,
-                     	public MAiPropertyExtension,
-                     	public MAiEventHandlerExtension
-                    
-    {
+NONSHARABLE_CLASS( CSapiDataPlugin ) : public CHsContentPublisher                    
+    {   
+public:
+    // data types
     
-public :
 	 /**
 	 * Plugin's network state.
 	 */
@@ -62,11 +60,12 @@
 		{
 		ENone,
 		EResume,
-		ESuspend,
-		EInActive,
+		ESuspend
 		};
+	
 public:
-
+    // constructor and destructor
+    
     /**
     * Part of the two phased constuction
     *
@@ -84,6 +83,7 @@
     ~CSapiDataPlugin();
 
 private:
+    // constructors
     
     /**
     * Constructor
@@ -100,148 +100,67 @@
     * @return void
     */
     void ConstructL();
-
-    /**
-    * Resume the plug-in.
-    *
-    * @param aReason reason for state change, see TAiTransitionChange.
-    * @return void
-    */    
-    void DoResumeL(TAiTransitionReason aReason);
     
-public: // from base class CAiContentPublisher
+public: 
+    // from CHsContentPublisher
     
     /**
-    * From CAiContentPublisher
-    * The method is called by the framework to request the plug-in free all
-    * memory and CPU resources and close all its open files, e.g. the plug-in 
-    * should unload its engines due backup operation. The method transits the 
-    * plug-in to "Idle" state.
-    *
-    * @param aReason reason for state change, see TAiTransitionChange.
-    * @return void
-    */
-    void Stop( TAiTransitionReason aReason );
+     * @see CHsContentPublisher
+     */
+    void Start( TStartReason aReason );
 
     /**
-    * From CAiContentPublisher
-    * The method is called by the framework to instruct plug-in that it is
-    * allowed to consume CPU resources, e.g plug-in is able to run timers,
-    * perform asynchronous operations, etc. The method transits the plug-in
-    * to "Alive" state.
-    *
-    * @param aReason reason for state change, see TAiTransitionChange.
-    * @return void
-    */
-    void Resume( TAiTransitionReason aReason );
-
+     * @see CHsContentPublisher
+     */    
+    void Stop( TStopReason aReason );
+    
     /**
-    * From CAiContentPublisher
-    * The method is called by the framework to instruct plug-in that it is
-    * not allowed to consume CPU resources, e.g plug-in MUST stop each
-    * timers, cancel outstanding asynchronous operations, etc. The method
-    * transits the plug-in to "Suspendend" state.
-    *
-    * @param aReason reason for state change, see TAiTransitionChange.
-    * @return void
-    */
-    void Suspend( TAiTransitionReason aReason );
-
-    /**
-    * From CAiContentPublisher
-    * Adds the content observer / subscriber to plug-in. The plug-in MUST
-    * maintain a registry of subscribers and send notification to all them
-    * whenever the plug-in changes state or new content available.
-    *
-    * @param aObserver content observer to register.
-    * @return void
-    */
-    void SubscribeL( MAiContentObserver& aObserver );
+     * @see CHsContentPublisher
+     */    
+    void Resume( TResumeReason aReason );
     
     /**
-    * From CAiContentPublisher
-    * Configures the plug-in.
-    * Plug-ins take ownership of the settings array, so it must either
-    * store it in a member or free it. Framework has put the array in cleanup
-    * stack so the plugin shouldn't do that.
-    * If this leaves, the plug-in will be destroyed by AI FW.
-    * Plug-in must support LaunchByValue-event even if normal shortcuts don't
-    * work. The only allowed serious enough leave is KErrNotFound from CenRep.
-    *
-    * @param aSettings setting items defined in the UI definition.
-    * @return void
-    */
-    void ConfigureL( RAiSettingsItemArray& aSettings );
+     * @see CHsContentPublisher
+     */
+    void Suspend( TSuspendReason aReason );
+
+    /**
+     * @see CHsContentPublisher
+     */
+    void SetOnline();
+
+    /**
+     * @see CHsContentPublisher
+     */
+    void SetOffline();
     
     /**
-    * From CAiContentPublisher
-    * Returns interface extension. In Series 60 3.1 only event & property
-    * extensions are supported. See MAiEventExtension & MAiPropertyExtension
-    * interfaces.
-    *
-    * @param  aUid - UID of the extension interface to access.
-    * @return the extension interface. Actual type depends on the passed aUid 
-    *         argument.
-    */
-    TAny* Extension( TUid aUid );  
-
-// from base class MAiPropertyExtension
-
-    /**
-    * From MAiPropertyExtension.
-    * Read property of publisher plug-in.
-    *
-    * @param aProperty - identification of property.
-    * @return pointer to property value.
-    */
-    TAny* GetPropertyL( TInt aProperty );
+     * @see CHsContentPublisher
+     */
+    void SubscribeL( MAiContentObserver& aObserver );
 
     /**
-    * From MAiPropertyExtension.
-    * Write property value.
-    *
-    * @param aProperty - identification of property.
-    * @param aValue - contains pointer to property value.
-    */
-    void SetPropertyL( TInt aProperty, TAny* aValue );
-  
- // from base class MAiEventHandlerExtension
-   
-     /**
-     * From MAiEventHandlerExtension
-     * Invoked by the framework when plug-in must handle an event.
-     * @param aEvent - unique identifier of event from plug-in content model.
-     * @param aParam - parameters associated with event. Each UI Definition
-     *        declares events in the format: <event name>(<event params>),
-     *        where <event name> is mapped by the framework to unique
-     *        identifier supplied in aEvent, <event params> are provided to
-     *        plug-in as-is in the descriptor.
-     * @since S60 3.2
+     * @see CHsContentPublisher
      */
-     void HandleEvent(TInt aEvent, const TDesC& aParam);
-    
-     /**
-     * From MAiEventHandlerExtension
-     * Invoked by the framework when plug-in must handle an event.
-     *
-     * @param aEventName - name of the event from plug-in content model.
-     * @param aParam - parameters associated with event. Each UI Definition
-     *        declares events in the format: <event name>(<event params>),
-     *        where  <event name> mapping to unique identifier supplied by event 
-     *        is failed by the frame work then the  <event name> and  
-     *        <event params>  are provided to plug-in as-is in the descriptor.
+    void ConfigureL( RAiSettingsItemArray& aSettings );  
+
+    /**
+     * @see CHsContentPublisher
      */
-     void HandleEvent(const TDesC& aEventName, const TDesC& aParam);
+    TAny* GetProperty( TProperty aProperty );     
 
     /**
- 	* Invoked by the framework for querying if plugin has menu item
- 	*
- 	* @param aMenuItem  menu item name.
- 	* @return ETrue if plugin has specific menu item, EFalse otherwise 
-	*/
-    TBool HasMenuItem(const TDesC16& aMenuItem);
+     * @see CHsContentPublisher
+     */
+    void HandleEvent( const TDesC& aEventName, const TDesC& aParam );
+
+    /**
+     * @see CHsContentPublisher
+     */
+    TBool HasMenuItem( const TDesC16& aMenuItem );
      
-public : // new functions
+public: 
+    // new functions
 	
     /**
     * Publishes widget's texts and images
@@ -282,7 +201,7 @@
     * @param void 
     * @return boolean (ETrue/EFalse)
     */
-    TBool IsActive();
+    TBool IsActive() const;
     
     /**
 	* Publish a specific text of the widget  
@@ -332,69 +251,38 @@
      * CSapiData getter
      * @return Pointer to CSapiData
      */
-    inline CSapiData* Data() const
-        {
-        return iData;
-        }
+    CSapiData* Data() const;
 
 	/*
 	 * Plugin's network status getter
-	 * @return Pointer to Harvester status observer
 	 */
-	inline TPluginNetworkStatus NetworkStatus() const
-		{
-		return iNetworkStatus;
-		}
-	
-private: // data
-
-    // Iterator for plugin content
-    // Own
-    MAiContentItemIterator* iContent;
-
-    // Array of content observers
-    // Own
-    RPointerArray<MAiContentObserver> iObservers;
-    
-    // Information about the content publisher (this plug-in)
-    TAiPublisherInfo iInfo;
-	
-	// Number of data in the content model.
-	TInt iDataCount;
-	 
-	// Dynamic content model
-	// Own
-	TAiContentItem* iContentModel;
+	TPluginNetworkStatus NetworkStatus() const;
 	
-	// Reference array for Published text
-	// Own
-	RPointerArray<HBufC> iDataArray;
-	
-	// Service API Data Subscriber.
-	// Own
-	CSapiData* iData;
-    
-    // References array for published images 
-    // Own
-    RArray<CGulIcon*> iIconArray;
-    
-    // File Server
-    // Reference
-    RFs iRfs;
-    
-    // Plugin's network status
-    TPluginNetworkStatus iNetworkStatus;
-    
-    // Is Homescreen foreground.
-    TBool iHSForeGround;
-    
-    // Is KeyLockON.
-    TBool iKeyLockOn;
+private: 
+    // data
 
-	// Plugin state    
+    /** Iterator for plugin content, owned */    
+    MAiContentItemIterator* iContent;
+    /** Array of content observers, owned */
+    RPointerArray<MAiContentObserver> iObservers;       
+	/** Number of data in the content model */
+	TInt iDataCount;	
+	/** Dynamic content model, owned */	
+	TAiContentItem* iContentModel;	
+	/** Reference array for Published text, owned */
+	RPointerArray< HBufC > iDataArray;	
+	/** Service API Data Subscriber, owned */	
+	CSapiData* iData;    
+    /** References array for published images, owned */     
+    RArray< CGulIcon* > iIconArray;    
+    /** Handle to file server session, owned */    
+    RFs iRfs;    
+    /** Plugin's network status */
+    TPluginNetworkStatus iNetworkStatus;       
+	/** Plugin state */    
     TPluginStates iPluginState;
     };
 
 #endif // SAPIDATAPLUGIN_H
 
-
+// End of file