srsf/nssvasapi/nssvasdb/inc/nssvastvasdbcreator.h
branchRCL_3
changeset 23 e36f3802f733
parent 0 bf1d17376201
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srsf/nssvasapi/nssvasdb/inc/nssvastvasdbcreator.h	Wed Sep 01 12:29:17 2010 +0100
@@ -0,0 +1,129 @@
+/*
+* Copyright (c) 2002-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:  TNssVasDbCreator is responsible for creating VasDatabase.db.
+*
+*/
+
+
+#ifndef TNSSVASDBCREATOR_H
+#define TNSSVASDBCREATOR_H
+
+#include <e32base.h>
+#include <e32std.h>
+#include <e32cons.h>
+#include <s32file.h>
+#include <d32dbms.h>
+
+#include "nssvasdbkonsts.h"
+#include "nssvascvasdbsrvdef.h"
+// CLASS DECLARATION
+
+/**
+*
+*  The TNssVasDbCreator class definition. 
+* 
+*  @lib VASInternal.lib
+*  @since 2.0
+*/
+class TNssVasDbCreator
+{
+public:
+	
+	/**
+    * Constructor 
+    * @since 2.0
+    * @param 
+    * @return 
+    */
+	TNssVasDbCreator();
+
+	/**
+    * Method to create vasdatabase.db and its tables 
+    * @since 2.0
+    * @param "RDbs& iDbSession" Database session handle
+    * @return none
+    */
+	void CreateVasDatabaseL( RDbs& iDbSession );
+
+private:
+    /**
+    * Creates the tables and indices of the database
+    */
+	void CreateTablesAndIndiciesL( RDbNamedDatabase& aDatabase );
+
+    /**
+    * Creates the context table
+    */
+	void CreateContextTableL( RDbNamedDatabase& aDatabase );
+
+    /**
+    * Creates the index of the context table
+    */
+	void CreateContextIndexL( RDbNamedDatabase& aDatabase );
+
+    /**
+    * Creates the tag table
+    */
+    void CreateTagTableL( RDbNamedDatabase& aDatabase );
+
+    /**
+    * Creates the index of the tag table
+    */
+	void CreateTagIndexL( RDbNamedDatabase& aDatabase );
+
+    /**
+    * Creates the RRD table
+    */
+    void CreateRRDTableL( RDbNamedDatabase& aDatabase );
+    
+    /**
+    * Creates indeices for RRD tables
+    */
+    void CreateRRDIndexL( RDbNamedDatabase& aDatabase );
+
+    /**
+    * Creates the write lock table
+    */
+    void CreateWriteLockTableL( RDbNamedDatabase& aDatabase );
+    
+    /**
+    * Creates index for a given table and column. Leaves if creation fails.
+    * Leave codes are the same as error codes in RDbNamedDatabase::CreateIndex + 
+    * general out of memory
+    * @param anIndexName Name of the index to create
+    * @param aColumnName Name of the column to index on
+    * @param aUnique ETrue if index should be unique, EFalse otherwise
+    * @param aTableName Name of the table for which the index should be created
+    */
+    void CreateSingleColumnIndexL( RDbNamedDatabase& aDatabase, const TDesC& anIndexName,
+                 const TDesC& aColumnName, const TBool aUnique, const TDesC& aTableName);
+    
+    /**
+    * Creates index for a given table and columns. Leaves if creation fails.
+    * Leave codes are the same as error codes in RDbNamedDatabase::CreateIndex + 
+    * general out of memory
+    * @param anIndexName Name of the index to create
+    * @param aFirstColumnName Name of the first column to index on
+    * @param aSecondColumnName Name of the second column to index on
+    * @param aUnique ETrue if index should be unique, EFalse otherwise
+    * @param aTableName Name of the table for which the index should be created
+    */
+    void CreateTwoColumnIndexL( const TDesC& anIndexName, 
+                                const TDesC& aFirstColumnName, 
+                                const TDesC& aSecondColumnName, 
+                                const TBool aUnique, const TDesC& aTableName);
+
+};
+
+#endif // TVASDBCREATOR_H