mtpfws/mtpfw/inc/cmtpdataprovidercontroller.h
changeset 20 6e82ae192c3a
parent 17 aabe5387f5ce
child 47 63cf70d3ecd8
equal deleted inserted replaced
18:1b39655331a3 20:6e82ae192c3a
    62         EEnumeratingDataProviderStorages    = 3,
    62         EEnumeratingDataProviderStorages    = 3,
    63         EEnumeratingFrameworkObjects        = 4,
    63         EEnumeratingFrameworkObjects        = 4,
    64         EEnumeratingDataProviderObjects     = 5,
    64         EEnumeratingDataProviderObjects     = 5,
    65         EEnumeratingPhaseOneDone            = 6,
    65         EEnumeratingPhaseOneDone            = 6,
    66         EEnumeratingSubDirFiles				= 7, //Only File DP care the status.
    66         EEnumeratingSubDirFiles				= 7, //Only File DP care the status.
    67         EEnumeratedFulllyCompleted			= 8,
    67         EEnumeratingCleanDBSnapshot         = 8,
       
    68         EEnumeratedFulllyCompleted			= 9,
    68         };
    69         };
    69         
    70         
    70 public:
    71 public:
    71 
    72 
    72     static CMTPDataProviderController* NewL();
    73     static CMTPDataProviderController* NewL();
    93     IMPORT_C void WaitForEnumerationComplete();
    94     IMPORT_C void WaitForEnumerationComplete();
    94     TBool FreeEnumerationWaiter();
    95     TBool FreeEnumerationWaiter();
    95     
    96     
    96     IMPORT_C void SetNeedEnumeratingPhase2(TBool aNeed);
    97     IMPORT_C void SetNeedEnumeratingPhase2(TBool aNeed);
    97     IMPORT_C TBool NeedEnumeratingPhase2() const;
    98     IMPORT_C TBool NeedEnumeratingPhase2() const;
       
    99     
       
   100     IMPORT_C void RegisterPendingRequestDP(TUint aDpUid, TUint aTimeOut = 0);
       
   101     IMPORT_C void ExecutePendingRequestL();
       
   102     IMPORT_C TUint StorageEnumerateState(TUint aStorageId);
       
   103     
       
   104 
    98 private: // From CActive
   105 private: // From CActive
    99 
   106 
   100     void DoCancel();
   107     void DoCancel();
   101     void RunL();
   108     void RunL();
   102     TInt RunError(TInt aError);
   109     TInt RunError(TInt aError);
   103 
   110 
   104 private:
   111 private:
   105 
   112 
   106     CMTPDataProviderController();
   113     CMTPDataProviderController();
   107     void ConstructL();
   114     void ConstructL();
       
   115     void EstablishDBSnapshotL(TUint32 aStorage);
   108     
   116     
   109     CMTPDataProviderConfig* CreateConfigLC(const TDesC& aResourceFilename);
   117     CMTPDataProviderConfig* CreateConfigLC(const TDesC& aResourceFilename);
   110     void EnumerateDataProviderObjectsL(TUint aId);
   118     void EnumerateDataProviderObjectsL(TUint aId);
   111 	TBool IsObjectsEnumerationNeededL(CMTPDataProvider& dp);
   119 	TBool IsObjectsEnumerationNeededL(CMTPDataProvider& dp);
   112     void  LoadInstalledDataProvidersL(const CImplementationInformation* aImplementations);
   120     void  LoadInstalledDataProvidersL(const CImplementationInformation* aImplementations);
   120     static void ImplementationsCleanup(TAny* aData);
   128     static void ImplementationsCleanup(TAny* aData);
   121     static TInt ImplementationsLinearOrderUid(const TUid* aUid, const CImplementationInformation& aObject);
   129     static TInt ImplementationsLinearOrderUid(const TUid* aUid, const CImplementationInformation& aObject);
   122     static TInt ImplementationsLinearOrderUid(const CImplementationInformation& aL, const CImplementationInformation& aR);
   130     static TInt ImplementationsLinearOrderUid(const CImplementationInformation& aL, const CImplementationInformation& aR);
   123     
   131     
   124 private: // Owned
   132 private: // Owned
       
   133     
       
   134     friend class CMTPObjectStore;
       
   135     class CMTPPendingReqestTimer : public CTimer
       
   136         {
       
   137     public:
       
   138 
       
   139         static CMTPPendingReqestTimer* NewL(CMTPDataProviderController* aDPController); 
       
   140         virtual ~CMTPPendingReqestTimer();
       
   141           
       
   142         void Start(TUint aTimeOut);
       
   143         
       
   144     private: // From CTimer
       
   145 
       
   146         void RunL();
       
   147         
       
   148     private:
       
   149 
       
   150         CMTPPendingReqestTimer(CMTPDataProviderController* aDPController);
       
   151         void ConstructL();
       
   152         
       
   153     private:
       
   154         __FLOG_DECLARATION_MEMBER_MUTABLE;
       
   155         
       
   156         CMTPDataProviderController* iDPController;
       
   157         };
       
   158     
   125     /**
   159     /**
   126     FLOGGER debug trace member variable.
   160     FLOGGER debug trace member variable.
   127     */
   161     */
   128     __FLOG_DECLARATION_MEMBER_MUTABLE;
   162     __FLOG_DECLARATION_MEMBER_MUTABLE;
   129 
   163 
   217     /*
   251     /*
   218      The number of folders and files that will be enumerated.
   252      The number of folders and files that will be enumerated.
   219      */
   253      */
   220     TBool		iNeedEnumeratingPhase2;
   254     TBool		iNeedEnumeratingPhase2;
   221     TUint32 	iNeedEnumeratingPhase2StorageId;
   255     TUint32 	iNeedEnumeratingPhase2StorageId;
       
   256     
       
   257     TUint       iPendingRequestDpUid;
       
   258     
       
   259     CMTPPendingReqestTimer *iPendingRequestTimer;
   222 
   260 
   223     };
   261     };
   224 
   262 
   225 #endif
   263 #endif