diff -r b5d63d5fc252 -r a469c0e6e7fb smf/smfcredentialmgr/smfcredmgrserver/src/smfcredmgrdb.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/smfcredentialmgr/smfcredmgrserver/src/smfcredmgrdb.cpp Wed Jun 23 19:51:49 2010 +0530 @@ -0,0 +1,147 @@ +/** + * SmfCredMgrDb.cpp + * + * Created on: Apr 27, 2010 + * Author: pritam + */ + +#include "smfcredmgrdb.h" +#include + +CSmfCredMgrDb* CSmfCredMgrDb::NewL() + { + CSmfCredMgrDb* self = CSmfCredMgrDb::NewLC(); + CleanupStack::Pop(self); + return (self); + } + +CSmfCredMgrDb* CSmfCredMgrDb::NewLC() + { + CSmfCredMgrDb* self = new (ELeave) CSmfCredMgrDb(); + CleanupStack::PushL(self); + self->ConstructL(); + return (self); + } + +CSmfCredMgrDb::CSmfCredMgrDb() + { + RDebug::Printf("in constructor db"); + } + +void CSmfCredMgrDb::ConstructL() + { + //create db file + TInt err = iFileSession.Connect(); + User::LeaveIfError(err); + + err = iFileSession.MkDirAll(KSmfCredMgrDbPrivateDir); + + TFileName dbFileName = KSmfCredMgrDbPrivateDir(); + dbFileName.Append(KSmfCredMgrDbFileName); + iDbFilePathName = dbFileName; + if (!BaflUtils::FileExists(iFileSession, dbFileName)) + { + err = iFileSession.SetSessionToPrivate(EDriveC); + + // no database exists so we make one + CompleteDBCreationL(dbFileName); + } + else if (BaflUtils::FileExists(iFileSession, dbFileName)) + { + + //Reset if necessary + } + + } + +CSmfCredMgrDb::~CSmfCredMgrDb() + { + //delete db file + + iDataBase.Close(); + iFileSession.Close(); + RDebug::Printf("in destructor db"); + } + +void CSmfCredMgrDb::CompleteDBCreationL(const TFileName &aFileName) + { + User::LeaveIfError(CreateDbFile(aFileName)); + User::LeaveIfError(PluginIDTableCreate()); + User::LeaveIfError(URLTableCreate()); + User::LeaveIfError(RegTokenValidityTableCreate()); + User::LeaveIfError(AuthParamsTableCreate()); + } + +TInt CSmfCredMgrDb::CreateDbFile(const TFileName &aFileName) + { + TInt err(KErrNone); + err = iDataBase.Create(aFileName); + if (err != KErrNone) + { + //the empty file is deleted in case of error + DeleteDbFile(aFileName); + } + return err; + + } + +TInt CSmfCredMgrDb::PluginIDTableCreate() + { + TInt err(KErrNone); + err = iDataBase.Exec(KCreatePluginIDTable); + if (err >= 0) + { + return KErrNone; + } + //delete file in case of incomplete table creation + DeleteDbFile(iDbFilePathName); + return err; + } + +TInt CSmfCredMgrDb::URLTableCreate() + { + TInt err(KErrNone); + err = iDataBase.Exec(KCreateURLTable); + if (err >= 0) + { + return KErrNone; + } + //delete file in case of incomplete table creation + DeleteDbFile(iDbFilePathName); + return err; + } + +TInt CSmfCredMgrDb::RegTokenValidityTableCreate() + { + TInt err(KErrNone); + err = iDataBase.Exec(KCreateRegTokenValidityTable); + if (err >= 0) + { + return KErrNone; + } + //delete file in case of incomplete table creation + DeleteDbFile(iDbFilePathName); + return err; + } + +TInt CSmfCredMgrDb::AuthParamsTableCreate() + { + TInt err(KErrNone); + err = iDataBase.Exec(KCreateAuthParamsTable); + if (err >= 0) + { + return KErrNone; + } + //delete file in case of incomplete table creation + DeleteDbFile(iDbFilePathName); + return err; + } + +TInt CSmfCredMgrDb::DeleteDbFile(const TFileName &aFileName) + { + //close the sql handle before deleting + iDataBase.Close(); + TInt err = iDataBase.Delete(aFileName); + return err; + } +