diff -r 000000000000 -r d0791faffa3f mtpfws/mtpfw/dataproviders/devdp/inc/cmtpdevicedatastore.h --- /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 +#include +#include +#include + +#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 &aSupportedDevProps); + const CMTPTypeArray & GetSupportedDeviceProperties(); + void SetExtnDevicePropDp(MExtnDevicePropDp* aExtnDevicePropDp); + MExtnDevicePropDp* ExtnDevicePropDp(); + +private: // Form CActive + + void DoCancel(); + TInt RunError(TInt aError); + void RunL(); + void CheckDeviceIconProperties( RArray &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