--- a/srsf/nssvasapi/nssvasdb/inc/nssvascvasdatabase.h Thu Aug 19 09:56:14 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,412 +0,0 @@
-/*
-* Copyright (c) 2003-2005 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: CNssVasDatabase is responsible for the issuing of requests to
-* to the VasDb server and returning the results to the VasDb Managers.
-*
-*/
-
-
-#ifndef CNSSVASDATABASE_H
-#define CNSSVASDATABASE_H
-
-
-#include <e32base.h>
-#include <e32cons.h>
-#include <s32file.h>
-#include <d32dbms.h>
-#include "nssvasrvasdbsession.h"
-#include "nssvasmgetcontextclient.h"
-#include "nssvasmgettagclient.h"
-#include "nssvasccontext.h"
-#include "nssvasctag.h"
-#include "nssvascrrd.h"
-#include "nssvascvasdbdataexchanger.h"
-#include "nssvasmvasdatabaseclient.h"
-#include "nssvascspeechitembuilder.h"
-#include "nssvasccontextbuilder.h"
-#include "nssvascvasdbeventmonitor.h"
-#include "nssvasctagreference.h"
-#include "nssvasmcoresyncrecoveryhandler.h"
-
-// CLASS DECLARATIONS
-/**
-*
-* The CNssVasDatabase class definition.
-*
-* @lib NssVASApi.lib
-* @since 2.8
-*/
-class CNssVASDatabase: public CBase
- {
-public:
-
- /**
- * Two-phased constructor.
- */
- static CNssVASDatabase* NewL(TInt aPriority);
- /**
- * Two-phased constructor.
- */
- static CNssVASDatabase* NewLC(TInt aPriority);
- /**
- * Destructor
- */
- ~CNssVASDatabase();
- // VAS Db
- /**
- * Method to create vas database
- * @since 2.0
- * @param
- * @return TInt a success or failure code.
- */
- TInt CreateDb();
- /**
- * Method to open vas database
- * @since 2.0
- * @param
- * @return TInt a success or failure code.
- */
- TInt OpenDatabase();
- /**
- * Method to close vas database.
- * @since 2.0
- * @param
- * @return void
- */
- void CloseDatabase();
-
- // ContextMgr Requests
- /**
- * Method to determine if modelbank and lexicon ids exist.
- * @since 2.0
- * @param aModelBankId- The modelbank id
- * @param aLexiconId - The lexicon id
- * @return TBool ETrue or EFalse.
- */
- TBool ModelBankAndLexiconExist(TUint32 &aModelBankId, TUint32 &aLexiconId);
- /**
- * Method to save context.
- * @since 2.0
- * @param aContext - .
- * @return TInt success or failure code.
- */
- TInt SaveContext( CNssContext* aContext, TInt& aNewContextId );
-
- /**
- * Updates the client data of the context
- * @since 2.8
- * @param aContext - .
- * @return TInt success or failure code.
- */
- TInt SaveContextClientData(CNssContext* aContext);
-
- /**
- * Method to get context by name
- * @since 2.0
- * @param aName - The name of the context.
- * @return CArrayPtrFlat<CNssContext>* List of contexts.
- */
- CArrayPtrFlat<CNssContext>* GetContext(const TDesC& aName);
-
- /**
- * Method to get all global contexts.
- * @since 2.0
- * @return CArrayPtrFlat<CNssContext>* List of contexts.
- */
- CArrayPtrFlat<CNssContext>* GetGlobalContexts();
-
- /**
- * Method to get all contexts.
- * @since 2.0
- * @return CArrayPtrFlat<CNssContext>* List of contexts.
- */
- CArrayPtrFlat<CNssContext>* GetAllContexts();
-
- /**
- * Method to transfer context list to client side.
- * @since 2.0
- * @param
- * @return TInt success or failure code.
- */
- TInt TransferContextList();
-
- /**
- * Method to delete context by name.
- * @since 2.0
- * @param aName- The name of the context to delete.
- * @return TInt success or failure code.
- */
- TInt DeleteContext( const TDesC& aName );
-
- /**
- * Method to delete context.
- * @since 2.0
- * @param aContext- The context to delete.
- * @return TInt success or failure code.
- */
- TInt DeleteContext( CNssContext* aContext );
-
- // TagMgr Requests
- /**
- * Method to save a tag.
- * @since 2.0
- * @param aTag The voice tag to save.
- * @return TInt sucess of failure code.
- */
- TInt SaveTag( CNssTag* aTag, TInt& aNewId );
-
- /**
- * Method to save several tags.
- * @since 2.8
- * @param aTagArray The voice tags to save.
- * @return TInt success or failure code.
- */
- TInt SaveTags( RPointerArray<CNssTag>* aTagArray );
-
- /**
- * Method to delete several tags.
- * @since 2.8
- * @param aTagArray The voice tags to delete.
- * @return TInt success or failure code.
- */
- TInt DeleteTags( const RArray<TUint32>& aTagIdArray );
-
- /**
- * Method to get a tag by name.
- * @since 2.0
- * @param aName- The name of the voice tag.
- * @return TInt success or failure code.
- */
- MNssTagListArray* GetTag( const TDesC& aName );
-
- /**
- * Initiate the Select Tag event.
- * @since 2.0
- * @param aTag The voice tag which was selected.
- * @return TNssRecognitionResult Return indicating request is valid.
- */
- MNssTagListArray* GetTag( CNssContext* aContext );
- /**
- * Method to get tag by grammar id and rule id.
- * @since 2.0
- * @param aGrammarId - The grammar id of the voice tag.
- * @param aRuleId - The rule id of the voice tag.
- * @return TInt success or failure code.
- */
- MNssTagListArray* GetTag( const TInt aGrammarID, const TInt aRuleID );
-
- /**
- * Method to tags by theirgrammar id and rule id.
- * @param aGrammarId - The grammar id of the voice tag.
- * @param aRuleId - The rule id of the voice tag.
- * @return TInt success or failure code.
- */
- MNssTagListArray* GetTags( TNssGrammarIdRuleIdListArray& aGrammarIdRuleIds);
-
- /**
- * Method to get a tag by context and name.
- * @since 2.0
- * @param aContext - The context of the tag.
- * @param aName - The name of the tag.
- * @return TInt success or failure code.
- */
- MNssTagListArray* GetTag( CNssContext* aContext, const TDesC& aName );
-
- /**
- * Method to get a tag by tagid.
- * @since 2.0
- * @param aTagId - The tagid of the voice tag.
- * @return TInt success or failure code.
- */
- MNssTagListArray* GetTag( const TUint32 aTagId );
-
- /**
- * Method to transfer tag list to client side.
- * @since 2.0
- * @param
- * @return TInt success or failure code.
- */
- TInt TransferTagList();
-
- /**
- * Method to delete tag by name.
- * @since 2.0
- * @param aName- The name of the voice tag to delete.
- * @return TInt success or failure code.
- */
- TInt DeleteTag( const TDesC& aName );
- /**
- * Initiate the Select Tag event.
- * @since 2.0
- * @param aTag The voice tag which was selected.
- * @return TInt success or failure code.
- */
- TInt DeleteTag( CNssTag *aTag );
- /**
- * Method to delete a tag by id
- * @since 2.0
- * @param aTagId- the tagid.
- * @return TInt success or failure code.
- */
- TInt DeleteTag( const TUint32 aTagId );
-
- // Event Monitoring methods
- /**
- * Method use to start monitoring vas database.
- * @since 2.0
- * @param
- * @return void
- */
- void StartMonitoringDatabaseL();
- /**
- * Method use to add observers to vas database.
- * @since 2.0
- * @param aObserver- An observer of vas database.
- * @return none
- */
- void AddObserverL( MNssVASDatabaseObserver* aObserver );
- /**
- * Method used to stop observering vas database.
- * @since 2.0
- * @param aObserver- The observer to remove.
- * @return TInt success or failure code.
- */
- TInt RemoveObserver( MNssVASDatabaseObserver* aObserver );
-
- /**
- * Method to determine if tags exist for a context
- * @since 2.0
- * @param aContext - The context to check tags for.
- * @return TBool ETrue or EFalse
- */
- TBool TagExist( CNssContext* aContext );
-
- /**
- * Method to get the number of tags for a context
- * @since 2.0
- * @param aContext - The context to check tags for.
- * @return TInt
- */
- TInt TagCount( CNssContext* aContext );
-
- /**
- * Method to get tags based on a rrd int value and position
- * @since 2.0
- * @param aNum - The rrd int value
- * @param aPosition - The int value position in the rrd intarray
- */
- MNssTagListArray* GetTagList( CNssContext* aContext, TInt aNum, TInt aPosition );
-
- /**
- * Method to get tags based on a rrd text value and position
- * @since 2.0
- * @param aText - The rrd text value
- * @param aPosition - The text value position in the rrd textarray
- */
- MNssTagListArray* GetTagList( CNssContext* aContext, TDesC& aText, TInt aPosition );
-
- CArrayPtrFlat<MNssTagReference>* GetTagReferenceList( CNssContext* aContext );
-
- TInt TransferTagReferenceList();
-
- /**
- * Method to get the default model bank id
- * @since 2.8
- * @param aId reference where to put the model bank Id
- * @return symbian-wide error code
- */
- TInt GetDefaultModelBankId( TUint32& aId );
-
- /**
- * Modifies the context table so that all contexts start using
- * the new id as their model bank id.
- * @since 2.8
- * @param aNewId new model bank id
- * @return symbian-wide error code
- */
- TInt ResetModelBank( TUint32 aNewId );
-
- /**
- * Changes the Rule ID of some tags.
- * When an already trained tag is retrained, the Rule ID changes.
- * This function updates the change to VAS DB.
- * @since 2.8
- * @param aNewId new model bank id
- * @return symbian-wide error code
- */
- TInt UpdateTagRuleIDs( const RArray<TNssSpeechItem>& aRetrainedTags );
-
-private:
-
- // C++ constructor
- CNssVASDatabase(TInt aPriority);
- // 2nd phase construction.
- void ConstructL ();
-
- void ConvertTNssTagRefToMNssTagRefL( TNssTagReferenceListArray* aTNssTagRef,
- CArrayPtrFlat<MNssTagReference>* aCNssTagRef);
- MNssVASDatabaseClient::TNssVASDBClientReturnCode ConvertDBError(TInt aError);
-
-
- // Pointer to the object, which makes the actual operations on database.
- CNssVasDb* iVasDb;
-
- // How many VAS instances in this thread have connected.
- TInt iConnected;
-
- //Current state
- TInt iState;
- //Grammar and rule data passed to server
- TNssGrammarIdRuleId iTNssGrammarIdRuleId;
- //Package for grammar and rule data
- TPckgCTNssGrammarIdRuleId* iGrammarIdRuleIdPackage;
- //Taglist returned to client
- CArrayPtrFlat<CNssTag>* iCNssTagList;
- //Contextlist returned to client
- CArrayPtrFlat<CNssContext>* iCNssContextList;
- //Tag id
- TUint32 iTagId;
- //Contextbuilder used to create contexts
- CNssContextBuilder* iContextBuilder;
- //SpeechItembuilder used to create speechitems
- CNssSpeechItemBuilder* iSpeechItemBuilder;
- //RRD int array data
- //TNssRRDIntArray* iRRDIntArray;
- //RRD text array data
- //TNssRRDTextArray* iRRDTextArray;
- //EventMonitor for vas db
- CNssVASDBEventMonitor* iVASDBEventMonitor;
-
- TNssTagReferenceListArray* iTNssTagRefList;
- CArrayPtrFlat<CNssTagReference>* iCNssTagRefList;
-
- enum TState //events
- {
- EStateGetContext = 0,
- EStateTransferContext,
- EStateGetTag,
- EStateTransferTag,
- EStateDeleteContext,
- EStateDeleteTag,
- EStateSaveContext,
- EStateSaveTag,
- EStateGetTagReference,
- EStateTransferTagReference
- };
-
- // Flag: Is the database locked
- TBool iIsLocked;
- };
-
-#endif