diff -r 000000000000 -r 3ce708148e4d omadm/omadmextensions/adapters/devdetail/inc/nsmldmdevdetailadapter.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/omadm/omadmextensions/adapters/devdetail/inc/nsmldmdevdetailadapter.h Thu Dec 17 08:40:12 2009 +0200 @@ -0,0 +1,164 @@ +/* +* Copyright (c) 2004 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: DM DevDetail Adapter +* +*/ + + + + +#ifndef __NSMLDMDEVDETAILADAPTER_H__ +#define __NSMLDMDEVDETAILADAPTER_H__ + +// INCLUDES + +#include +#include +#include "nsmldmconstants.h" + +// the DDF version must be changed if any changes in DDF structure +// ( built in DDFStructureL() function ) +_LIT8( KNSmlDMDevDetailDDFVersion, "1.0" ); + +_LIT8( KNSmlDMDevDetailTextPlain, "text/plain" ); +_LIT8( KNSmlDMDevDetailNodeName, "DevDetail" ); +_LIT8( KNSmlDMDevDetailDescription, "The interior object holds all DevDetail objects" ); + +_LIT8( KNSmlDMDevDetailDevTypNodeName, "DevTyp" ); +_LIT8( KNSmlDMDevDetailDevTypDescription, "The type of the device" ); +_LIT8( KNSmlDMDevDetailDevTypValue, "smartphone" ); + +_LIT8( KNSmlDMDevDetailOEMNodeName, "OEM" ); +_LIT8( KNSmlDMDevDetailOEMDescription, "Original Equipment Manufacturer" ); + +_LIT8( KNSmlDMDevDetailFwVNodeName, "FwV" ); +_LIT8( KNSmlDMDevDetailFwVDescription, "The firmware revision of the device" ); + +_LIT8( KNSmlDMDevDetailSwVNodeName, "SwV" ); +_LIT8( KNSmlDMDevDetailSwVDescription, "The software revision of the device" ); + +_LIT8( KNSmlDMDevDetailHwVNodeName, "HwV" ); +_LIT8( KNSmlDMDevDetailHwVDescription, "The hardware revision of the device" ); + +_LIT8( KNSmlDMDevDetailLrgObjNodeName, "LrgObj" ); +_LIT8( KNSmlDMDevDetailLrgObjDescription, "Large object handling supported if value is true" ); +_LIT8( KNSmlDMDevDetailLrgObjValue, "true" ); + +_LIT8( KNSmlDMDevDetailURINodeName, "URI" ); +_LIT8( KNSmlDMDevDetailURIDescription, "The tree limitations branch" ); + +_LIT8( KNSmlDMDevDetailMaxDepthNodeName, "MaxDepth" ); +_LIT8( KNSmlDMDevDetailMaxDepthDescription, "Maximum tree depth" ); +_LIT8( KNSmlDMDevDetailMaxDepthValue, "0" ); + +_LIT8( KNSmlDMDevDetailMaxTotLenNodeName, "MaxTotLen" ); +_LIT8( KNSmlDMDevDetailMaxTotLenDescription, "Maximum URI length" ); +_LIT8( KNSmlDMDevDetailMaxTotLenValue, "0" ); + +_LIT8( KNSmlDMDevDetailMaxSegLenNodeName, "MaxSegLen" ); +_LIT8( KNSmlDMDevDetailMaxSegLenDescription, "Maximum URI segment length" ); +_LIT8( KNSmlDMDevDetailMaxSegLenValue, "9" ); + +_LIT8( KNSmlDMDevDetailSeparator, "/" ); + +const TInt KNSmlMaxRequestBufferLength = 128; +const TInt KNSmlMaxSizeBufferLength = 4; + +_LIT( KNSmlDevDetailPanic, "DevDetail" ); + +// CLASS DECLARATION +class CNSmlDmDevDetailAdapter : public CSmlDmAdapter + { +public: // contructors and destructor + static CNSmlDmDevDetailAdapter* NewL(MSmlDmCallback* aDmCallback ); + static CNSmlDmDevDetailAdapter* NewLC(MSmlDmCallback* aDmCallback ); + + virtual ~CNSmlDmDevDetailAdapter(); + virtual TInt DevDetailValueCrcL(); + +private: // new functions + CNSmlDmDevDetailAdapter(TAny* aEcomArguments); + void AddObjectToBufferL( CBufBase& aCrcBuf, const TDesC8& aURI ); + CSmlDmAdapter::TError FetchLeafObjectL( const TDesC8& aURI, CBufBase& aObject ); + void SetLeafPropertiesL( MSmlDmDDFObject& aObject, + const TSmlDmAccessTypes& aAccessTypes, + const TDesC8& aDescription ) const; + +private: // functions from base classes + // from CSmlDmAdapter + void DDFVersionL( CBufBase& aVersion ); + void DDFStructureL( MSmlDmDDFObject& aDDF ); + void UpdateLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, + const TDesC8& aObject, const TDesC8& aType, + const TInt aStatusRef ); + void DeleteObjectL( const TDesC8& aURI, const TDesC8& aLUID, const TInt aStatusRef ); + void FetchLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, + const TDesC8& aType, const TInt aResultsRef, + const TInt aStatusRef ); + void ChildURIListL( const TDesC8& aURI, const TDesC8& aLUID, + const CArrayFix& aPreviousURISegmentList, + const TInt aResultsRef, const TInt aStatusRef ); + void AddNodeObjectL( const TDesC8& aURI, const TDesC8& aParentLUID, + const TInt aStatusRef ); + void UpdateLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, + RWriteStream*& aStream, const TDesC8& aType, + const TInt aStatusRef ); + void FetchLeafObjectSizeL( const TDesC8& aURI, const TDesC8& aLUID, + const TDesC8& aType, const TInt aResultsRef, + const TInt aStatusRef ); + void ExecuteCommandL( const TDesC8& aURI, const TDesC8& aLUID, const TDesC8& aArgument, + const TDesC8& aType, const TInt aStatusRef ); + void ExecuteCommandL( const TDesC8& aURI, const TDesC8& aLUID, RWriteStream*& aStream, + const TDesC8& aType, const TInt aStatusRef ); + void CopyCommandL( const TDesC8& aTargetURI, const TDesC8& aTargetLUID, + const TDesC8& aSourceURI, const TDesC8& aSourceLUID, + const TDesC8& aType, TInt aStatusRef ); + void StartAtomicL(); + void CommitAtomicL(); + void RollbackAtomicL(); + TBool StreamingSupport( TInt& aItemSize ); + void StreamCommittedL(); + void CompleteOutstandingCmdsL(); + +// FOTA +private: + + /** + * Enumeration specifies the data that can be fetched using + * GetDevDetailDataL(). + */ + enum TNSmlDevDetailData + { + ESwVersion, + EHwVersion + }; + + /** + * Fetches and/or forms DevDetail data specified by aElement. + * In WINSCW this data is read from file. In ARM builds the + * data is fetched from EInfo. + * @param aObject The buffer where fetched data is inserted. + * @param aElement Specifies the data that should be fetched. + */ + void GetDevDetailDataL( CBufBase& aObject, TNSmlDevDetailData aElement ) const; + +// FOTA end + +private: + + MSmlDmCallback* iDmCallback; + + }; + +#endif // __NSMLDMDEVDETAILADAPTER_H__