srsf/nssvasapi/nssvascore/inc/nssvascspeechitemsrsportal.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) 2003-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:  The VasCSpeechItemSrsPortal provides the portal to the 
*               SpeechRecognitionUtility object.
*
*/



#ifndef NSSVASCSPEECHITEMSRSPORTAL_H
#define NSSVASCSPEECHITEMSRSPORTAL_H

#include <nsssispeechrecognitionutilityobserver.h>
#include "nssvassiutilitywrapper.h"

#include "nssvascoreconstant.h" 
#include "nssvastspeechitemconstant.h"     


/**
* This class handles accessing the SpeechRecognitionUtility services. 
* It allows only one transaction for each SpeechItem object to be in 
* progress at any given time. 
*
*  @lib NssVASApi.lib
*  @since 2.8
*/
class CNssSpeechItemSrsPortal:public CBase
{
  public:
        
    /**
    * Destructor.
    */
    ~CNssSpeechItemSrsPortal();

    /**
    * Creates CNssSpeechItemSrsPortal.
    * Get the SpeechRecognitionUtility's engine status ?????
    * @since 2.0
    * @param 
    * @return 
    */      
    static CNssSpeechItemSrsPortal* NewL();

    /**
    * Creates CNssSpeechItemSrsPortal.
    * 2 phase construction
    * @since 2.0
    * @param 
    * @return 
    */      
    static CNssSpeechItemSrsPortal* NewLC();
 
    /**
    * Requests that the value of the state be changed to Termination state. 
    * If the counter is zero, the SpeechItemPortal will delete itself.
    * @since 2.0
    * @param 
    * @return 
    */ 
    void SetTerminationState();

    /**
    * Get training capabilities from SpeechRecognitionUtility object.
    * @since 2.0
    * @param 
    * @return 
    */      
    CArrayFixFlat<TNssVasCoreConstant::TNssTrainingCapability>* 
        GetTrainingCapability();

    /**
    * Increment the counter to count the number of created SpeechItem objects.
    * @since 2.0
    * @param 
    * @return 
    */      
    void Register();

    /**
    * Decrement the counter when SpeechItem objects is destroy.
    * If the counter is zero and the state is in termination state, 
    * the portal will destroy the SpeechRecognitionUtility object if exist, 
    * and it destroys itself.
    * @since 2.0
    * @param 
    * @return 
    */      
    void Deregister();



	/**
    * overloaded assignment operator
    * @param 
    * @return reference to the CNssSpeechItemSrsPortal
    */
    CNssSpeechItemSrsPortal& 
        operator=(const CNssSpeechItemSrsPortal& aCNssSpeechItemSrsPortal);


    /**
    * Return the status of whether the Engine Property Set flag
    * @param 
    * @return the status of Engine Property Set flag
    */
    TBool IsEnginePropertySet();

    /**
    * Return the Maximum Loadable Models from the SRS 
    * @param - the Model Storage capacity
    * @param - the Maximum Loadable Models
    * @return 
    */
    void SetEngineProperty(TInt aModelStorageCapacity, TInt aMaxLoadableModels);

    /**
    * Return the Model Storage Capacity from the SRS
    * @param 
    * @return the Model Storage capacity
    */
    TInt ModelStorageCapacity();

    /**
    * Return the Maximum Loadable Models from the SRS 
    * @param 
    * @return the Maximum Loadable Models
    */
    TInt MaxLoadableModels();




  private: //function


    /**
    * C++ constructor.
    */   
    CNssSpeechItemSrsPortal();


  
  private: //data


    // The Portal's state
    TNssSpeechItemConstant::TNssState iState;

    // Counter to count the total of registered SpeechItem objects 
    TInt iSpeechItemCounter; 

    // The SRS's Engine Property has been set flag
    TBool iEnginePropertySet;
    
    // The SRS's ModelStorageCapacity 
    TInt iModelStorageCapacity;

    // The SRS's MaxLoadableModels  
    TInt iMaxLoadableModels;


};

#endif // NSSVASCSPEECHITEMSRSPORTAL_H

// End of file