diff -r 000000000000 -r 3ce708148e4d customization/tsrc/tarmcustomization/inc/TestDmCallback.h --- /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 +#include + + +// 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 iResultObjects; + CDesC8ArrayFlat iResultTypes; + + /* Container for status */ + RArray iStatusArray; +//sf- RArray 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