customization/tsrc/tarmcustomization/inc/TestDmCallback.h
changeset 0 3ce708148e4d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/customization/tsrc/tarmcustomization/inc/TestDmCallback.h	Thu Dec 17 08:40:12 2009 +0200
@@ -0,0 +1,250 @@
+/*
+* Copyright (c) 2002-2004 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: Implementation of customization components
+*
+*/
+
+
+
+#ifndef __TESTDMCALLBACK_H
+#define __TESTDMCALLBACK_H
+
+//  INCLUDES
+#include <smldmadapter.h>
+#include <badesca.h>
+
+
+// FORWARD DECLARATIONS
+class CStifLogger;
+
+// CLASS DECLARATION
+
+/**
+*  ?one_line_short_description.
+*  ?other_description_lines
+*
+*  @lib ?library
+*  @since Series ?XX ?SeriesXX_version
+*/
+class CTestDmCallback : public CBase, public MSmlDmCallback
+    {
+    public:  // Constructors and destructor
+        
+        /**
+        * Two-phased constructor.
+        */
+        static CTestDmCallback* NewL( CStifLogger *aLog );
+        
+        /**
+        * Destructor.
+        */
+        virtual ~CTestDmCallback();
+
+    public: // New functions
+
+        /**
+        * ?member_description.
+        * @since Series ?XX ?SeriesXX_version
+        * @param ?arg1 ?description
+        * @return ?description
+        */
+        //?type ?member_function( ?type ?arg1 );
+        
+		TPtrC8 GetLuidL( const TDesC8& aURI );
+		TInt FindMappingURI( const TDesC8& aURI );
+		TInt GetNewResultsRefL( );
+		TInt GetNewStatusRefL( );
+		CBufBase& GetResultsObjectL( TInt aResultsRef );
+		TPtrC8 GetResultsTypeL( TInt aResultsRef );
+		MSmlDmAdapter::TError GetStatusL( TInt aStatusRef );
+		void FreeResultsRefsL( );
+		void FreeStatusRefsL( );
+
+    public: // Functions from base classes
+
+        	public:
+		/**
+	The function is used to return the data in case of FetchLeafObjectL(),
+	FetchLeafObjectSizeL() and ChildURIListL() functions. It should not be
+	called where the DM command has failed, i.e. the error code returned in
+	SetStatusL is something other than EOk.
+	@param aResultsRef	Reference to correct command
+	@param aObject		The data which should be returned
+	@param aType			MIME type of the object
+	@publishedPartner
+	@prototype
+	*/
+	void SetResultsL( TInt aResultsRef, CBufBase& aObject,
+							  const TDesC8& aType );
+	
+	/**
+	The function is used to return the data in case of FetchLeafObjectL() and
+	ChildURIListL() functions, where the size of the data being returned is
+	large enough for the Adapter to stream it. This function should not be
+	called when command was failed, i.e. the error code returned in SetStatusL
+	is something other than EOk.
+	@param aResultsRef	Reference to correct command
+	@param aStream		Large data which should be returned, DM engine
+							closes stream when it has read all the data
+	@param aType			MIME type of the object
+	@publishedPartner
+	@prototype
+	*/
+	void SetResultsL( TInt /*aResultsRef*/, RReadStream*& /*aStream*/,
+							  const TDesC8& /*aType*/ ) 
+	{
+		
+	}
+
+	/**
+	The function returns information about the Add,Update,Delete and Fetch
+	commands success to DM engine. The reference to correct command must be
+	used when calling the SetStatusL function, the reference is got from the
+	argument of the command functions. The SetStatusL function must be called
+	separately for every single command.
+	@param aStatusRef	Reference to correct command
+	@param aErrorCode	Information about the command success
+	@publishedPartner
+	@prototype
+	*/
+	void SetStatusL( TInt aStatusRef,
+							 MSmlDmAdapter::TError aErrorCode ) ;
+
+	/**
+	The function passes map information to DM Module. This function is called
+	for a new management object, both for node objects and for leaf objects.
+	In addition if ChildURIListL() function has returned new objects a mapping
+	information of the new objects must be passed. A mapping is treated as
+	inheritable. If the mapping is not set with this function, the mapping
+	LUID of the parent object is passed in following commands to the object.
+	@param aURI	URI of the object. 
+	@param aLUID	LUID of the object. LUID must contain the all information,
+					which is needed for retrieve the invidual object from the
+					database. Typically it is ID for the database table. In
+					more complicated structures it can be combination of IDs,
+					which represent path to the object.
+	@publishedPartner
+	@prototype
+	*/
+	void SetMappingL( const TDesC8& aURI, const TDesC8& aLUID );
+
+	/**
+	The function is used to make a fetch to other adapters. The most common
+	use is to make a fetch to the AP adapter, because when managing the access
+	points, the data comes as URI. For example, there are ToNAPId field in
+	some adapters, and data to it can be something like AP/IAPidx, and then
+	the link to AP adapter is needed.
+	Using FetchLinkL causes the DM Framework to make a Get request to the
+	appropriate DM adapter.  The receiving adapter MUST complete the Get
+	request synchronously.
+	@param aURI		URI of the object. 
+	@param aData		Reference to data, i.e. data is returned here
+	@param aStatus	The status of fetch command is returned here
+	@publishedPartner
+	@prototype
+	*/
+	void FetchLinkL( const TDesC8& /*aURI*/, CBufBase& /*aData*/,
+							 MSmlDmAdapter::TError& /*aStatus*/ ) 
+		{
+			
+		}
+
+	/**
+	The function returns the LUID which is mapped to aURI. If LUID is not
+	found, the function allocates a null length string, i.e. the function
+	allocates memory in every case.
+	@param aURI	URI of the object. 
+	@publishedPartner
+	@prototype
+	*/
+	HBufC8* GetLuidAllocL( const TDesC8& aURI ) ;
+        
+    protected:  // New functions
+        
+        /**
+        * ?member_description.
+        * @since Series ?XX ?SeriesXX_version
+        * @param ?arg1 ?description
+        * @return ?description
+        */
+        //?type ?member_function( ?type ?arg1 );
+
+    protected:  // Functions from base classes
+        
+        /**
+        * From ?base_class ?member_description
+        */
+        //?type ?member_function();
+
+    private:
+
+        /**
+        * C++ default constructor.
+        */
+        CTestDmCallback( CStifLogger *aLog );
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+
+        // Prohibit copy constructor if not deriving from CBase.
+        // CTestDmCallback( const CTestDmCallback& );
+        // Prohibit assigment operator if not deriving from CBase.
+        // CTestDmCallback& operator=( const CTestDmCallback& );
+
+    public:     // Data
+        // ?one_line_short_description_of_data
+        //?data_declaration;
+    
+    protected:  // Data
+        // ?one_line_short_description_of_data
+        //?data_declaration;
+
+    private:    // Data
+        // ?one_line_short_description_of_data
+        //?data_declaration;
+    /**
+    * Logger.
+    */
+    CStifLogger*    iLog;
+
+	/* Containers for URI/LUID mapping */
+
+	CDesC8ArrayFlat iMappingURI;
+	CDesC8ArrayFlat iMappingLuid;
+
+	/* Containers for results */
+	RPointerArray<CBufBase> iResultObjects;
+	CDesC8ArrayFlat iResultTypes;
+
+	/* Container for status */
+	RArray<TInt> iStatusArray;
+//sf-	RArray<MSmlDmAdapter::TError> iStatusArray;
+
+         
+        // Reserved pointer for future extension
+        //TAny* iReserved;
+
+    public:     // Friend classes
+        //?friend_class_declaration;
+    protected:  // Friend classes
+        //?friend_class_declaration;
+    private:    // Friend classes
+        //?friend_class_declaration;
+    };
+
+#endif      // __TESTDMCALLBACK_H
+            
+// End of File