speechsrv_plat/vas_api/inc/nssvasmcontextmgr.h
author Pat Downey <patd@symbian.org>
Wed, 01 Sep 2010 12:29:17 +0100
branchRCL_3
changeset 19 e36f3802f733
parent 0 bf1d17376201
permissions -rw-r--r--
Revert incorrect RCL_3 drop: Revision: 201033 Kit: 201035

/*
* Copyright (c) 2002-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:  MNssContextManager interface provides context processing methods for 
*				 the client. The client  gets an instance of the context manager 
*				 from the vas db manager. The vas db manager owns the context manager 
*				 and is responsible for deleting the context manager. Clients should not 
*				 directly delete the context manager. The context manager is simply a 
*				 colllection of utility methods  that are pure virtuals. These methods are implemented
*				 internal to VAS, and thus transparent to the client.
*
*/



#ifndef MNSSCONTEXTMGR_H
#define MNSSCONTEXTMGR_H

#include <e32std.h>

#include "nssvascoreconstant.h"

//FORWARD DECLARATIONS
class MNssGetContextClient;
class MNssDeleteContextClient;
class MNssSaveContextClient;
class MNssContext;



// CLASS DECLARATIONS
/**
*  MNssContextMgr is the public interface class for context management.
*  It provides methods for context creation, saving context into the
*  VAS database, retriving contexts from VAS database, and deletion of 
*  context from the VAS database. A context manager cannot be instantiated
*  directly but needs to be got from the VAS DB manager.
*  @lib NssVASApi.lib
*  @since 2.8
*  
*/
class MNssContextMgr
   {
public:
    /**
    * Create a new empty context
    * @since 2.0
    * @param 
    * @return a reference to a new context object.
    */
    virtual MNssContext* CreateContextL()=0;

    /**
    * GetContext is called to retrieve a context from the VAS DB. 
    * This method is asynchronous. A call back will be made to 
    * either GetContextCompleted() or GetContextFailed() as
    * defined in the MNssGetContextClient interface. It also returns an
    * error code validating success of call to VAS DB.
    * @since 2.0
    * @param aContextClient - call back address
    * @param aName          - name of context to retreive
    * @return - syncronous error code from function return
    */    
    virtual TInt GetContext( MNssGetContextClient* aContextClient, const TDesC& aName ) = 0;

    /**
    * GetContextList is called to retrieve a context list from the VAS DB. 
    * This method is asynchronous. A call back will be made to 
    * either GetContextListCompleted() or GetContextFailed() as
    * defined in the MNssGetContextClient interface. It also returns an
    * error code validating success of call to VAS DB.
    * @since 2.0
    * @param aContextClient - call back address 
    * @param  
    * @return - syncronous error code from function return
    */    
    virtual TInt GetContextList( MNssGetContextClient* aContextClient ) = 0;

    /**
    * DeleteContext is called to remove a context from the VAS DB. 
    * This method is asynchronous. A call back will be made to 
    * either DeleteContextCompleted() or DeleteContextFailed() as
    * defined in the MNssDeleteContextClient interface. It also returns an
    * error code validating success of call to VAS DB.
    * @since 2.0
    * @param aContextClient - call back address
    * @param aContext       - context object to delete
    * @return syncronous error code from function return
    */     
    virtual TInt DeleteContext( MNssDeleteContextClient* aContextClient,
                                MNssContext* aContext ) = 0;
    
    /**
    * SaveContext is called to store a context to the VAS DB. 
    * This method is asynchronous. A call back will be made to 
    * either SaveContextCompleted() or SaveContextFailed() as
    * defined in the MNssSaveContextClient interface. It also returns an
    * error code validating success of call to VAS DB.
    * @since 2.0
    * @param aContextClient - call back address
    * @param aContext       - context object to save
    * @return - syncronous error code from function return
    */
    virtual TInt SaveContext( MNssSaveContextClient* aContextClient, MNssContext* aContext ) = 0;

    /**
    * SaveClientData is called to save client-specific data about the context.
    * This method is asynchronous. A call back will be made to either
    * SaveContextCompleted or SaveContextFailed() as defined in the
    * MNssSaveContextClient interface. It also returns an error code validating
    * success of call to VAS DB.
    * @since 2.8
    * @param aContextClient - call back address.
    * @param aContext       - the client data of this context will be updated.
    * @param aClientData    - buffer of serialized client data, at most 100 bytes.
    */
    virtual TInt SaveClientData( MNssContext* aContext ) = 0;
    
    /**
    * Cancel get context / get context list / get global contexts 
    * @since 3.2
    * @param none
    * @return none
    */     
    virtual void CancelGetContext() = 0;
    
    };

#endif // MNSSCONTEXTMGR_H