diff -r 8ce15fced3a6 -r cad71a31b7fc srsf/sisrscontrollerplugin/src/sicommondb.h --- a/srsf/sisrscontrollerplugin/src/sicommondb.h Thu Aug 19 09:56:14 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,241 +0,0 @@ -/* -* Copyright (c) 2004-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: This class is the baseclass for all SI Controller Plugin DB classes. -* It implements the common database functionalities. -* -*/ - - -#ifndef SICOMMONDB_H -#define SICOMMONDB_H - -// INCLUDES -#include -#include -#include // Critical Level check -#include -#include "s32strm.h" // Streams -#include "s32mem.h" // Buffer streams -#include "nsssispeechrecognitiondatacommon.h" -#include "nsssispeechrecognitiondatadevasr.h" - -// CONSTANTS -const TInt KSDDatabaseDrive = EDriveC; - -_LIT(KClientUidColumn, "clientUid"); -_LIT(KUsedColumn, "used"); -_LIT(KCounterColumn, "counter"); - -_LIT(KOpenParen, " ("); -_LIT(KCloseParen, ")"); -_LIT(KEqual, " = "); -_LIT(KNext, ", "); - - -_LIT(KSIGrammarTable, "siGrammarTable"); -_LIT(KBinaryGrammarColumn, "BinaryGrammarId"); -_LIT(KBinaryGrammarColumnSize, "BinaryGrammarSize"); -_LIT(KGrammarIdTable, "siGrammarIdTable"); -_LIT(KGrammarIdColumn, "grammarId"); -_LIT(KGrammarIndex, "grammarIndex"); - -_LIT(KSILexiconTable, "siLexiconTable"); -_LIT(KBinaryLexiconColumn, "BinaryLexiconId"); -_LIT(KBinaryLexiconColumnSize, "BinaryLexiconSize"); -_LIT(KLexiconIdTable, "siLexiconIdTable"); -_LIT(KLexiconIdColumn, "lexiconId"); -_LIT(KLexiconIndex, "lexiconIndex"); - -_LIT(KSIModelBankTable, "siModelBankTable"); -_LIT(KBinaryModelBankColumn, "BinaryModelBankId"); -_LIT(KBinaryModelBankColumnSize, "BinaryModelBankSize"); -_LIT(KModelBankIdTable, "siModelBankIdTable"); -_LIT(KModelBankTable, "siModelBankTable"); -_LIT(KModelBankIdColumn, "modelBankId"); - -_LIT(KHmmColumn, "hmm"); -_LIT(KHmmChecksumColumn, "hmmChecksum"); -_LIT(KModelBankIndex, "modelBankIndex"); -_LIT(KModelIndex, "modelIndex"); - -const TInt KNotUsed = 0; -const TInt KUsed = 1; -const TSIModelID KModelID=1; -// CLASS DECLARATION - -/** -* This class is the base class for all SI Controller Plugin DB classes. -* It provides the common functionality for the DB classes. -* -* @lib SIControllerPlugin.lib -* @since 2.0 -*/ -class CSICommonDB : public CBase - { - public: // Constructors and destructor - - /** - * C++ default constructor. - */ - CSICommonDB( RDbNamedDatabase& aDatabase, RDbs& aDbSession, TInt aDrive ); - - /** - * Destructor. - */ - virtual ~CSICommonDB(); - - public: // New functions - - /** - * Checks if the specified ID table exists or not. If it doesn't exist, it creates one. - * @since 2.0 - * @param aIdTable descriptor containing tabel name - * @param aIdColumn descriptor containing ID column name - * @param aIndex descriptor containing table index name - * @return - - */ - void CreateIDTableL( const TDesC& aIdTable, const TDesC& aIdColumn, const TDesC& aIndex ); - - /** - * Creates a new ID in the specified table. - * @since 2.0 - * @param aTableName descriptor containing table name - * @param aIdColumn descriptor containing ID column name - * @param aClientUid client Uid for data ownership - * @return A new ID - */ - TUint32 CreateNewIDL( const TDesC& aTableName, const TDesC& aIdColumn, TUid aClientUid ); - - /** - * Returns the counter column value after searching for the aKey in the specified table. - * @since 2.0 - * @param aTableName descriptor containing tabel name - * @param aIndex descriptor containing table index name - * @param aKey key to search in the table - * @return Counter - */ - TInt CountL( const TDesC& aTableName, const TDesC& aIndex, TUint aKey ); - - /** - * Checks if an unused Id exists in the given table. If found, row is set to - * the found row. - * @since 2.0 - * @param "RDbTable& aDbTable" - * @return ETrue if found - */ - TBool FindUnusedIDL( RDbTable& aDbTable ); - - /** - * Returns all Ids in the specified table that belong to the specified client. - * @since 2.0 - * @param aTableName descriptor containing table name - * @param aIdColumn descriptor containing ID column name - * @param aClientUid client's Uid for data ownership - * @param aIDs reference where Ids are stored - */ - void GetAllClientIDsL( const TDesC& aIdTable, const TDesC& aIdColumn, TUid aClientUid, RArray& aIDs ); - - /** - * Returns all Ids in the specified table. - * @since 2.0 - * @param aTableName descriptor containing table name - * @param aIdColumn descriptor containing ID column name - * @param aIDs reference where Ids are stored - */ - void GetAllIDsL( const TDesC& aIdTable, const TDesC& aIdColumn, RArray& aIDs ); - - /** - * Checks if the specified key exists in the specified table. - * @since 2.0 - * @param aTableName descriptor containing tabel name - * @param aIndex descriptor containing table index name - * @param aKey key to search in the table - * @return ETrue if found. - */ - TBool IsValidL( const TDesC& aTableName, const TDesC& aIndex, TUint aKey ); - - /** - * Sets the specified ID as unused in the specified table. - * @since 2.0 - * @param aTableName descriptor containing tabel name - * @param aIdColumn descriptor containing ID column name - * @param aId ID to be marked as unused - */ - void ReleaseIdL( const TDesC& aTableName, const TDesC& aIdColumn, TUint32 aId ); - - /** - * Updates the counter value after finding the aKey in the specified table. - * @since 2.0 - * @param aTableName descriptor containing tabel name - * @param aIndex descriptor containing table index name - * @param aKey key to search in the table - * @param aIncrement Increment if ETrue, decrement otherwise. - */ - void UpdateCounterL( const TDesC& aTableName, const TDesC& aIndex, TUint aKey, - TBool aIncrement ); - - /** - * Checks for data ownership. Leaves with KErrAsrDataRightViolation if not - * owned by this client. - * @since 2.0 - * @param aClientUid client's Uid for data ownership - * @param aTableName descriptor containing tabel name - * @param aIndex descriptor containing table index name - * @param aKey key to search in the table - */ - void VerifyOwnershipL( TUid aClientUid, const TDesC& aTableName, const TDesC& aIndex, - TUint aKey ); - - public: // Data - - // Database - RDbNamedDatabase& iDb; - - // DB session - RDbs& iDbSession; - - // drive - TInt iDrive; - - private: // New functions - - /** - * Creates a new ID in the specified table. - * @since 2.0 - * @param aTableName descriptor containing table name - * @param aIdColumn descriptor containing ID column name - * @param aClientUid client Uid for data ownership - * @return A new ID - */ - TUint32 DoCreateNewIDL( const TDesC& aTableName, const TDesC& aIdColumn, TUid aClientUid ); - - /** - * Sets the specified ID as unused in the specified table. - * @since 2.0 - * @param aTableName descriptor containing tabel name - * @param aIdColumn descriptor containing ID column name - * @param aId ID to be marked as unused - */ - void DoReleaseIdL( const TDesC& aTableName, const TDesC& aIdColumn, TUint32 aId ); - - private: // Data - - // Mutex for DB write lock - // Makes sure that only one process gets the DB lock - RMutex iMutex; - }; - -#endif // SICOMMONDB_H - -// End of File