diff -r 137912d1a556 -r 0f9fc722d255 omadmadapters/connmoadapter/inc/BranchBase.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/omadmadapters/connmoadapter/inc/BranchBase.h Tue Jul 13 03:48:30 2010 +0530 @@ -0,0 +1,186 @@ +/* +* ============================================================================== +* 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 BRANCHBASE_H_ +#define BRANCHBASE_H_ + +#include +#include "smldmadapter.h" + +// ------------------------------------------------------------------------------------------------ +// Constants +// ------------------------------------------------------------------------------------------------ +#define KConnMoAdapterUid 0x2001FE5F + +/** + * Abstract base class for all ConnMO branches. + */ +class CBranchBase : public CBase + { +public: + + /** + * Builds DDF structure of DM settings it governs. + * + * Implementations should build their structure using given node + * as the root node. + * + * @param aDDF Root node + */ + virtual void DDFStructureL( MSmlDmDDFObject& aDDF ) = 0; + + /** + * Updates leaf node data. + * + * @param aURI Root node + * @param aLUID refrence to branch LUID + * @param aObject Leaf object data + * @param aType Type of the node + * @param aStatusRef Status reference + */ + virtual void UpdateLeafObjectL( const TDesC8& aURI, + const TDesC8& aLUID, + const TDesC8& aObject, + const TDesC8& aType, + TInt aStatusRef ) = 0; + /** + * Deletes object pointed by aURI. + * + * @param aURI Root node + * @param aLUID refrence to branch LUID + * @param aStatusRef Status reference + */ + virtual void DeleteObjectL( const TDesC8& aURI, + const TDesC8& aLUID, + TInt aStatusRef ) = 0; + + /** + * Gets node data for leaf nodes and child list for parent nodes. + * + * @param aURI Root node + * @param aLUID refrence to branch LUID + * @param aObject Leaf object data + * @param aType Type of the node + * @param aResultsRef Result reference + * @param aStatusRef Status reference + */ + virtual void FetchLeafObjectL( const TDesC8& aURI, + const TDesC8& aLUID, + const TDesC8& aType, + TInt aResultsRef, + TInt aStatusRef ) = 0; + + /** + * Gets the size of the data in leaf node. + */ + virtual void FetchLeafObjectSizeL( const TDesC8& aURI, + const TDesC8& aLUID, + const TDesC8& aType, + TInt aResultsRef, + TInt aStatusRef) = 0; + + /** + * Gets all childs of the given node. + */ + virtual void ChildURIListL( const TDesC8& aURI, + const TDesC8& aLUID, + const CArrayFix& aPreviousURISegmentList, + TInt aResultsRef, + TInt aStatusRef ) = 0; + + /** + * Adds node to DM tree. + */ + virtual void AddNodeObjectL( const TDesC8& aURI, + const TDesC8& aParentLUID, + TInt aStatusRef )=0; + + + virtual ~CBranchBase(); + +protected: + + CBranchBase(); + + CBranchBase( MSmlDmCallback* aDmCallback ); + + /** + * This function gives all Connection Methods from Connection Method Manager. + * + * @param aCmArray Result Array. + * @param aCmManager CM Manager. + */ + void GetAllConnectionMethodsL( RArray& aCmArray, + RCmManagerExt& aCmManager ); + + /** + * This function checks if given CM ID is found from given URI segmentlist. + * + * @param aPreviousURISegmentList Array where to search. + * @param aCmId CM ID to be searched. + * @param aURISeg If match is found, the URI segment matching the CM ID is copied here. + * @return TBool ETrue if CM ID is found from array. + */ + TBool CheckPreviousURIList( const CArrayFix& aPreviousURISegmentList, + const TUint32 aCmId, + TDes8& aURISeg ); + + /** + * This function gets list of dynamic nodes for the specified URI + * + * @param aURI which to get the list for + * @param aLuid refrence to branch LUID + * @param aPreviousURISegmentList previous URI segment list + * @param aResultRef result reference + * @param aStatusRef status reference + * @param aCmManagerExt CM Manager reference + * @param aCurrentURISegmentList current URI segment list + * @param aField branch name + * @param aNodeCount number of dynamic nodes + * @aCallback pointer to DM callback + */ + void GetAllDynamicNodesL( const TDesC8& aURI, + const TDesC8& aLUID, + const CArrayFix& aPreviousURISegmentList, + TInt aResultsRef, + TInt aStatusRef, + RCmManagerExt& aCmManagerExt, + CBufBase& aCurrentURISegmentList, + const TDesC8& aField, + const TInt aNodeCount, + MSmlDmCallback* aCallback ); + + /** + * This function gets connection method + * + * @param aCmManagerExt CM Manager + * @param aCm CM Manager + * @param aCmId CM ID + * @return TBool ETrue if connection method found + */ + TBool GetConnectionMethodLC( RCmManagerExt& aCmManagerExt, + RCmConnectionMethodExt& aCm, + TUint32 aCmId ); + +private: + MSmlDmCallback* iCallback; + + }; + +#endif /* BRANCHBASE_H_ */