williamr@2: // Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: // All rights reserved. williamr@2: // This component and the accompanying materials are made available williamr@2: // under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members williamr@2: // which accompanies this distribution, and is available williamr@2: // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". williamr@2: // williamr@2: // Initial Contributors: williamr@2: // Nokia Corporation - initial contribution. williamr@2: // williamr@2: // Contributors: williamr@2: // williamr@2: // Description: williamr@2: // williamr@2: williamr@2: #ifndef __SPEECHRECOGNITIONDATADEVASR_H__ williamr@2: #define __SPEECHRECOGNITIONDATADEVASR_H__ williamr@2: williamr@2: // INCLUDES williamr@2: #include williamr@2: williamr@2: williamr@2: // FORWARD DECLARATION williamr@2: class TDiagnostic; williamr@2: williamr@2: williamr@2: // CLASS DECLARATION williamr@2: williamr@2: /** williamr@2: @publishedAll williamr@2: @released williamr@2: williamr@2: Class to encapsulate a Speaker Dependent Rule. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: class CSDRule : public CBase williamr@2: { williamr@2: public:// Constructors and destructor williamr@2: williamr@2: /** williamr@2: Destructor. williamr@2: */ williamr@2: IMPORT_C ~CSDRule(); williamr@2: williamr@2: /** williamr@2: Instantiates an instance of CSDRule. williamr@2: williamr@2: @param aRuleID williamr@2: The rule identifier. williamr@2: @param aLexiconID williamr@2: The lexicon identifier. williamr@2: @param aPronunciationID williamr@2: The pronunciation identifier. williamr@2: williamr@2: @return A pointer to a CSDRule object. williamr@2: */ williamr@2: IMPORT_C static CSDRule* NewL(TRuleID aRuleID, TLexiconID aLexiconID, TPronunciationID aPronunciationID); williamr@2: williamr@2: /** williamr@2: Instantiates an instance of CSDRule and leaves a pointer on the cleanup stack. williamr@2: williamr@2: @param aRuleID williamr@2: The rule identifier. williamr@2: @param aLexiconID williamr@2: The lexicon identifier. williamr@2: @param aPronunciationID williamr@2: The pronunciation identifier. williamr@2: williamr@2: @return A pointer to a CSDRule object. williamr@2: */ williamr@2: IMPORT_C static CSDRule* NewLC(TRuleID aRuleID, TLexiconID aLexiconID, TPronunciationID aPronunciationID); williamr@2: williamr@2: williamr@2: /** williamr@2: Returns the rule ID of the result. williamr@2: williamr@2: @return The rule identifier. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TRuleID RuleID() const; williamr@2: williamr@2: /** williamr@2: Returns the lexicon ID of the result. williamr@2: williamr@2: @return The lexicon identifier. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TLexiconID LexiconID() const; williamr@2: williamr@2: /** williamr@2: Returns the pronunciation ID of the result. williamr@2: williamr@2: @return The pronunciation identifier. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TPronunciationID PronunciationID() const; williamr@2: williamr@2: private: williamr@2: void ConstructL(); williamr@2: CSDRule(TRuleID aRuleID, TLexiconID aLexiconID, TPronunciationID aPronunciationID); williamr@2: williamr@2: private: williamr@2: TRuleID iRuleID; williamr@2: TLexiconID iLexiconID; williamr@2: TPronunciationID iPronunciationID; williamr@2: }; williamr@2: williamr@2: williamr@2: /** williamr@2: @publishedAll williamr@2: @released williamr@2: williamr@2: Class to encapsulate a Speaker Dependent Grammar. williamr@2: williamr@2: A grammar consists of a list of rules. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: class CSDGrammar : public CBase williamr@2: { williamr@2: public:// Constructors and destructor williamr@2: williamr@2: /** williamr@2: Destructor. williamr@2: */ williamr@2: IMPORT_C ~CSDGrammar(); williamr@2: williamr@2: /** williamr@2: Instantiates an instance of CSDGrammar. williamr@2: williamr@2: @param aGrammarID williamr@2: The grammar identifier. williamr@2: williamr@2: @return A pointer to a CSDGrammar object. williamr@2: */ williamr@2: IMPORT_C static CSDGrammar* NewL(TGrammarID aGrammarID); williamr@2: williamr@2: /** williamr@2: Instantiates an instance of CSDGrammar and leaves a pointer on the cleanup stack. williamr@2: williamr@2: @param aGrammarID williamr@2: The grammar identifier. williamr@2: williamr@2: @return A pointer to CSDGrammar object. williamr@2: */ williamr@2: IMPORT_C static CSDGrammar* NewLC(TGrammarID aGrammarID); williamr@2: williamr@2: /** williamr@2: Returns the grammar ID of the result. williamr@2: williamr@2: @return The grammar identifier. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TGrammarID GrammarID() const; williamr@2: williamr@2: /** williamr@2: Adds a rule to the grammar. williamr@2: williamr@2: @param aRule williamr@2: A reference to a CSDRule object. williamr@2: williamr@2: @return An error code indicating if the function call was successful. KErrNone on success, otherwise williamr@2: another of the system-wide error codes. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt Add(CSDRule& aRule); williamr@2: williamr@2: /** williamr@2: Deletes a rule from the grammar. williamr@2: williamr@2: @param aRuleID williamr@2: The rule identifier to delete. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C void Delete(TRuleID aRuleID); williamr@2: williamr@2: /** williamr@2: Returns a rule based at an index. williamr@2: williamr@2: @param aIndex williamr@2: An index value. The value must not be negative and must not be greater than the number williamr@2: of rules currently in the grammar, otherwise the function will panic. williamr@2: williamr@2: @return A reference to a CSDRule object. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C const CSDRule& At(TInt aIndex) const; williamr@2: williamr@2: /** williamr@2: Finds a rule in the grammar based on the rule ID. williamr@2: williamr@2: @param aRuleID williamr@2: The rule identifier. williamr@2: williamr@2: @return The index of the first matching rule within the grammar. Returns KErrNotFound, if a williamr@2: matching rule can not be found. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt FindRule(TRuleID aRuleID) const; williamr@2: williamr@2: /** williamr@2: Returns the number of rules in the grammar williamr@2: williamr@2: @return The number of rules. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt Count() const; williamr@2: williamr@2: private: williamr@2: void ConstructL(); williamr@2: CSDGrammar(TGrammarID aGrammarID); williamr@2: williamr@2: private: williamr@2: TGrammarID iGrammarID; williamr@2: RPointerArray iRuleArray; williamr@2: }; williamr@2: williamr@2: williamr@2: /** williamr@2: @publishedAll williamr@2: @released williamr@2: williamr@2: Class to encapsulate a Speaker Dependent Pronunciation. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: class CSDPronunciation : public CBase williamr@2: { williamr@2: public:// Constructors and destructor williamr@2: williamr@2: /** williamr@2: Destructor. williamr@2: */ williamr@2: IMPORT_C ~CSDPronunciation(); williamr@2: williamr@2: /** williamr@2: Instantiates an instance of CSDPronunciation. williamr@2: williamr@2: @param aPronunciationID williamr@2: The pronunciation identifier. williamr@2: @param aModelBankID williamr@2: The model bank identifier. williamr@2: @param aPhonemeID williamr@2: The phoneme identifier. williamr@2: williamr@2: @return A pointer to a CSDPronunciation object. williamr@2: */ williamr@2: IMPORT_C static CSDPronunciation* NewL(TPronunciationID aPronunciationID, TModelBankID aModelBankID, TPhonemeID aPhonemeID); williamr@2: williamr@2: /** williamr@2: Instantiates an instance of CSDPronunciation and leaves a pointer on the cleanup stack. williamr@2: williamr@2: @param aPronunciationID williamr@2: The pronunciation identifier. williamr@2: @param aModelBankID williamr@2: The model bank identifier. williamr@2: @param aPhonemeID williamr@2: The phoneme identifier. williamr@2: williamr@2: @return A pointer to a CSDPronunciation object. williamr@2: */ williamr@2: IMPORT_C static CSDPronunciation* NewLC(TPronunciationID aPronunciationID, TModelBankID aModelBankID, TPhonemeID aPhonemeID); williamr@2: williamr@2: /** williamr@2: Returns the pronunciation ID of this lexicon entry. williamr@2: williamr@2: @return The pronunciation identifier. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TPronunciationID PronunciationID() const; williamr@2: williamr@2: /** williamr@2: Returns the ID of the model bank. williamr@2: williamr@2: @return The model bank identifier. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TModelBankID ModelBankID() const; williamr@2: williamr@2: /** williamr@2: Returns the phoneme ID of this lexicon entry. williamr@2: williamr@2: @return The phoneme identifier. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TPhonemeID PhonemeID() const; williamr@2: williamr@2: private: williamr@2: void ConstructL(); williamr@2: CSDPronunciation(TPronunciationID aPronunciationID, TModelBankID aModelBankID, TPhonemeID aPhonemeID); williamr@2: williamr@2: private: williamr@2: TPronunciationID iPronunciationID; williamr@2: TModelBankID iModelBankID; williamr@2: TPhonemeID iPhonemeID; williamr@2: }; williamr@2: williamr@2: williamr@2: /** williamr@2: @publishedAll williamr@2: @released williamr@2: williamr@2: Class to encapsulate a Speaker Dependent Lexicon. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: class CSDLexicon : public CBase williamr@2: { williamr@2: public:// Constructors and destructor williamr@2: williamr@2: /** williamr@2: Destructor. williamr@2: */ williamr@2: IMPORT_C ~CSDLexicon(); williamr@2: williamr@2: /** williamr@2: Instantiates an instance of CSDLexicon. williamr@2: williamr@2: @param aLexiconID williamr@2: The lexicon identifier. williamr@2: williamr@2: @return A pointer to a CSDLexicon object. williamr@2: */ williamr@2: IMPORT_C static CSDLexicon* NewL(TLexiconID aLexiconID); williamr@2: williamr@2: /** williamr@2: Instantiates an instance of CSDGrammar and leaves a pointer on the cleanup stack. williamr@2: williamr@2: @param aLexiconID williamr@2: The lexicon identifier. williamr@2: williamr@2: @return A pointer to a CSDLexicon object. williamr@2: */ williamr@2: IMPORT_C static CSDLexicon* NewLC(TLexiconID aLexiconID); williamr@2: williamr@2: /** williamr@2: Returns the ID of the lexicon. williamr@2: williamr@2: @return The lexicon identifier. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TLexiconID LexiconID() const; williamr@2: williamr@2: /** williamr@2: Adds a lexicon entry to the lexicon. williamr@2: williamr@2: @param aPronunciation williamr@2: A reference to a CSDPronunciation object. williamr@2: williamr@2: @return An error code indicating if the function call was successful. KErrNone on success, otherwise williamr@2: another of the system-wide error codes. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt Add(CSDPronunciation& aPronunciation); williamr@2: williamr@2: /** williamr@2: Returns a pronunciation based at an index. williamr@2: williamr@2: @param aIndex williamr@2: The pronunciation index. This value must not be negative and must not be greater than williamr@2: the number of pronunciations currently in the lexicon, otherwise the function will williamr@2: panic. williamr@2: williamr@2: @return A reference to a CSDPronunciation object. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C const CSDPronunciation& At(TInt aIndex) const; williamr@2: williamr@2: /** williamr@2: Finds a pronunciation based on the specified pronunciation ID. williamr@2: williamr@2: @param aPronunciationID williamr@2: The pronunciation identifier. williamr@2: williamr@2: @return The index of the first matching pronunciation within the lexicon. Returns KErrNotFound, williamr@2: if a matching pronunciation can not be found. williamr@2: */ williamr@2: IMPORT_C TInt FindPronunciation(TPronunciationID aPronunciationID) const; williamr@2: williamr@2: /** williamr@2: Returns the number of lexicon entries in the lexicon. williamr@2: williamr@2: @return The number of pronunciations. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt Count() const; williamr@2: williamr@2: private: williamr@2: void ConstructL(); williamr@2: CSDLexicon(TLexiconID aLexiconID); williamr@2: williamr@2: private: williamr@2: TLexiconID iLexiconID; williamr@2: RPointerArray iPronunciationArray; williamr@2: }; williamr@2: williamr@2: williamr@2: /** williamr@2: @publishedAll williamr@2: @released williamr@2: williamr@2: Class to encapsulate a Speaker Dependent Model created during the training process. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: class CSDModel : public CBase williamr@2: { williamr@2: public:// Constructors and destructor williamr@2: williamr@2: /** williamr@2: Destructor. williamr@2: */ williamr@2: IMPORT_C ~CSDModel(); williamr@2: williamr@2: /** williamr@2: Instantiates an instance of a CSDModel. williamr@2: williamr@2: @return A pointer to a CSDModel object. williamr@2: */ williamr@2: IMPORT_C static CSDModel* NewL(); williamr@2: williamr@2: /** williamr@2: Instantiates an instance of a CSDModel. williamr@2: williamr@2: @return A pointer to a CSDModel object. williamr@2: */ williamr@2: IMPORT_C static CSDModel* NewLC(); williamr@2: williamr@2: /** williamr@2: Instantiates an instance of a CSDModel. williamr@2: williamr@2: @param aPhonemeID williamr@2: The phoneme identifier. williamr@2: williamr@2: @return A pointer to a CSDModel object. williamr@2: */ williamr@2: IMPORT_C static CSDModel* NewL(TPhonemeID aPhonemeID); williamr@2: williamr@2: /** williamr@2: Instantiates an instance of a CSDModel. williamr@2: williamr@2: @param aPhonemeID williamr@2: The phoneme identifier. williamr@2: williamr@2: @return A pointer to a CSDModel object. williamr@2: */ williamr@2: IMPORT_C static CSDModel* NewLC(TPhonemeID aPhonemeID); williamr@2: williamr@2: /** williamr@2: Sets the phoneme ID of this model. williamr@2: williamr@2: @param aPhonemeID williamr@2: The phoneme identifier. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C void SetPhonemeID(TPhonemeID aPhonemeID); williamr@2: williamr@2: /** williamr@2: Returns the phoneme ID of this model. williamr@2: williamr@2: @return The phoneme identifier. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TPhonemeID PhonemeID() const; williamr@2: williamr@2: /** williamr@2: Sets the acoustic model of the model. williamr@2: williamr@2: @param aAcousticModel williamr@2: A pointer descriptor containing the acoustic model (binary). williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C void SetAcousticModel(TPtr8& aAcousticModel); williamr@2: williamr@2: /** williamr@2: Gets a pointer to the acoustic model of this model. williamr@2: williamr@2: @return A descriptor to the acoustic model data. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C const TDesC8& AcousticModel() const; williamr@2: williamr@2: private: williamr@2: void ConstructL(); williamr@2: CSDModel(); williamr@2: CSDModel(TPhonemeID aPhonemeID); williamr@2: williamr@2: private: williamr@2: TPhonemeID iPhonemeID; williamr@2: TPtr8 iAcousticModelPtr; williamr@2: }; williamr@2: williamr@2: williamr@2: /** williamr@2: @publishedAll williamr@2: @released williamr@2: williamr@2: Class to encapsulate a Speaker Dependent Model Bank used by the recognizer during the williamr@2: recognition process. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: class CSDModelBank : public CBase williamr@2: { williamr@2: public:// Constructors and destructor williamr@2: williamr@2: /** williamr@2: Destructor. williamr@2: */ williamr@2: IMPORT_C ~CSDModelBank(); williamr@2: williamr@2: /** williamr@2: Instantiates an instance of a CSDModelBank. williamr@2: williamr@2: @param aModelBankID williamr@2: The model bank identifier. williamr@2: williamr@2: @return A pointer to a CSDModelBank object. williamr@2: */ williamr@2: IMPORT_C static CSDModelBank* NewL(TModelBankID aModelBankID); williamr@2: williamr@2: /** williamr@2: Instantiates an instance of a CSDModelBank and leaves a pointer on the cleanup stack. williamr@2: williamr@2: @param aModelBankID williamr@2: The model bank identifier. williamr@2: williamr@2: @return A pointer to a CSDModelBank object. williamr@2: */ williamr@2: IMPORT_C static CSDModelBank* NewLC(TModelBankID aModelBankID); williamr@2: williamr@2: /** williamr@2: Returns the model bank ID of the model bank. williamr@2: williamr@2: @return The model bank identifier. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TModelBankID ModelBankID() const; williamr@2: williamr@2: /** williamr@2: Adds a model to the model bank. williamr@2: williamr@2: @param aModel williamr@2: The reference to CSDModel object. williamr@2: williamr@2: @return An error code indicating if the function call was successful. KErrNone on success, otherwise williamr@2: another of the system-wide error codes. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt Add(CSDModel& aModel); williamr@2: williamr@2: /** williamr@2: Returns a model at the given index. williamr@2: williamr@2: @param aIndex williamr@2: A reference to a CSDModel object. williamr@2: williamr@2: @return The index of the first matching model within the model bank. Returns KErrNotFound, if a williamr@2: matching model can not be found. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C const CSDModel& At(TInt aIndex) const; williamr@2: williamr@2: /** williamr@2: Finds a model based on the specified phoneme ID. williamr@2: williamr@2: @param aPhonemeID williamr@2: The phoneme ID. williamr@2: williamr@2: @return The index of the first matching model within the model bank. Returns KErrNotFound, if a williamr@2: matching model can not be found. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt FindModel(TPhonemeID aPhonemeID) const; williamr@2: williamr@2: /** williamr@2: Returns the number of models in the model bank. williamr@2: williamr@2: @return The number of models in the model bank. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt Count() const; williamr@2: williamr@2: private: williamr@2: void ConstructL(); williamr@2: CSDModelBank(TModelBankID aModelBankID); williamr@2: williamr@2: private: williamr@2: TModelBankID iModelBankID; williamr@2: RPointerArray iModelArray; williamr@2: }; williamr@2: williamr@2: williamr@2: /** williamr@2: @publishedAll williamr@2: @released williamr@2: williamr@2: Class to encapsulate a Recognition Result williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: class CSDResult : public CBase williamr@2: { williamr@2: public:// Constructors and destructor williamr@2: williamr@2: /** williamr@2: Destructor. williamr@2: */ williamr@2: IMPORT_C ~CSDResult(); williamr@2: williamr@2: /** williamr@2: Instantiates an instance of a CSDResult. williamr@2: williamr@2: @return A pointer to a CSDResult object. williamr@2: */ williamr@2: IMPORT_C static CSDResult* NewL(); williamr@2: williamr@2: /** williamr@2: Instantiates an instance of CSDResult and leaves a pointer on the cleanup stack. williamr@2: williamr@2: @return A pointer to a CSDResult object. williamr@2: */ williamr@2: IMPORT_C static CSDResult* NewLC(); williamr@2: williamr@2: /** williamr@2: Instantiates an instance of a CSDResult. williamr@2: williamr@2: @param aGrammarID williamr@2: The grammar identifier. williamr@2: @param aRuleID williamr@2: The rule identifier. williamr@2: williamr@2: @return A pointer to a CSDResult object. williamr@2: */ williamr@2: IMPORT_C static CSDResult* NewL(TGrammarID aGrammarID, TRuleID aRuleID); williamr@2: williamr@2: /** williamr@2: Instantiates an instance of a CSDResult and leaves a pointer on the cleanup stack. williamr@2: williamr@2: @param aGrammarID williamr@2: The grammar identifier. williamr@2: @param aRuleID williamr@2: The rule identifier. williamr@2: williamr@2: @return A pointer to a CSDResult object. williamr@2: */ williamr@2: IMPORT_C static CSDResult* NewLC(TGrammarID aGrammarID, TRuleID aRuleID); williamr@2: williamr@2: /** williamr@2: Sets the grammar ID on the result. williamr@2: williamr@2: @param aGrammarID williamr@2: The grammar identifier. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C void SetGrammarID(TGrammarID aGrammarID); williamr@2: williamr@2: /** williamr@2: Returns the grammar ID of the result. williamr@2: williamr@2: @return The grammar identifier. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TGrammarID GrammarID() const; williamr@2: williamr@2: /** williamr@2: Sets the rule ID of the result. williamr@2: williamr@2: @param aRuleID williamr@2: The rule identifier. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C void SetRuleID(TRuleID aRuleID); williamr@2: williamr@2: /** williamr@2: Returns the rule ID of the result. williamr@2: williamr@2: @return The rule identifier. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TRuleID RuleID() const; williamr@2: williamr@2: /** williamr@2: Sets the score for this result. williamr@2: williamr@2: @param aScore williamr@2: The score of this result. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C void SetScore(const TInt32 aScore); williamr@2: williamr@2: /** williamr@2: Returns the score of this result. williamr@2: williamr@2: @return The score of this result. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt32 Score() const; williamr@2: williamr@2: private: williamr@2: void ConstructL(); williamr@2: CSDResult(); williamr@2: CSDResult(TGrammarID aGrammarID, TRuleID aRuleID); williamr@2: williamr@2: private: williamr@2: TGrammarID iGrammarID; williamr@2: TRuleID iRuleID; williamr@2: TInt32 iScore; williamr@2: }; williamr@2: williamr@2: williamr@2: /** williamr@2: @publishedAll williamr@2: @released williamr@2: williamr@2: CSDResultSet encapsulates a set of result objects returned by the recognizer at the end of the williamr@2: recognition process. A result set may include additional diagnostic information for error analysis. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: class CSDResultSet : public CBase williamr@2: { williamr@2: public:// Constructors and destructor williamr@2: williamr@2: /** williamr@2: Destructor. williamr@2: */ williamr@2: IMPORT_C ~CSDResultSet(); williamr@2: williamr@2: /** williamr@2: Instantiates an instance of CSDResultSet. williamr@2: williamr@2: @return A pointer to a CSDResultSet object. williamr@2: */ williamr@2: IMPORT_C static CSDResultSet* NewL(); williamr@2: williamr@2: /** williamr@2: Instantiates an instance of CSDResultSet and leaves a pointer on the cleanup stack. williamr@2: williamr@2: @return A pointer to a CSDResultSet object. williamr@2: */ williamr@2: IMPORT_C static CSDResultSet* NewLC(); williamr@2: williamr@2: /** williamr@2: Adds a result to the rule set. williamr@2: williamr@2: @param aResult williamr@2: A reference to the result object to be added. williamr@2: williamr@2: @return An error code indicating if the function call was successful. KErrNone on success, otherwise williamr@2: another of the system-wide error codes. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt Add(CSDResult& aResult); williamr@2: williamr@2: /** williamr@2: Returns a result at a given index within the result set. williamr@2: williamr@2: @param aIndex williamr@2: The index in the result set. williamr@2: williamr@2: @return A reference to CSDResult object. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C const CSDResult& At(TInt aIndex); williamr@2: williamr@2: /** williamr@2: Returns the number of results in the result set. williamr@2: williamr@2: @return The number of results in the result set. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt Count() const; williamr@2: williamr@2: /** williamr@2: Sets the diagnostic of this result set. williamr@2: williamr@2: @param aDiagnostic williamr@2: A reference to the diagostic object. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C void SetDiagnostic(TDiagnostic& aDiagnostic); williamr@2: williamr@2: /** williamr@2: Gets the diagnostic of this result set. williamr@2: williamr@2: @return A reference to A TDiagnostic object. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C const TDiagnostic& Diagnostic() const; williamr@2: williamr@2: private: williamr@2: void ConstructL(); williamr@2: CSDResultSet(); williamr@2: williamr@2: private: williamr@2: RPointerArray iResultArray; williamr@2: TDiagnostic* iDiagnostic; williamr@2: }; williamr@2: williamr@2: williamr@2: #endif