diff -r 88e14c3d4c4f -r 137912d1a556 deviceupdatesui/omadmadapters/connmoadapter/inc/ProxyBranch.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/deviceupdatesui/omadmadapters/connmoadapter/inc/ProxyBranch.h Tue Jul 13 03:44:34 2010 +0530 @@ -0,0 +1,197 @@ +/* +* ============================================================================== +* Copyright (c) 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: +* +* ============================================================================== +*/ + +#ifndef PROXYBRANCH_H_ +#define PROXYBRANCH_H_ + + +// ------------------------------------------------------------------------------------------------ +// Includes +// ------------------------------------------------------------------------------------------------ +#include +#include "BranchBase.h" +#include "cmmanagerext.h" +#include "AddBuffer.h" + +/** + * Class for handling Proxy settings in ConnMo DM tree + */ +class CProxyBranch : public CBranchBase + { +public: + + static CProxyBranch* NewL(MSmlDmCallback* aDmCallback, + CAddBuffer* aBuffer, + RCmManagerExt* aCmManagerExt ); + + // Adapter branch interface from CProxyBranch + void DDFStructureL( MSmlDmDDFObject& aDDF ); + + void UpdateLeafObjectL( const TDesC8& aURI, + const TDesC8& aLUID, + const TDesC8& aObject, + const TDesC8& aType, + TInt aStatusRef ); + + void DeleteObjectL( const TDesC8& aURI, + const TDesC8& aLUID, + TInt aStatusRef ); + + void FetchLeafObjectL( const TDesC8& aURI, + const TDesC8& aLUID, + const TDesC8& aType, + TInt aResultsRef, + TInt aStatusRef ); + + + void FetchLeafObjectSizeL( const TDesC8& aURI, + const TDesC8& aLUID, + const TDesC8& aType, + TInt aResultsRef, + TInt aStatusRef); + + void ChildURIListL( const TDesC8& aURI, + const TDesC8& aLUID, + const CArrayFix& aPreviousURISegmentList, + TInt aResultsRef, + TInt aStatusRef ); + + void AddNodeObjectL( const TDesC8& aURI, + const TDesC8& aParentLUID, + TInt aStatusRef ); + + /** + * The function processes all proxy nodes from add buffer. + * @param aCmManagerExt Reference to CmManager session. + */ + void ProcessBufferL(); + + virtual ~CProxyBranch(); + +private: + + //----------------------------------------------------------------------------- + // Private functions + //----------------------------------------------------------------------------- + CProxyBranch(MSmlDmCallback* aDmCallback, + CAddBuffer* aBuffer, + RCmManagerExt* aCmManagerExt ); + + /** + * The function returns URI list of dynamic Proxy nodes. The list is returned by + * calling the SetResultsL function of MSmlCallback callback interface. + * @param aURI URI of the parent object. + * @param aPreviousURISegmentList URI list with mapping LUID information. + * @param aResultsRef Reference to correct results. + * @param aStatusRef Reference to correct command. + * @param aCmManagerExt Reference to CmManager session. + */ + void GetAllDynamicProxyNodesL( const TDesC8& aURI, + const CArrayFix& aPreviousURISegmentList, + TInt aResultsRef, + TInt aStatusRef, + CBufBase& aCurrentURISegmentList ); + + /** + * The function returns URI list of requested dynamic Proxy node. + * @param aLUID LUID of the parent object. + * @param aResultsRef Reference to correct results. + * @param aStatusRef Reference to correct command. + * @param aCmManagerExt Reference to CmManager session. + */ + void GetURIListForProxyNodeL( const TDesC8& aLUID, + TInt aResultsRef, + TInt aStatusRef ); + + /** + * The function adjust DM operation return values for hardcoded fields. + * @param aURI URI of the object. + * @return CSmlDmAdapter::TError Status value for DM operation. + */ + CSmlDmAdapter::TError CheckForUnmodifiableField( const TDesC8& aUri ); + + /** + * The function returns CMManager's attribute enum that corresponds to uri. + * @param aURI URI of the object. + * @return TUint32 Attribute enum for CM. + */ + TUint32 MapUriToCmAttribute( const TDesC8& aUri ); + + /** + * The function searches for connection method that is referenced from proxy buffered + * in the addbuffer. + * @param aCmManagerExt Reference to CmManager session. + * @return TUint32 CM ID. + */ + TInt32 FindConnectionMethodL(); + + /** + * The function checs that the addbuffer contains all necessary fields + * to create new proxy entry. + * @return TBool True if all mandatory fields found. + */ + TBool AllMandatoryProxyFieldsFound(); + + /** + * The function writes information from the addbuffer to connection method. + * @param aURI URI of the object. + * @param aLUID Local UID of the leaf. + * @param aObject objecto to be written in CM. + * @param aStatusRef Reference to correct command. + * @param aCm Reference to Connection Method. + */ + void SetLeafDataL( const TDesC8& aURI, + const TDesC8& aLUID, + const TDesC8& aObject, + TInt aStatusRef, + RCmConnectionMethodExt& aCm); + + /** + * The function informs framework about new nodes. + * @param aNode Node to be saved. + * @param aCm Reference to Connection Method. + */ + void SetNodeDataL( CConnMoNodeElement* aNode, RCmConnectionMethodExt& aCm ); + + /** + * Fethces leaf object data from connection settings + * @param aURI Target node + * @param aLuid Local UID for target node + * @param buffer for returning object data + * @return CSmlDmAdapter::TError Return value informs completion status of the operation + */ + CSmlDmAdapter::TError FetchLeafObjectL( const TDesC8& aURI, + const TDesC8& aLUID, + CBufBase& aLeafObject ); + + TPtrC8 GetDynamicProxyNodeUri( const TDesC8& aURI ); + + TBool IsProxyUriFormatMatchPredefined(const TDesC8 & aURI); + + TInt GetCmIdFromURIL(const TDesC8& aURI); + + //----------------------------------------------------------------------------- + // Private member variables + //----------------------------------------------------------------------------- + MSmlDmCallback* iCallback; + CAddBuffer* iBuffer; + RCmManagerExt* iCmManager; + }; + +#endif /* PROXYBRANCH_H_ */