smf/smfcredentialmgr/smfcredmgrserver/inc/smfcredmgrdb.h
author cgandhi <chandradeep.gandhi@sasken.com>
Wed, 23 Jun 2010 19:51:49 +0530
changeset 14 a469c0e6e7fb
child 18 013a02bf2bb0
permissions -rw-r--r--
changes for SmfPost, SmfCredentialMgr, PLuginManager, SmfServer. Adding Sample Plugins and Sample Client Applications.

/**
 * Copyright (c) 2010 Sasken Communication Technologies Ltd.
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the "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:
 * Pritam Roy Biswas, Sasken Communication Technologies Ltd - Initial contribution
 *
 * Description:
 * This header defines the database-table and the creation of database that will be 
 *  used by the Credential Manager Server to store all 
 *  the credentials related to an Authentication Application
 */
#ifndef SMFCREDMGRDB_H_
#define SMFCREDMGRDB_H_
#include <sqldb.h>
#include <e32base.h>
#include <f32file.h>

//the private folder of the app
_LIT(KSmfCredMgrDbPrivateDir, "C:\\private\\EF0FFBD7\\");
_LIT(KSmfCredMgrDbFileName, "[EF0FFBD7]CREDMGRDB.db");

//Create Table
_LIT8(KCreatePluginIDTable,"CREATE TABLE PluginIDTable(PluginId TEXT PRIMARY KEY, AuthAppId TEXT UNIQUE, IsEnabled INT)");
_LIT8(KCreateURLTable,"CREATE TABLE URLTable(AuthAppId TEXT UNIQUE, URL TEXT,PRIMARY KEY(AuthAppId,URL))");
_LIT8(KCreateRegTokenValidityTable,"CREATE TABLE RegTokenValidityTable(RegistrationToken TEXT PRIMARY KEY, AuthAppId TEXT UNIQUE, Validity BIGINT)");
_LIT8(KCreateAuthParamsTable,"CREATE TABLE AuthParamsTable(AuthAppId TEXT UNIQUE, AuthKey TEXT, AuthSecret TEXT, PRIMARY KEY(AuthAppId,AuthKey))");

/**
 * The creator class of the server database.
 *  Derives from CBase
 */
class CSmfCredMgrDb : public CBase
	{
public:
	/**
	 * New Methods
	 */
	static CSmfCredMgrDb* NewL();
	/**
	 * New Methods
	 */
	static CSmfCredMgrDb* NewLC();

	/**
	 * destructor
	 */
	~CSmfCredMgrDb();

private:
	/**
	 * constructor
	 */
	CSmfCredMgrDb();

	/**
	 * two phase constructor
	 */
	void ConstructL();

	/**
	 * Method to create the Db file
	 * @param aFileName The file name
	 */
	TInt CreateDbFile(const TFileName &aFileName);

	/**
	 * Method to crete the Db tables
	 * @param aFileName The Db file name
	 */
	void CompleteDBCreationL(const TFileName &aFileName);

	/**
	 * Creates the Plugin Id table 
	 */
	TInt PluginIDTableCreate();

	/**
	 * Creates the URL table 
	 */
	TInt URLTableCreate();

	/**
	 * Creates the RegistrationToken-Validity Table  
	 */
	TInt RegTokenValidityTableCreate();

	/**
	 * Creates the Authentication Parameters Table  
	 */
	TInt AuthParamsTableCreate();

	/**
	 * Deletes the Db 
	 * @param aFileName The Db file name
	 */
	TInt DeleteDbFile(const TFileName &aFileName);

private:
	RFs iFileSession;
	TFileName iDbFilePathName;
	RSqlDatabase iDataBase;
	};

#endif /* SMFCREDMGRDB_H_ */