mtpfws/mtpfw/dataproviders/devdp/inc/cmtpdevicedatastore.h
changeset 0 d0791faffa3f
child 11 4843bb5893b6
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mtpfws/mtpfw/dataproviders/devdp/inc/cmtpdevicedatastore.h	Tue Feb 02 01:11:40 2010 +0200
@@ -0,0 +1,172 @@
+// Copyright (c) 2006-2009 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:
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#ifndef CMTPDEVICEDATASTORE_H
+#define CMTPDEVICEDATASTORE_H
+
+#include <e32base.h>
+#include <etel3rdparty.h>
+#include <mtp/tmtptypeuint32.h>
+#include <mtp/cmtptypearray.h>
+
+#include "mtpdebug.h"
+#include "rmtpframework.h"
+#include "mmtpdevdpextn.h"
+#include"cmtpextndevdp.h"
+
+class CMTPTypeString;
+class MMTPEnumerationCallback;
+class RFs;
+class RReadStream;
+class RWriteStream;
+
+/** 
+Implements the MTP device data provider's device information data store.
+@internalComponent
+*/
+class CMTPDeviceDataStore : public CActive
+   {    
+
+public:
+
+    static CMTPDeviceDataStore* NewL();
+    ~CMTPDeviceDataStore();
+    
+    TBool RequestPending() const; 
+	void BatteryLevelL(TRequestStatus& aStatus, TUint& aBatteryLevel);
+    const TDesC& DeviceFriendlyName() const;
+    const TDesC& DeviceFriendlyNameDefault() const;
+    const TDesC& DeviceVersion() const;
+    const TDesC& Manufacturer() const;
+    const TDesC& Model() const;
+    const TDesC& MTPExtensions() const;
+    const TDesC& SerialNumber() const;
+    const TDesC& SynchronisationPartner() const;
+    const TDesC& SynchronisationPartnerDefault() const;
+    
+    void SetDeviceFriendlyNameL(const TDesC& aName);
+    void SetSynchronisationPartnerL(const TDesC& aName);
+    
+    void StartEnumerationL(TUint32 aStorageId, MMTPEnumerationCallback& aCallback);
+    const TDesC& SessionInitiatorVersionInfo() const;
+    const TDesC& SessionInitiatorVersionInfoDefault() const;
+    void SetSessionInitiatorVersionInfoL(const TDesC& aName);
+    TUint32 PerceivedDeviceTypeDefault() const;
+    TUint32 PerceivedDeviceType() const;
+    const TDesC& DateTimeL();
+    TInt SetDateTimeL(const TDesC& aDateTime );    
+    void DateTimeToStringL(TDes& aDateTime);
+    void StringToDateTime(TDes& aDateTime );
+    void LoadDeviceIconL();
+    const CMTPTypeArray& DeviceIcon();
+    TInt ValidateString(const TDesC& aDateTimeStr, TDes& aDateTime, TInt &aOffsetVal);
+
+	
+
+	/*utility methods */
+	void SetSupportedDevicePropertiesL(RArray<TUint> &aSupportedDevProps);
+	const CMTPTypeArray & GetSupportedDeviceProperties();	
+	void SetExtnDevicePropDp(MExtnDevicePropDp* aExtnDevicePropDp);
+	MExtnDevicePropDp* ExtnDevicePropDp();
+
+private: // Form CActive
+
+    void DoCancel();
+    TInt RunError(TInt aError);
+    void RunL();
+    void CheckDeviceIconProperties( RArray<TUint> &aSupportedDeviceProperties);
+    
+private:
+
+    CMTPDeviceDataStore();
+    void ConstructL();
+
+    TBool Enumerated() const;
+    void ExternalizeL(RWriteStream& aWriteStream) const;
+    void InternalizeL(RReadStream& aReadStream);
+    const TDesC& PropertyStoreName();
+    void AppendMTPExtensionSetsL(TBool& aCompleted);
+    void RestoreL();
+    void Schedule(TInt32 aState);
+    void SetRequestComplete(TRequestStatus& aRequest, TUint aErr);
+    void SetRequestPending(TRequestStatus& aRequest);
+    void SetState(TInt32 aState);
+    TInt32 State() const;
+    void StoreL();
+    void StoreFormattedSerialNumber(const TDesC& aSerialNo);
+    
+private: // Owned
+
+    enum TState    
+        {
+        EUndefined                      = 0x00000000,
+        EEnumeratingDevicePropertyStore = 0x00000001,
+        EEnumeratingDeviceVersion       = 0x00000002,
+        EEnumeratingPhoneId             = 0x00000003,
+        EEnumeratingBatteryLevel        = 0x00000004,
+        EEnumeratingVendorExtensions	= 0x00000005,
+        EEnumerated                     = 0x80000000,
+        EEnumeratedBatteryLevel         = 0x80000004,
+        };
+    
+private: // Owned
+
+    /**
+    FLOGGER debug trace member variable.
+    */
+    __FLOG_DECLARATION_MEMBER_MUTABLE;
+
+    CTelephony::TBatteryInfoV1 		iBatteryInfoV1;
+    CTelephony::TBatteryInfoV1Pckg  iBatteryInfoV1Pckg;  
+    CMTPTypeString*                 iDeviceFriendlyName;
+    RBuf                            iDeviceVersion;
+    RMTPFramework                   iSingletons;
+    RBuf                			iMTPExtensions; 
+    CTelephony::TPhoneIdV1          iPhoneIdV1;
+    CTelephony::TPhoneIdV1Pckg      iPhoneIdV1Pckg; 
+    TFileName                       iPropertyStoreName;  
+    RBuf                            iSerialNumber;
+    TInt32                          iState;
+    TUint32                         iStorageId;
+    CMTPTypeString*                 iSynchronisationPartner; 
+    CTelephony*                     iTelephony;
+    HBufC*							iDeviceFriendlyNameDefault;
+    HBufC*							iSyncPartnerNameDefault;
+    TInt							iCurrentDpIndex;
+    //HBufC*						iSessionInitiatorVersionInfoDefault;
+    CMTPTypeString*  				iSessionInitiatorVersionInfo;
+    TMTPTypeUint32  				iPerceivedDeviceType;
+    CMTPTypeString*  				iDateTime;
+    CMTPTypeArray*  				iDeviceIcon; 
+
+    // this array is to store all supported device properties.
+    CMTPTypeArray*                                   iSupportedDevProArray;
+    TUint8			iFormatOreder; 
+    
+private: // Not owned.
+
+    MMTPEnumerationCallback* 	    iCallback;
+    TRequestStatus*                 iPendingStatus;
+    TUint*                          iPendingBatteryLevel;
+    
+    MExtnDevicePropDp*              iExtnDevicePropDp;
+    };
+   
+#endif // CMTPDEVICEDATASTORE_H