00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef MTPDATAPROVIDERPLUGINEXAMPLE_H
00031 #define MTPDATAPROVIDERPLUGINEXAMPLE_H
00032
00033 #include <mtp/cmtpdataproviderplugin.h>
00034
00035
00036 class MMTPExampleDpRequestProcessor;
00037 class CMTPObjectMetaData;
00038
00042 class CMTPExampleDataProvider :
00043 public CMTPDataProviderPlugin
00044 {
00045 public:
00046 static TAny* NewL(TAny* aParams);
00047 virtual ~CMTPExampleDataProvider();
00048
00049 private:
00050
00051 void Cancel();
00052 void ProcessEventL(const TMTPTypeEvent& aEvent, MMTPConnection& aConnection);
00053 void ProcessNotificationL(TMTPNotification aNotification, const TAny* aParams);
00054 void ProcessRequestPhaseL(TMTPTransactionPhase aPhase, const TMTPTypeRequest& aRequest, MMTPConnection& aConnection);
00055 void SessionClosedL(const TMTPNotificationParamsSessionChange& aSession);
00056 void SessionOpenedL(const TMTPNotificationParamsSessionChange& aSession);
00057 void StartObjectEnumerationL(TUint32 aStorageId);
00058 void StartStorageEnumerationL();
00059 void Supported(TMTPSupportCategory aCategory, RArray<TUint>& aArray) const;
00060 void SupportedL(TMTPSupportCategory aCategory, CDesCArray& aStrings) const;
00061
00062 TAny* GetExtendedInterface(TUid aInterfaceUid);
00063
00064 private:
00065 CMTPExampleDataProvider(TAny* aParams);
00066 void ConstructL();
00067
00068 TInt LocateRequestProcessorL(const TMTPTypeRequest& aRequest, MMTPConnection& aConnection);
00069 TInt LocateRequestProcessorL(const TMTPTypeEvent& aEvent, MMTPConnection& aConnection);
00070
00071 private:
00072
00073 RPointerArray<MMTPExampleDpRequestProcessor> iActiveProcessors;
00074 TInt iActiveProcessor;
00075 TBool iActiveProcessorRemoved;
00076 };
00077
00078 #endif // MTPDATAPROVIDERPLUGINEXAMPLE_H