idlehomescreen/hscontentcontrol/inc/hscontentcontrolfactory.h
changeset 1 5315654608de
parent 0 f72a12da539e
child 2 08c6ee43b396
equal deleted inserted replaced
0:f72a12da539e 1:5315654608de
    18 #ifndef HSCONTENTCONTROLFACTORY_H
    18 #ifndef HSCONTENTCONTROLFACTORY_H
    19 #define HSCONTENTCONTROLFACTORY_H
    19 #define HSCONTENTCONTROLFACTORY_H
    20 
    20 
    21 // System includes
    21 // System includes
    22 #include <e32base.h>
    22 #include <e32base.h>
       
    23 #include <hscontentcontrolui.h>
       
    24 
       
    25 // User includes
       
    26 #include "hscontentcontrolecomobserver.h"
    23 
    27 
    24 // Forward declarations
    28 // Forward declarations
    25 #include <hscontentcontrolui.h>
    29 class CHsContentControlEComListener;
       
    30 
    26 /**
    31 /**
    27  *  Content control UI base class
    32  *  Content control UI base class
    28  *
    33  *
    29  *
    34  *
    30  *  @code
    35  *  @code
    32  *  @endcode
    37  *  @endcode
    33  *
    38  *
    34  *  @lib hscontentcontrol.lib
    39  *  @lib hscontentcontrol.lib
    35  *  @since S60 v5.0
    40  *  @since S60 v5.0
    36  */
    41  */
    37 NONSHARABLE_CLASS( CHsContentControlFactory ) : public CBase
    42 NONSHARABLE_CLASS( CHsContentControlFactory ) : public CBase,
       
    43                                                 public MHsContentControlEComObserver
    38     {
    44     {
    39 public: // Constructor and destructor
    45 public: // Constructor and destructor
    40     /**
    46     /**
    41      * Two-phased constructor.
    47      * Two-phased constructor.
    42      */
    48      */
    45     /**
    51     /**
    46      * Destructor.
    52      * Destructor.
    47      */
    53      */
    48     IMPORT_C ~CHsContentControlFactory();
    54     IMPORT_C ~CHsContentControlFactory();
    49 
    55 
       
    56 public: // from MHsContentControlEComObserver
       
    57     
       
    58     /**
       
    59      * Notification of Ecom registry change.
       
    60      */
       
    61      void HandleEComChangeEvent();
       
    62     
    50 private: // Constructors
    63 private: // Constructors
    51     /**
    64     /**
    52      * Constructor
    65      * Constructor
    53      */
    66      */
    54     CHsContentControlFactory();
    67     CHsContentControlFactory();
    63      */
    76      */
    64     IMPORT_C MHsContentControlUi* GetHsContentController(
    77     IMPORT_C MHsContentControlUi* GetHsContentController(
    65         const TDesC8& aControllerType );
    78         const TDesC8& aControllerType );
    66 
    79 
    67 private:
    80 private:
    68     /**
    81     /** 
    69      * 
    82      * Finds and returns loaded ContentControlUi object from array.
    70      */
    83      */
    71     MHsContentControlUi* FindHsContentController(
    84     MHsContentControlUi* FindHsContentController(
    72         const TDesC8& aControllerType );
    85         const TDesC8& aControllerType );
    73     
    86     
       
    87     /** 
       
    88      * Checks if a plugin is removed/upgraded/downgraded.
       
    89      */
       
    90     void CheckPluginChangesL();
    74     
    91     
       
    92     /**
       
    93      * Finds plugin implementation info in the ECOM registry.
       
    94      * @param aUid The plugin UID which is to be checked.
       
    95      * @param aPluginArray The array of plugins which have been implemented.
       
    96      * @return ImplementationInfo of plugin. 
       
    97      */
       
    98     CImplementationInformation* FindPluginImplInfo( 
       
    99             const TUid& aUid, const RImplInfoPtrArray& aPlugInArray );
       
   100 
       
   101     /**
       
   102      * Checks if an upgrade or downgrade of the existing plugins happened.
       
   103      * @param aPluginImplInfo ImplInfo of plugin to be checked for upgrade/downgrade.
       
   104      * @return ETrue if upgrade/downgrade, EFalse otherwise. 
       
   105      */
       
   106     TBool PluginUpgradeDowngrade( const CImplementationInformation& aPluginImplInfo );
       
   107 
    75 private: // Data
   108 private: // Data
    76 
   109 
    77     /**
   110     /**
    78      *
   111      * An array of type CHsContentControlUi ( Owned ).
    79      */
   112      */
    80     RPointerArray< CHsContentControlUi > iHsContentControlUis;
   113     RPointerArray< CHsContentControlUi > iHsContentControlUis;
       
   114     
       
   115     /**
       
   116     * An array of type CImplementationInformation ( Owned ).
       
   117     */
       
   118     RImplInfoPtrArray               iImplArray;
    81 
   119 
       
   120     /**
       
   121      * An object of type CHsContentControlEComListener ( Owned ).
       
   122      */
       
   123     CHsContentControlEComListener*  iHsContentControlEComListener; 
    82     };
   124     };
    83 
   125 
    84 
   126 
    85 #endif // HSCONTENTCONTROLFACTORY_H
   127 #endif // HSCONTENTCONTROLFACTORY_H
    86 
   128