omadm/omadmextensions/adapters/connmoadapter/inc/BranchBase.h
changeset 1 4490afcb47b1
--- /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_ */