diff -r 000000000000 -r 33413c0669b9 vpnengine/dmadengine/inc/dmadengine.h --- /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 +#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& 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& 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& 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& aRtNodes, TInt aStatus); + void BuildTopLevelRtNodesListLC(CArrayPtr* aRtNodes, + CArrayPtr*& aTopLevelRtNodes); + void BuildChildRtNodesListLC(CArrayPtr* aRtNodes, + const TDesC8& aSomeParentUri, + CArrayPtr*& 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* iRtNodes; + }; + +#endif