--- a/callcontinuity/nsmldmvccadapter/inc/nsmldmvccadapter.h Thu Aug 19 09:45:22 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,530 +0,0 @@
-/*
-* Copyright (c) 2007 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: DM Adapter class definition
-*
-*/
-
-
-
-#ifndef C_NSMLDMVCCADAPTER_H
-#define C_NSMLDMVCCADAPTER_H
-
-
-#include <smldmadapter.h>
-#include <msvapi.h>
-
-#include "vccunittesting.h"
-
-class CVccSPSettings;
-
-/**
- * The main class of the OMA PoC DM adapter.
- * Handles requests of fetching and updating settings sets and settings items.
- *
- * @lib nsmldmvccadapter.dll
- * @since S60 ?S60_version
- */
-class CNSmlDmVCCAdapter : public CSmlDmAdapter
- {
-public:
-
- /**
- * Two-phased constructor.
- *
- * @since S60 3.2
- * @param aDmCallback The pointer to callback to return results and
- * status to codes for completed commands to the
- * DM framework. The interface also has
- * functionality for mapping LUIDs and fetching
- * from other parts of the DM Tree.
- * @return A pointer to the newly created object.
- */
- static CNSmlDmVCCAdapter* NewL( MSmlDmCallback* aDmCallback );
-
- /**
- * Two-phased constructor.
- *
- * @since S60 3.2
- * @param aDmCallback The pointer to callback to return results and
- * status to codes for completed commands to the
- * DM framework. The interface also has
- * functionality for mapping LUIDs and fetching
- * from other parts of the DM Tree.
- * @return A pointer to the newly created object.
- */
- static CNSmlDmVCCAdapter* NewLC( MSmlDmCallback* aDmCallback );
-
- /**
- * Destructor.
- */
- virtual ~CNSmlDmVCCAdapter();
-
-//from base class MSmlDmAdapter
-
- /**
- * From MSmlDmAdapter.
- * Returns current version of the DDF.
- * This function is always called after DDFStructureL.
- *
- * @since S60 3.2
- * @param aVersion DDF version of the adapter.
- */
- void DDFVersionL( CBufBase& aVersion );
-
- /**
- * From MSmlDmAdapter.
- * Fills the DDF structure of the adapter. The adapter starts to
- * fill the data structure by calling AddChildObjectL to the root
- * object and so describes the DDF of the adapter.
- *
- * @since S60 3.2
- * @param aDDFObject Reference to the root object.
- */
- void DDFStructureL( MSmlDmDDFObject& aDDF );
-
- /**
- * From MSmlDmAdapter.
- * Creates new leaf objects, or replaces data in existing
- * leaf objects. The information about the success of the command
- * should be returned by calling SetStatusL function of MSmlDmCallback
- * callback interface. This makes it possible to buffer the commands.
- * However, all the status codes for buffered commands must be returned
- * at the latest when the adapter's CompleteOutstandingCmdsL() is
- * called.
- *
- * @since S60 3.2
- * @param aURI URI of the object
- * @param aLUID LUID of the object (if the adapter has earlier
- * returned a LUID to the DM Module). For new
- * objects, this is the LUID inherited through the
- * parent node.
- * @param aObject Data of the object.
- * @param aType MIME type of the object
- * @param aStatusRef Reference to correct command, i.e. this reference
- * must be used when calling the SetStatusL of this
- * command
- */
- void UpdateLeafObjectL( const TDesC8& aURI,
- const TDesC8& aLUID,
- const TDesC8& aObject,
- const TDesC8& aType,
- TInt aStatusRef );
-
- /**
- * From MSmlDmAdapter.
- * The function creates new leaf objects, or replaces data in existing
- * leaf objects, in the case where data is large enough to be streamed.
- * SetStatusL function of MSmlDmCallback callback interface should be
- * called to inform about the success of the command. This makes it
- * possible to buffer the commands. All the status codes for buffered
- * commands must be returned at the latest
- * when the CompleteOutstandingCmdsL() of adapter is called.
- *
- * @since S60 3.2
- * @param aURI URI of the object
- * @param aLUID LUID of the object (if the adapter has earlier
- * returned a LUID to the DM Module).
- * For new objects, this is the LUID inherited
- * through the parent node.
- * @param aStream Data of the object. Adapter should create write
- * stream and return, when data is written to stream
- * by DM agent, StreamCommittedL() is called by DM
- * engine
- * @param aType MIME type of the object
- * @param aStatusRef Reference to correct command, i.e. this reference
- * must be used when calling the SetStatusL of this
- * command.
- */
- void UpdateLeafObjectL( const TDesC8& aURI,
- const TDesC8& aLUID,
- RWriteStream*& aStream,
- const TDesC8& aType,
- TInt aStatusRef );
-
- /**
- * From MSmlDmAdapter.
- * Deletes an object and its child objects. The information about the
- * success of the command should be returned by calling SetStatusL
- * function of MSmlDmCallback callback interface.
- * This makes it possible to buffer the commands. All the
- * status codes for buffered commands must be returned at the latest
- * when the CompleteOutstandingCmdsL() of adapter is called.
- *
- * @since S60 3.2
- * @param aURI URI of the object
- * @param aLUID LUID of the object (if the adapter have earlier
- * returned LUID to the DM Module).
- * @param aStatusRef Reference to correct command, i.e. this reference
- * must be used when calling the SetStatusL of this
- * command.
- */
- void DeleteObjectL( const TDesC8& aURI,
- const TDesC8& aLUID,
- TInt aStatusRef );
-
- /**
- * From MSmlDmAdapter.
- * Fetches the data of a leaf object. The SetStatusL should be used as
- * described in UpdateLeafObjectL(). The data is returned by using the
- * SetResultsL function of MSmlCallback callback interface, and may be
- * streamed.
- *
- * @since S60 3.2
- * @param aURI URI of the object
- * @param aLUID LUID of the object (if the adapter have
- * earlier returned LUID to the DM Module).
- * @param aType MIME type of the object
- * @param aResultsRef Reference to correct results, i.e. this
- * reference must be used when returning the
- * result by calling the SetResultsL.
- * @param aStatusRef Reference to correct command, i.e. this
- * reference must be used when calling the
- * SetStatusL of this command.
- */
- void FetchLeafObjectL( const TDesC8& aURI,
- const TDesC8& aLUID,
- const TDesC8& aType,
- TInt aResultsRef,
- TInt aStatusRef );
-
- /**
- * From MSmlDmAdapter.
- * The function fetches the size of the data of a leaf object. The size
- * is in bytes, and must reflect the number of bytes that will be
- * transferred when the framework calls FetchLeafObjectL. The
- * SetStatusL should be used as described in FetchLeafObjectL(). The
- * size value is returned by using the SetResultsL function of
- * MSmlCallback callback interface, and must be a decimal integer
- * expressed as a string, eg. "1234". Results from this call MUST NOT
- * be streamed.
- *
- * @since S60 3.2
- * @param aURI URI of the object
- * @param aLUID LUID of the object (if the adapter have
- * earlier returned LUID to the DM Module).
- * @param aType MIME type of the object
- * @param aResultsRef Reference to correct results, i.e. this
- * reference must be used when returning the
- * result by calling the SetResultsL.
- * @param aStatusRef Reference to correct command, i.e. this
- * reference must be used when calling the
- * SetStatusL of this command.
- */
- void FetchLeafObjectSizeL( const TDesC8& aURI,
- const TDesC8& aLUID,
- const TDesC8& aType,
- TInt aResultsRef,
- TInt aStatusRef );
- /**
- * From MSmlDmAdapter.
- * Fetches URI list. The adapter returns the list of URI segments under
- * the given URI be separated by slash ("/"). The URI segment names for
- * new objects must be given by the adapter. The list is returned by
- * calling the SetResultsL function of MSmlCallback callback interface.
- * Results from this call MUST NOT be streamed.
- *
- * @since S60 3.2
- * @param aParentURI URI of the parent object
- * @param aParentLUID LUID of the parent object (if the
- * adapter have earlier returned LUID
- * to the DM Module).
- * @param aPreviousURISegmentList URI list with mapping LUID
- * information, which is known by DM
- * engine. An adapter can use this
- * information when verifying if old
- * objects still exists. An adapter also
- * knows what objects are new to DM
- * engine and can provide LUID mapping
- * for them. aPreviousURISegmentList
- * parameter (see above) helps to
- * recognise new objects.
- * @param aResultsRef Reference to correct results, i.e.
- * this reference must be used when
- * returning the result by calling the
- * SetResultsL.
- * @param aStatusRef Reference to correct command, i.e.
- * this reference must be used when
- * calling the SetStatusL of this
- * command.
- */
- void ChildURIListL( const TDesC8& aURI,
- const TDesC8& aLUID,
- const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList,
- TInt aResultsRef,
- TInt aStatusRef );
-
- /**
- * From MSmlDmAdapter.
- * The function adds node object. In some cases an implementation of
- * the function may be empty function, if the node object does not need
- * concrete database update. Still this function may be helpful to an
- * adapter, i.e. in passing mapping LUID of the node to DM Module. The
- * SetStatusL should be used as described in UpdateLeafObjectL().
- *
- * @since S60 3.2
- * @param aURI URI of the object
- * @param aParentLUID LUID of the parent object (if the adapter have
- * earlier returned LUID to the DM Module).
- * @param aStatusRef Reference to correct command, i.e. this
- * reference must be used when calling the
- * SetStatusL of this command.
- */
- void AddNodeObjectL( const TDesC8& aURI,
- const TDesC8& aParentLUID,
- TInt aStatusRef );
-
- /**
- * From MSmlDmAdapter.
- * The function implements execute command. The information about the
- * success of the command should be returned by calling SetStatusL
- * function of MSmlDmCallback callback interface. This makes it
- * possible to buffer the commands. However, all the status codes for
- * buffered commands must be returned at the latest when the
- * CompleteOutstandingCmdsL() of adapter is called.
- *
- * @since S60 3.2
- * @param aURI URI of the command
- * @param aLUID LUID of the object (if the adapter have
- * earlier returned LUID to the DM Module).
- * @param aArgument Argument for the command
- * @param aType MIME type of the object
- * @param aStatusRef Reference to correct command, i.e. this
- * reference must be used when calling the
- * SetStatusL of this command.
- */
- void ExecuteCommandL( const TDesC8& aURI,
- const TDesC8& aLUID,
- const TDesC8& aArgument,
- const TDesC8& aType,
- TInt aStatusRef );
-
- /**
- * From MSmlDmAdapter.
- * The function implements execute command. The information about the
- * success of the command should be returned by calling SetStatusL
- * function of MSmlDmCallback callback interface. This makes it
- * possible to buffer the commands.
- * However, all the status codes for buffered commands must be returned
- * at the latest when the CompleteOutstandingCmdsL() of adapter is
- * called.
- *
- * @since S60 3.2
- * @param aURI URI of the command
- * @param aLUID LUID of the object (if the adapter have
- * earlier returned LUID to the DM Module).
- * @param aStream Argument for the command. Adapter should
- * create write stream and return, when data is
- * written to stream by DM agent,StreamCommittedL
- * is called by DM engine
- * @param aType MIME type of the object
- * @param aStatusRef Reference to correct command, i.e. this
- * reference must be used when calling the
- * SetStatusL of this command.
- */
- void ExecuteCommandL( const TDesC8& aURI,
- const TDesC8& aLUID,
- RWriteStream*& aStream,
- const TDesC8& aType,
- TInt aStatusRef );
-
- /**
- * From MSmlDmAdapter.
- * The function implements copy command. The information about the
- * success of the command should be returned by calling SetStatusL
- * function of MSmlDmCallback callback interface. This makes it
- * possible to buffer the commands.
- * However, all the status codes for buffered commands must be returned
- * at the latest when the CompleteOutstandingCmdsL() of adapter is
- * called.
- *
- * @since S60 3.2
- * @param aTargetURI Target URI for the command
- * @param aSourceLUID LUID of the target object (if one exists, and
- * if the adapter has earlier returned a LUID to
- * the DM Module).
- * @param aSourceURI Source URI for the command
- * @param aSourceLUID LUID of the source object (if the adapter has
- * earlier returned a LUID to the DM Module).
- * @param aType MIME type of the objects
- * @param aStatusRef Reference to correct command, i.e. this
- * reference must be used when calling the
- * SetStatusL of this command.
- */
- void CopyCommandL( const TDesC8& aTargetURI,
- const TDesC8& aTargetLUID,
- const TDesC8& aSourceURI,
- const TDesC8& aSourceLUID,
- const TDesC8& aType,
- TInt aStatusRef );
-
- /**
- * From MSmlDmAdapter.
- * The function indicates start of Atomic command.
- *
- * @since S60 3.2
- */
- void StartAtomicL();
-
- /**
- * From MSmlDmAdapter.
- * The function indicates successful end of Atomic command. The adapter
- * should commit all changes issued between StartAtomicL and
- * CommitAtomicL
- *
- * @since S60 3.2
- */
- void CommitAtomicL();
-
- /**
- * From MSmlDmAdapter.
- * The function indicates unsuccessful end of Atomic command. The
- * adapter should rollback all changes issued between StartAtomicL()
- * and RollbackAtomicL(). If rollback fails for a command, adapter
- * should use SetStatusL() to indicate it.
- *
- * @since S60 3.2
- */
- void RollbackAtomicL();
-
- /**
- * From MSmlDmAdapter.
- * Returns ETrue if adapter supports streaming otherwise EFalse.
- *
- * @since S60 3.2
- * @param aItemSize size limit for stream usage
- * @return TBool ETrue for streaming support
- */
- TBool StreamingSupport( TInt& aItemSize );
-
- /**
- * From MSmlDmAdapter.
- * Called when stream returned from UpdateLeafObjectL or
- * ExecuteCommandL has been written to and committed. Not called when
- * fetching item.
- *
- * @since S60 3.2
- */
- void StreamCommittedL();
-
- /**
- * From MSmlDmAdapter.
- * The function tells the adapter that all the commands of the message
- * that can be passed to the adapter have now been passed. This
- * indciates that the adapter must supply status codes and results to
- * any buffered commands. This must be done at latest by the time this
- * function returns. This function is used at the end of SyncML
- * messages, and during processing of Atomic. In the case of Atomic
- * processing, the function will be followed by a call to CommitAtomicL
- * or RollbackAtomicL.
- *
- * @since S60 3.2
- */
- void CompleteOutstandingCmdsL();
-
- /**
- * Implementation for cleanup item.
- * Resets and destroys array of the RCSE
- * entries.
- * @param anArray RPointerArray pointer.
- */
- static void ResetAndDestroyEntries( TAny* anArray );
-
-protected:
-
-private:
-
- /**
- * Constructor.
- *
- * @param aEcomArguments
- */
- CNSmlDmVCCAdapter( TAny* aEcomArguments );
-
- /**
- * Second-phase constructor.
- */
- void ConstructL();
-
- /**
- * Gets last uri segment.
- *
- * @since S60 3.2
- * @param aURI Descriptor to handle
- * @return integer
- */
- const TPtrC8 LastURISeg( const TDesC8& aURI );
-
- /**
- * Gets last uri segment.
- *
- * @since S60 3.2
- * @param aURI Descriptor to handle
- * @param aResult Object data.
- * @return Error status enumeration
- */
- CSmlDmAdapter::TError FetchObjectL( const TDesC8& aURI,
- CBufBase& aResult );
-
- /**
- * Converts Utf8 to Unicode.
- *
- * @since S60 3.2
- * @param aSource Descriptor to handle containing UTF8 data
- * @return Handle to Unicode data
- */
- HBufC* ConvertToUnicodeL( const TDesC8& aSource );
-
- /**
- * Fetches Voip profile reference
- * @param aUri Uri of the wanted object
- * @param aObject The result is inserted to this buffer
- * @return Error code
- */
- CSmlDmAdapter::TError FetchVoipConRefL( const TDesC8& aUri,
- CBufBase& aObject );
-
- /**
- * Updates Voip profile reference (ServiceId)
- * @param aUri Uri of the wanted object
- * @param aObject The result is inserted to this buffer
- * @return Error code
- */
- CSmlDmAdapter::TError UpdateVoipConRefL( const TDesC8& aUri,
- const TDesC8& aObject);
-
- /**
- * Removes separator from the end of URI.
- * @param aURI Reference to the URI.
- */
- static void RemoveLastSeparator( TPtr8& aURI );
-
-private: // data
-
- VCC_UNITTEST( T_CNSmlDmVCCAdapter )
-
- /**
- * VCC SP Settings object
- * own
- * @see VccUtils
- */
- CVccSPSettings* iVCCSettings;
-
- /**
- * Temporary object for converting Utf8 string to Unicode
- * own
- */
- HBufC* iTempBuf;
- };
-
-#endif // C_NSMLDMVCCADAPTER_H