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); |