diff -r 8ce15fced3a6 -r cad71a31b7fc srsf/sispeechrecognitiondata/src/nsssispeechrecognitiondataclient.cpp --- a/srsf/sispeechrecognitiondata/src/nsssispeechrecognitiondataclient.cpp Thu Aug 19 09:56:14 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,431 +0,0 @@ -/* -* Copyright (c) 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: This file contains definition of the SISpeechRecognitionDataClient structure and API. -* -*/ - - -// INCLUDE FILES -#include -#include "nsssispeechrecognitiondataclient.h" -#include "nsssispeechrecognitiondatadevasr.h" -#include "nsssispeechrecognitiondatatest.h" - -// CONSTANTS -const TInt32 KBinaryClientResultSetID = 0xAACF1235; - -// Does the CSIClientResultSet have an embedded CSIResultSet? -const TInt KNoResultSet = 0; -const TInt KYesResultSet = 1; - -// ----------------------------------------------------------------------------- -// CSIClientResult::~CSIClientResult -// Destructor. -// ----------------------------------------------------------------------------- -// -EXPORT_C CSIClientResult::~CSIClientResult() -{ -} - -// ----------------------------------------------------------------------------- -// CSIClientResult::CSIClientResult -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSIClientResult::CSIClientResult() - : iGrammarID(0), - iRuleID(0) -{ -} - -// ----------------------------------------------------------------------------- -// CSIClientResult::CSIClientResult -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSIClientResult::CSIClientResult(TSIGrammarID aGrammarID, TSIRuleID aRuleID) - : iGrammarID(aGrammarID), - iRuleID(aRuleID) -{ -} - -// ----------------------------------------------------------------------------- -// CSIClientResult::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CSIClientResult::ConstructL() -{ -} - -// ----------------------------------------------------------------------------- -// CSIClientResult::NewLC -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -EXPORT_C CSIClientResult* CSIClientResult::NewLC() -{ - CSIClientResult* self = new (ELeave) CSIClientResult(); - CleanupStack::PushL(self); - self->ConstructL(); - return self; -} - -// ----------------------------------------------------------------------------- -// CSIClientResult::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -EXPORT_C CSIClientResult* CSIClientResult::NewL() -{ - CSIClientResult* self = NewLC(); - CleanupStack::Pop(); - return self; -} - -// ----------------------------------------------------------------------------- -// CSIClientResult::NewLC -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -EXPORT_C CSIClientResult* CSIClientResult::NewLC(TSIGrammarID aGrammarID, TSIRuleID aRuleID) -{ - CSIClientResult* self = new (ELeave) CSIClientResult(aGrammarID, aRuleID); - CleanupStack::PushL(self); - self->ConstructL(); - return self; -} - -// ----------------------------------------------------------------------------- -// CSIClientResult::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -EXPORT_C CSIClientResult* CSIClientResult::NewL(TSIGrammarID aGrammarID, TSIRuleID aRuleID) -{ - CSIClientResult* self = NewLC(aGrammarID, aRuleID); - CleanupStack::Pop(); - return self; -} - -// ----------------------------------------------------------------------------- -// CSIClientResult::SetGrammarID -// (other items were commented in the headers) -// ----------------------------------------------------------------------------- -// -EXPORT_C void CSIClientResult::SetGrammarID(TSIGrammarID aGrammarID) -{ - iGrammarID = aGrammarID; -} - -// ----------------------------------------------------------------------------- -// CSIClientResult::GrammarID -// (other items were commented in the headers) -// ----------------------------------------------------------------------------- -// -EXPORT_C TSIGrammarID CSIClientResult::GrammarID() const -{ - return iGrammarID; -} - -// ----------------------------------------------------------------------------- -// CSIClientResult::SetRuleID -// (other items were commented in the headers) -// ----------------------------------------------------------------------------- -// -EXPORT_C void CSIClientResult::SetRuleID(TSIRuleID aRuleID) -{ - iRuleID = aRuleID; -} - -// ----------------------------------------------------------------------------- -// CSIClientResult::RuleID -// (other items were commented in the headers) -// ----------------------------------------------------------------------------- -// -EXPORT_C TSIRuleID CSIClientResult::RuleID() const -{ - return iRuleID; -} - -/*****************************************************************************/ - -// ----------------------------------------------------------------------------- -// CSIClientResultSet::~CSIClientResultSet -// Destructor. -// ----------------------------------------------------------------------------- -// -EXPORT_C CSIClientResultSet::~CSIClientResultSet() -{ - iResultArray.ResetAndDestroy(); - iResultArray.Close(); - delete iSIResultSet; -} - -// ----------------------------------------------------------------------------- -// CSIClientResultSet::CSIClientResultSet -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSIClientResultSet::CSIClientResultSet() - : iMaxResults(0), - iResultCount(0), - iResultArray(10), - iSIResultSet(NULL) -{ -} - -// ----------------------------------------------------------------------------- -// CSIClientResultSet::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CSIClientResultSet::ConstructL() -{ - iSIResultSet = CSIResultSet::NewL(); -} - -// ----------------------------------------------------------------------------- -// CSIClientResultSet::NewLC -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -EXPORT_C CSIClientResultSet* CSIClientResultSet::NewLC() -{ - CSIClientResultSet* self = new (ELeave) CSIClientResultSet(); - CleanupStack::PushL(self); - self->ConstructL(); - return self; -} - -// ----------------------------------------------------------------------------- -// CSIClientResultSet::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -EXPORT_C CSIClientResultSet* CSIClientResultSet::NewL() -{ - CSIClientResultSet* self = NewLC(); - CleanupStack::Pop(); - return self; -} - -// ----------------------------------------------------------------------------- -// CSIClientResultSet::AddL -// Adds a result to the set. -// (other items were commented in the headers) -// ----------------------------------------------------------------------------- -// -EXPORT_C void CSIClientResultSet::AddL( const CSIClientResult* aResult) - { - if ( iResultArray.Count() >= iMaxResults ) - { - User::Leave( KErrOverflow ); - } - - TInt error = iResultArray.Append(aResult); - User::LeaveIfError( error ); - } - - -// ----------------------------------------------------------------------------- -// CSIClientResultSet::DeleteL -// Removes a result from the set. -// (other items were commented in the headers) -// ----------------------------------------------------------------------------- -// -EXPORT_C void CSIClientResultSet::DeleteL(TInt aIndex) -{ - if(aIndex<0 || aIndex >= iResultArray.Count()) - User::Leave(KErrArgument); - iResultArray.Remove(aIndex); -} - -// ----------------------------------------------------------------------------- -// CSIClientResultSet::SetMaxResultsL -// Sets the maximum number of results, which the client wants get. -// Less results may be returned for various reasons. -// (other items were commented in the headers) -// ----------------------------------------------------------------------------- -// -EXPORT_C void CSIClientResultSet::SetMaxResultsL(TInt aMaxResults) -{ - iMaxResults = aMaxResults; - - while( iResultArray.Count() > iMaxResults ) - { - delete iResultArray[ iMaxResults ]; - iResultArray.Remove( iMaxResults ); - } -/* - for (TInt i = 0; i < aMaxResults; i++) - { - CSIClientResult* result = CSIClientResult::NewLC(); - User::LeaveIfError(iResultArray.Append(result)); - CleanupStack::Pop(); - } -*/ -} - -// ----------------------------------------------------------------------------- -// CSIClientResultSet::MaxResults -// Returns the maximum number of results. -// (other items were commented in the headers) -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt CSIClientResultSet::MaxResults() const -{ - return iMaxResults; -} - -// ----------------------------------------------------------------------------- -// CSIClientResultSet::AtL -// Used to get a result. -// (other items were commented in the headers) -// ----------------------------------------------------------------------------- -// -EXPORT_C const CSIClientResult& CSIClientResultSet::AtL(TInt aIndex) const -{ - - if(aIndex<0 || aIndex >= iResultArray.Count()) - User::Leave(KErrArgument); - return *(iResultArray[aIndex]); -} - -// ----------------------------------------------------------------------------- -// CSIClientResultSet::SetResultCount -// Sets the actual number of results, as opposed to maximum number. -// (other items were commented in the headers) -// ----------------------------------------------------------------------------- -// -EXPORT_C void CSIClientResultSet::SetResultCount(TInt aResultCount) -{ - iResultCount = aResultCount; -} - -// ----------------------------------------------------------------------------- -// CSIClientResultSet::ResultCount -// Gets the actual number of results, which is smaller or equal to maximum number. -// (other items were commented in the headers) -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt CSIClientResultSet::ResultCount() const -{ - return iResultCount; -} - - -// ----------------------------------------------------------------------------- -// CSIClientResultSet::SIClientResultSet -// Returns the nested lower-level result set. -// (other items were commented in the headers) -// ----------------------------------------------------------------------------- -// -EXPORT_C CSIResultSet& CSIClientResultSet::SIResultSet() const -{ - return *iSIResultSet; -} - -// ----------------------------------------------------------------------------- -// CSIClientResultSet::SetSIResultSet -// Sets the nested result set. -// (other items were commented in the headers) -// ----------------------------------------------------------------------------- -// -EXPORT_C void CSIClientResultSet::SetSIResultSet(CSIResultSet* aSIResultSet) -{ - delete iSIResultSet; - iSIResultSet = aSIResultSet; -} - -// ----------------------------------------------------------------------------- -// CSIClientResultSet::ExternalizeL -// Stores the object to the stream. -// (other items were commented in the headers) -// ----------------------------------------------------------------------------- -// -EXPORT_C void CSIClientResultSet::ExternalizeL( RWriteStream& aStream ) const - { - // Write format ID - aStream.WriteInt32L( KBinaryClientResultSetID ); - - aStream.WriteInt32L( iMaxResults ); - aStream.WriteInt32L( iResultCount ); - - TInt count = iResultArray.Count(); - aStream.WriteInt32L( count ); - - for ( TInt k = 0; k < count; k++ ) - { - CSIClientResult* result = iResultArray[ k ]; - - aStream.WriteInt32L( result->GrammarID() ); - aStream.WriteInt32L( result->RuleID() ); - } - - if ( iSIResultSet == 0 ) - { - aStream.WriteInt32L( KNoResultSet ); - } - else - { - aStream.WriteInt32L( KYesResultSet ); - - iSIResultSet->ExternalizeL( aStream ); - } - } - -// ----------------------------------------------------------------------------- -// CSIClientResultSet::InternalizeL -// Restores the object from the stream. -// (other items were commented in the headers) -// ----------------------------------------------------------------------------- -// -EXPORT_C void CSIClientResultSet::InternalizeL( RReadStream& aStream ) - { - if ( aStream.ReadInt32L() != KBinaryClientResultSetID ) - { - User::Leave( KErrCorrupt ); - } - - iMaxResults = aStream.ReadInt32L(); - iResultCount= aStream.ReadInt32L(); - - TInt count = aStream.ReadInt32L(); - - for ( TInt k( 0 ); k < count; k++ ) - { - CSIClientResult* result = CSIClientResult::NewLC(); - - result->SetGrammarID( (TSIGrammarID)aStream.ReadInt32L() ); - result->SetRuleID ( (TSIRuleID) aStream.ReadInt32L() ); - - AddL( result ); - - CleanupStack::Pop( result ); - } - - TInt32 hasNestedResultSet = aStream.ReadInt32L(); - - if ( hasNestedResultSet == KYesResultSet ) - { - iSIResultSet->InternalizeL( aStream ); - } - - } - -// End of File