smf/smfcredentialmgr/smfcredmgrserver/src/smfcredmgrdb.cpp
changeset 18 013a02bf2bb0
parent 14 a469c0e6e7fb
equal deleted inserted replaced
17:106a4bfcb866 18:013a02bf2bb0
     1 /**
     1 /**
     2  * SmfCredMgrDb.cpp
     2  * Copyright (c) 2010 Sasken Communication Technologies Ltd.
       
     3  * All rights reserved.
       
     4  * This component and the accompanying materials are made available
       
     5  * under the terms of the "Eclipse Public License v1.0"
       
     6  * which accompanies  this distribution, and is available
       
     7  * at the URL "http://www.eclipse.org/legal/epl-v10.html"
     3  *
     8  *
     4  *  Created on: Apr 27, 2010
     9  * Initial Contributors:
     5  *      Author: pritam
    10  * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
     6  */
    11  * 
       
    12  * Contributors:
       
    13  * Pritam Roy Biswas, Nalina Hariharan, Sasken Communication Technologies Ltd
       
    14  *
       
    15  * Description:
       
    16  * This header defines the database-table and the creation of database that will be 
       
    17  * used by the Credential Manager Server to store all the credentials related 
       
    18  * to an Authentication Application
       
    19  */
       
    20 
       
    21 #include <BAUTILS.H>
     7 
    22 
     8 #include "smfcredmgrdb.h"
    23 #include "smfcredmgrdb.h"
     9 #include <BAUTILS.H>
    24 
    10 
    25 /**
       
    26  * NewL Method
       
    27  * @return The constructed CSmfCredMgrDb instance
       
    28  */
    11 CSmfCredMgrDb* CSmfCredMgrDb::NewL()
    29 CSmfCredMgrDb* CSmfCredMgrDb::NewL()
    12 	{
    30 	{
    13 	CSmfCredMgrDb* self = CSmfCredMgrDb::NewLC();
    31 	CSmfCredMgrDb* self = CSmfCredMgrDb::NewLC();
    14 	CleanupStack::Pop(self);
    32 	CleanupStack::Pop(self);
    15 	return (self);
    33 	return (self);
    16 	}
    34 	}
    17 
    35 
       
    36 /**
       
    37  * NewLC Method
       
    38  * @return The constructed CSmfCredMgrDb instance
       
    39  */
    18 CSmfCredMgrDb* CSmfCredMgrDb::NewLC()
    40 CSmfCredMgrDb* CSmfCredMgrDb::NewLC()
    19 	{
    41 	{
    20 	CSmfCredMgrDb* self = new (ELeave) CSmfCredMgrDb();
    42 	CSmfCredMgrDb* self = new (ELeave) CSmfCredMgrDb();
    21 	CleanupStack::PushL(self);
    43 	CleanupStack::PushL(self);
    22 	self->ConstructL();
    44 	self->ConstructL();
    23 	return (self);
    45 	return (self);
    24 	}
    46 	}
    25 
    47 
       
    48 /**
       
    49  * Constructor
       
    50  */
    26 CSmfCredMgrDb::CSmfCredMgrDb()
    51 CSmfCredMgrDb::CSmfCredMgrDb()
    27 	{
    52 	{
    28 	RDebug::Printf("in constructor db");
    53 	RDebug::Printf("in constructor db");
    29 	}
    54 	}
    30 
    55 
    49 	else if (BaflUtils::FileExists(iFileSession, dbFileName))
    74 	else if (BaflUtils::FileExists(iFileSession, dbFileName))
    50 		{
    75 		{
    51 		
    76 		
    52 		//Reset if necessary
    77 		//Reset if necessary
    53 		}
    78 		}
    54 
    79 	}
    55 	}
    80 
    56 
    81 /**
       
    82  * Destructor
       
    83  */
    57 CSmfCredMgrDb::~CSmfCredMgrDb()
    84 CSmfCredMgrDb::~CSmfCredMgrDb()
    58 	{
    85 	{
    59 	//delete db file
    86 	//delete db file
    60 
       
    61 	iDataBase.Close();
    87 	iDataBase.Close();
    62 	iFileSession.Close();
    88 	iFileSession.Close();
    63 	RDebug::Printf("in destructor db");
    89 	RDebug::Printf("in destructor db");
    64 	}
    90 	}
    65 
    91 
       
    92 /**
       
    93  * Method to create the Db file
       
    94  * @param aFileName The file name
       
    95  * @return Returns KErrNone if success. Refer ESqlDbError and system-wide 
       
    96  * error codes for detailed error description.
       
    97  */
       
    98 TInt CSmfCredMgrDb::CreateDbFile(const TFileName &aFileName)
       
    99 	{
       
   100 	TInt err(KErrNone);
       
   101 	err = iDataBase.Create(aFileName);
       
   102 	if (err != KErrNone)
       
   103 		{
       
   104 		//the empty file is deleted in case of error
       
   105 		DeleteDbFile(aFileName);
       
   106 		}
       
   107 	return err;
       
   108 	}
       
   109 
       
   110 /**
       
   111  * Method to create the Db tables
       
   112  * @param aFileName The Db file name
       
   113  */
    66 void CSmfCredMgrDb::CompleteDBCreationL(const TFileName &aFileName)
   114 void CSmfCredMgrDb::CompleteDBCreationL(const TFileName &aFileName)
    67 	{
   115 	{
    68 	User::LeaveIfError(CreateDbFile(aFileName));
   116 	User::LeaveIfError(CreateDbFile(aFileName));
    69 	User::LeaveIfError(PluginIDTableCreate());
   117 	User::LeaveIfError(PluginIDTableCreate());
    70 	User::LeaveIfError(URLTableCreate());
   118 	User::LeaveIfError(URLTableCreate());
    71 	User::LeaveIfError(RegTokenValidityTableCreate());
   119 	User::LeaveIfError(RegTokenValidityTableCreate());
    72 	User::LeaveIfError(AuthParamsTableCreate());
   120 	User::LeaveIfError(AuthParamsTableCreate());
    73 	}
   121 	}
    74 
   122 
    75 TInt CSmfCredMgrDb::CreateDbFile(const TFileName &aFileName)
   123 /**
    76 	{
   124  * Creates the Plugin Id table
    77 	TInt err(KErrNone);
   125  * @return Returns KErrNone if success. Refer ESqlDbError and system-wide 
    78 	err = iDataBase.Create(aFileName);
   126  * error codes for detailed error description. 
    79 	if (err != KErrNone)
   127  */
    80 		{
       
    81 		//the empty file is deleted in case of error
       
    82 		DeleteDbFile(aFileName);
       
    83 		}
       
    84 	return err;
       
    85 
       
    86 	}
       
    87 
       
    88 TInt CSmfCredMgrDb::PluginIDTableCreate()
   128 TInt CSmfCredMgrDb::PluginIDTableCreate()
    89 	{
   129 	{
    90 	TInt err(KErrNone);
   130 	TInt err(KErrNone);
    91 	err = iDataBase.Exec(KCreatePluginIDTable);
   131 	err = iDataBase.Exec(KCreatePluginIDTable);
    92 	if (err >= 0)
   132 	if (err >= 0)
    96 	//delete file in case of incomplete table creation
   136 	//delete file in case of incomplete table creation
    97 	DeleteDbFile(iDbFilePathName);
   137 	DeleteDbFile(iDbFilePathName);
    98 	return err;
   138 	return err;
    99 	}
   139 	}
   100 
   140 
       
   141 /**
       
   142  * Creates the URL table
       
   143  * @return Returns KErrNone if success. Refer ESqlDbError and system-wide 
       
   144  * error codes for detailed error description.
       
   145  */
   101 TInt CSmfCredMgrDb::URLTableCreate()
   146 TInt CSmfCredMgrDb::URLTableCreate()
   102 	{
   147 	{
   103 	TInt err(KErrNone);
   148 	TInt err(KErrNone);
   104 	err = iDataBase.Exec(KCreateURLTable);
   149 	err = iDataBase.Exec(KCreateURLTable);
   105 	if (err >= 0)
   150 	if (err >= 0)
   109 	//delete file in case of incomplete table creation
   154 	//delete file in case of incomplete table creation
   110 	DeleteDbFile(iDbFilePathName);
   155 	DeleteDbFile(iDbFilePathName);
   111 	return err;
   156 	return err;
   112 	}
   157 	}
   113 
   158 
       
   159 /**
       
   160  * Creates the RegistrationToken-Validity Table
       
   161  * @return Returns KErrNone if success. Refer ESqlDbError and system-wide 
       
   162  * error codes for detailed error description.
       
   163  */
   114 TInt CSmfCredMgrDb::RegTokenValidityTableCreate()
   164 TInt CSmfCredMgrDb::RegTokenValidityTableCreate()
   115 	{
   165 	{
   116 	TInt err(KErrNone);
   166 	TInt err(KErrNone);
   117 	err = iDataBase.Exec(KCreateRegTokenValidityTable);
   167 	err = iDataBase.Exec(KCreateRegTokenValidityTable);
   118 	if (err >= 0)
   168 	if (err >= 0)
   122 	//delete file in case of incomplete table creation
   172 	//delete file in case of incomplete table creation
   123 	DeleteDbFile(iDbFilePathName);
   173 	DeleteDbFile(iDbFilePathName);
   124 	return err;
   174 	return err;
   125 	}
   175 	}
   126 
   176 
       
   177 /**
       
   178  * Creates the Authentication Parameters Table
       
   179  * @return Returns KErrNone if success. Refer ESqlDbError and system-wide 
       
   180  * error codes for detailed error description.
       
   181  */
   127 TInt CSmfCredMgrDb::AuthParamsTableCreate()
   182 TInt CSmfCredMgrDb::AuthParamsTableCreate()
   128 	{
   183 	{
   129 	TInt err(KErrNone);
   184 	TInt err(KErrNone);
   130 	err = iDataBase.Exec(KCreateAuthParamsTable);
   185 	err = iDataBase.Exec(KCreateAuthParamsTable);
   131 	if (err >= 0)
   186 	if (err >= 0)
   135 	//delete file in case of incomplete table creation
   190 	//delete file in case of incomplete table creation
   136 	DeleteDbFile(iDbFilePathName);
   191 	DeleteDbFile(iDbFilePathName);
   137 	return err;
   192 	return err;
   138 	}
   193 	}
   139 
   194 
       
   195 /**
       
   196  * Deletes the Db 
       
   197  * @param aFileName The Db file name
       
   198  * @return Returns KErrNone if success. Refer ESqlDbError and system-wide 
       
   199  * error codes for detailed error description.
       
   200  */
   140 TInt CSmfCredMgrDb::DeleteDbFile(const TFileName &aFileName)
   201 TInt CSmfCredMgrDb::DeleteDbFile(const TFileName &aFileName)
   141 	{
   202 	{
   142 	//close the sql handle before deleting
   203 	//close the sql handle before deleting
   143 	iDataBase.Close();
   204 	iDataBase.Close();
   144 	TInt err = iDataBase.Delete(aFileName);
   205 	TInt err = iDataBase.Delete(aFileName);