--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/omadm/omadmextensions/adapters/connmoadapter/inc/BranchBase.h Thu Jan 07 12:39:15 2010 +0200
@@ -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 <cmmanagerext.h>
+#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<TSmlDmMappingInfo>& 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<TUint32>& 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<TSmlDmMappingInfo>& 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<TSmlDmMappingInfo>& 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_ */