vpnengine/dmadengine/inc/dmadengine.h
changeset 0 33413c0669b9
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vpnengine/dmadengine/inc/dmadengine.h	Thu Dec 17 09:14:51 2009 +0200
@@ -0,0 +1,136 @@
+/*
+* Copyright (c) 2002-2006 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:   Engine
+*
+*/
+
+
+
+#ifndef __DMADENGINE_H__
+#define __DMADENGINE_H__
+
+#include <smldmadapter.h>
+#include "dmadengineexportdef.h"
+#include "dmadcallback.h"
+#include "dmadstoreapi.h"
+#include "dmadddfapi.h"
+#include "dmadrtnodedataapi.h"
+#include "DmAdRtNode.h"
+
+//------------------------------------------------------------------------------------------------
+// CDmAdEngine
+//------------------------------------------------------------------------------------------------
+class CDmAdEngine : public CBase
+    {
+public:
+    DMAD_IMPORT_C static CDmAdEngine* NewL(MDmAdCallBack*           aDmAdCallBack,
+                                           MDmAdStoreApi*           aStoreApi,
+                                           MDmAdDdfApi*             aDdfApi,
+                                           MDmAdRtNodeDataApi*      aRtNodeDataApi);
+                                           
+    DMAD_IMPORT_C static CDmAdEngine* NewLC(MDmAdCallBack*          aDmAdCallBack,
+                                            MDmAdStoreApi*          aStoreApi,
+                                            MDmAdDdfApi*            aDdfApi,
+                                            MDmAdRtNodeDataApi*     aRtNodeDataApi);
+    DMAD_IMPORT_C ~CDmAdEngine();
+
+    DMAD_IMPORT_C void ChildURIListL(const TDesC8& aUri, const TDesC8& aLuid, const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList, TInt aResultsRef, TInt aStatusRef);
+    DMAD_IMPORT_C void AddNodeObjectL(const TDesC8& aUri, const TDesC8& aParentLuid, const TInt aStatusRef);
+    DMAD_IMPORT_C void UpdateLeafObjectL(const TDesC8& aUri, const TDesC8& aLuid, const TDesC8& aObject, const TDesC8& aType, TInt aStatusRef);
+    DMAD_IMPORT_C void FetchLeafObjectL(const TDesC8& aUri, const TDesC8& aLuid, const TDesC8& aType, TInt aResultsRef, TInt aStatusRef);
+    DMAD_IMPORT_C void DeleteObjectL(const TDesC8& aUri, const TDesC8& aLuid, TInt aStatusRef);
+    DMAD_IMPORT_C void CompleteOutstandingCmdsL();
+    
+    DMAD_IMPORT_C void ChildURIListL(const TDesC& aUri, const TDesC& aLuid, const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList, const TInt aResultsRef, const TInt aStatusRef);
+    DMAD_IMPORT_C void AddNodeObjectL(const TDesC& aUri, const TDesC& aParentLuid, const TInt aStatusRef);
+    DMAD_IMPORT_C void AddLeafObjectL(const TDesC& aUri, const TDesC& aParentLuid, const TDesC8& aObject, const TDesC& aType, const TInt aStatusRef);
+    DMAD_IMPORT_C void UpdateLeafObjectL(const TDesC& aUri, const TDesC& aLuid, const TDesC8& aObject, const TDesC& aType, const TInt aStatusRef);
+    DMAD_IMPORT_C void FetchLeafObjectL(const TDesC& aUri, const TDesC& aLuid, const TDesC& aType, const TInt aResultsRef, const TInt aStatusRef);
+    DMAD_IMPORT_C void DeleteObjectL(const TDesC& aUri, const TDesC& aLuid, const TInt aStatusRef);
+    DMAD_IMPORT_C void EndMessageL();
+
+    DMAD_IMPORT_C void UpdateLeafObjectL(const TDesC8& aUri,
+                                         const TDesC8& aLuid,
+                                         RWriteStream*& aStream,
+                                         const TDesC8& aType,
+                                         TInt aStatusRef);
+    DMAD_IMPORT_C void FetchLeafObjectSizeL(const TDesC8& aUri,
+                                            const TDesC8& aLuid,
+                                            const TDesC8& aType,
+                                            TInt aResultsRef,
+                                            TInt aStatusRef);
+    DMAD_IMPORT_C void ExecuteCommandL(const TDesC8& aUri,
+                                       const TDesC8& aLuid,
+                                       const TDesC8& aArgument,
+                                       const TDesC8& aType,
+                                       TInt aStatusRef);
+    DMAD_IMPORT_C void ExecuteCommandL(const TDesC8& aUri,
+                                       const TDesC8& aLuid,
+                                       RWriteStream*& aStream,
+                                       const TDesC8& aType,
+                                       TInt aStatusRef);
+    DMAD_IMPORT_C void CopyCommandL(const TDesC8& aTargetUri,
+                                    const TDesC8& aTargetLuid,
+                                    const TDesC8& aSourceUri,
+                                    const TDesC8& aSourceLuid,
+                                    const TDesC8& aType,
+                                    TInt aStatusRef);
+    DMAD_IMPORT_C void StartAtomicL();
+    DMAD_IMPORT_C void CommitAtomicL();
+    DMAD_IMPORT_C void RollbackAtomicL();
+    DMAD_IMPORT_C TBool StreamingSupport(TInt& aItemSize);
+    DMAD_IMPORT_C void StreamCommittedL();
+
+private:
+    void ConstructL();
+    CDmAdEngine(MDmAdCallBack*           aDmAdCallBack,
+                MDmAdStoreApi*           aStoreApi,
+                MDmAdDdfApi*             aDdfApi,
+                MDmAdRtNodeDataApi*      aRtNodeDataApi);
+    
+    void DoChildUriListL(const TDesC8& aUri, const TDesC8& aParentLuid, const CArrayFix<TSmlDmMappingInfo>& aPreviousUriSegmentList, TInt aResultsRef, TInt aStatusRef);
+    void DoAddNodeObjectL(const TDesC8& aUri, const TDesC8& aParentLuid, TInt aStatusRef);
+    void DoUpdateLeafObjectL(const TDesC8& aUri, const TDesC8& aLuid, const TDesC8& aObject, const TDesC8& aType, TInt aStatusRef);
+    void DoFetchLeafObjectL(const TDesC8& aUri, const TDesC8& aLuid, const TDesC8& aType, TInt aResultsRef, TInt aStatusRef);
+    TInt DoFetchLeafObjectL(const TDesC8& aUri, const TDesC8& aLuid, const TDesC8& aType, CBufBase*& aObject);
+    void DoDeleteObjectL(const TDesC8& aUri, const TDesC8& aLuid, TInt aStatusRef);
+    void DoCompleteOutstandingCmdsL();
+    
+
+    CDmAdRtNode* FindRtNodeInBuffer(const TDesC8& aUri);
+    CDmAdRtNode* FindRtNodeInBufferByLuid(const TDesC8& aLuid, const TDesC8& aUri);
+    CDmAdRtNode* RestoreRtNodeInBufferIfNotDoneL(const TDesC8& aUri, const TDesC8& aLuid);
+    CDmAdRtNode* FetchRtNodeInBufferL(const TDesC8& aUri, const TDesC8& aLuid);
+    void CompleteCommandsL(CDmAdRtNode& aRtNode, TInt aStatus);
+    void CompleteCommandsL(CArrayPtr<CDmAdRtNode>& aRtNodes, TInt aStatus);
+    void BuildTopLevelRtNodesListLC(CArrayPtr<CDmAdRtNode>*     aRtNodes,
+                                    CArrayPtr<CDmAdRtNode>*&    aTopLevelRtNodes);
+    void BuildChildRtNodesListLC(CArrayPtr<CDmAdRtNode>*     aRtNodes,
+                                 const TDesC8&                aSomeParentUri,
+                                 CArrayPtr<CDmAdRtNode>*&    aChildRtNodes);
+
+    void SaveRtNodesL(void);
+    TBool FindRtNodeInStoreL(const TDesC8& aLuid, const TDesC8& aUri);
+    HBufC8* ParentRtNodeLuidForRtNodeLC(const TDesC8& aUri);
+    
+private:
+    MDmAdCallBack*          iCallBack;
+    MDmAdStoreApi*          iStoreApi;
+    MDmAdDdfApi*            iDdfApi;
+    MDmAdRtNodeDataApi*     iRtNodeDataApi;
+
+    CArrayPtr<CDmAdRtNode>* iRtNodes;
+    };
+
+#endif