|
1 /* |
|
2 * Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies). |
|
3 * All rights reserved. |
|
4 * This component and the accompanying materials are made available |
|
5 * under the terms of "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". |
|
8 * |
|
9 * Initial Contributors: |
|
10 * Nokia Corporation - initial contribution. |
|
11 * |
|
12 * Contributors: |
|
13 * |
|
14 * Description: notepad database |
|
15 * |
|
16 */ |
|
17 |
|
18 |
|
19 #include <sysutil.h> |
|
20 |
|
21 |
|
22 #include <txtetext.h> |
|
23 #include "nsmlnotepadDatabase.h" |
|
24 #include <nsmlnotepaddatastoreformat.rsg> |
|
25 |
|
26 #include "nsmlnotepadlogging.h" |
|
27 |
|
28 |
|
29 // ----------------------------------------------------------------------------- |
|
30 // CNSmlNotepadDatabase::NewL |
|
31 // ----------------------------------------------------------------------------- |
|
32 // |
|
33 CNSmlNotepadDatabase* CNSmlNotepadDatabase::NewL() |
|
34 { |
|
35 _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::NewL(): begin"); |
|
36 |
|
37 CNSmlNotepadDatabase *instance = new(ELeave) CNSmlNotepadDatabase(); |
|
38 CleanupStack::PushL(instance); |
|
39 instance->ConstructL(); |
|
40 CleanupStack::Pop(instance); |
|
41 |
|
42 _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::NewL(): end"); |
|
43 return instance; |
|
44 } |
|
45 // ----------------------------------------------------------------------------- |
|
46 // CNSmlNotepadDatabase::~CNSmlNotepadDatabase() |
|
47 // ----------------------------------------------------------------------------- |
|
48 // |
|
49 CNSmlNotepadDatabase::~CNSmlNotepadDatabase() |
|
50 { |
|
51 _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::~CNSmlNotepadDatabase(): begin"); |
|
52 |
|
53 if(iOpened) |
|
54 { |
|
55 iDatabase.Close(); |
|
56 } |
|
57 |
|
58 if(iDataFile) |
|
59 { |
|
60 delete iDataFile; |
|
61 iDataFile = NULL; |
|
62 } |
|
63 iTable.Close(); |
|
64 iDbs.Close(); |
|
65 _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::~CNSmlNotepadDatabase(): end"); |
|
66 } |
|
67 // ----------------------------------------------------------------------------- |
|
68 // CNSmlNotepadDatabase::CNSmlNotepadDatabase() |
|
69 // ----------------------------------------------------------------------------- |
|
70 // |
|
71 CNSmlNotepadDatabase::CNSmlNotepadDatabase() |
|
72 { |
|
73 _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::CNSmlNotepadDatabase(): begin"); |
|
74 |
|
75 iOpened = EFalse; |
|
76 |
|
77 _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::CNSmlNotepadDatabase(): end"); |
|
78 } |
|
79 |
|
80 // ----------------------------------------------------------------------------- |
|
81 // CNSmlNotepadDatabase::ConstructL |
|
82 // ----------------------------------------------------------------------------- |
|
83 // |
|
84 void CNSmlNotepadDatabase::ConstructL() |
|
85 { |
|
86 _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::ConstructL: begin"); |
|
87 |
|
88 User::LeaveIfError(iDbs.Connect()); |
|
89 |
|
90 iDataFile = HBufC::NewL(KMaxFileLength); |
|
91 iDataFile->Des().Copy(KNpdDataFile); |
|
92 |
|
93 _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::ConstructL: end"); |
|
94 } |
|
95 |
|
96 // ----------------------------------------------------------------------------- |
|
97 // CNSmlNotepadDatabase::OpenL |
|
98 // ----------------------------------------------------------------------------- |
|
99 // |
|
100 void CNSmlNotepadDatabase::OpenL() |
|
101 { |
|
102 _NOTEPAD_DBG_FILE("CCNSmlNotepadDatabase::OpenL(): begin"); |
|
103 _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::OpenL(): end"); |
|
104 OpenL(*iDataFile); |
|
105 } |
|
106 // ----------------------------------------------------------------------------- |
|
107 // TInt CNSmlNotepadDatabase::OpenL(const TDesC& aStoreName) |
|
108 // ----------------------------------------------------------------------------- |
|
109 // |
|
110 void CNSmlNotepadDatabase::OpenL(const TDesC& aStoreName) |
|
111 { |
|
112 _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::OpenL(): begin"); |
|
113 |
|
114 TBuf<32> format; |
|
115 format.Copy(KSecure); |
|
116 format.Append(KSecureUid.Name()); |
|
117 |
|
118 TInt err(iDatabase.Open(iDbs,aStoreName,format)); |
|
119 RFs fsession; |
|
120 switch ( err ) |
|
121 { |
|
122 case KErrNone: // database open succeed |
|
123 iOpened = ETrue; |
|
124 break; |
|
125 case KErrArgument: // when the datafile is empty |
|
126 case KErrNotSupported: // UID mismatch, corrupted |
|
127 case KErrEof: // read error, corrupted |
|
128 case KErrCorrupt: |
|
129 iDatabase.Close(); // indespensable for RFs::Delete() |
|
130 User::LeaveIfError(fsession.Connect()); |
|
131 fsession.Delete(*iDataFile); |
|
132 fsession.Close(); |
|
133 case KErrNotFound: |
|
134 TRAP(err,CreateDBL()); |
|
135 _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::OpenL(): after createDBL and before database open"); |
|
136 if( err == KErrNone) |
|
137 { |
|
138 iOpened = ETrue; |
|
139 } |
|
140 break; |
|
141 default: |
|
142 break; |
|
143 } |
|
144 _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::OpenL(): end"); |
|
145 User::Leave(err); |
|
146 } |
|
147 |
|
148 |
|
149 |
|
150 // ----------------------------------------------------------------------------- |
|
151 // CNSmlNotepadDatabase::AddNoteL |
|
152 // ----------------------------------------------------------------------------- |
|
153 // |
|
154 void CNSmlNotepadDatabase::AddNoteL(CNpdItem& aNote, TInt &aKey) |
|
155 { |
|
156 _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::AddNoteL(): begin"); |
|
157 |
|
158 if(!iOpened) |
|
159 { |
|
160 User::Leave(KErrNotReady); |
|
161 } |
|
162 |
|
163 if(!aNote.Content()) |
|
164 { |
|
165 User::Leave(KErrArgument); |
|
166 } |
|
167 |
|
168 TInt err(KErrNone); |
|
169 RDbView dbView; |
|
170 CleanupClosePushL(dbView); |
|
171 |
|
172 err = dbView.Prepare( |
|
173 iDatabase, TDbQuery(KNpdSqlInsert) ); |
|
174 |
|
175 if(err == KErrNone) |
|
176 { |
|
177 TRAP(err, |
|
178 dbView.InsertL(); |
|
179 dbView.SetColL(ENotepadUpdateTime, aNote.LastModified()); |
|
180 dbView.SetColL(ENotepadMemo, aNote.Content()->Des()); |
|
181 dbView.PutL(); |
|
182 ); |
|
183 if (err == KErrNone) |
|
184 { |
|
185 aKey = dbView.ColInt32(ENotepadKey); |
|
186 } |
|
187 else |
|
188 { |
|
189 dbView.Close(); |
|
190 Rollback(); |
|
191 } |
|
192 } |
|
193 |
|
194 CleanupStack::PopAndDestroy(); // dbView |
|
195 iDatabase.Compact(); |
|
196 |
|
197 _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::AddNoteL(): end"); |
|
198 User::Leave(err); |
|
199 } |
|
200 |
|
201 // ----------------------------------------------------------------------------- |
|
202 // CNSmlNotepadDatabase::DeleteNoteL |
|
203 // ----------------------------------------------------------------------------- |
|
204 // |
|
205 void CNSmlNotepadDatabase::DeleteNoteL(const TInt aKey) |
|
206 { |
|
207 _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::DeleteNoteL(): begin"); |
|
208 |
|
209 if(!iOpened) |
|
210 { |
|
211 User::Leave(KErrNotReady); |
|
212 } |
|
213 |
|
214 TInt err(KErrNone); |
|
215 TBuf<KNpdSqlDeleteHeadSize> sql; |
|
216 sql.Append(KNpdSqlDeleteHead); |
|
217 sql.AppendNum(aKey); |
|
218 |
|
219 TInt rowCount( iDatabase.Execute(sql) ); |
|
220 |
|
221 if(rowCount > 0) |
|
222 { |
|
223 err = KErrNone; |
|
224 } |
|
225 else |
|
226 { |
|
227 _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::DeleteNoteL(): item not found"); |
|
228 err = KErrNotFound; |
|
229 } |
|
230 |
|
231 _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::DeleteNoteL(): end"); |
|
232 User::Leave(err); |
|
233 } |
|
234 |
|
235 |
|
236 // ----------------------------------------------------------------------------- |
|
237 // CNSmlNotepadDatabase::Close |
|
238 // ----------------------------------------------------------------------------- |
|
239 // |
|
240 void CNSmlNotepadDatabase::Close() |
|
241 { |
|
242 _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::Close(): begin"); |
|
243 |
|
244 if(iOpened) |
|
245 { |
|
246 iDatabase.Compact(); |
|
247 iDatabase.Close(); |
|
248 iOpened = EFalse; |
|
249 } |
|
250 |
|
251 _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::Close(): end"); |
|
252 } |
|
253 |
|
254 // ----------------------------------------------------------------------------- |
|
255 // CNSmlNotepadDatabase::GetNoteL |
|
256 // ----------------------------------------------------------------------------- |
|
257 // |
|
258 void CNSmlNotepadDatabase::GetNoteL(const TInt aKey, CNpdItem& aItem) |
|
259 { |
|
260 _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::GetNoteL(): begin"); |
|
261 |
|
262 TInt err(KErrNone); |
|
263 |
|
264 if(!iOpened) |
|
265 { |
|
266 _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::GetNoteL(): not opened"); |
|
267 User::Leave(KErrNotReady); |
|
268 } |
|
269 |
|
270 TBuf<KNpdSqlStringMaxLength> sql; |
|
271 sql.Format(KNpdSqlFormatSeek, aKey); |
|
272 |
|
273 RDbView dbView; |
|
274 CleanupClosePushL(dbView); |
|
275 |
|
276 User::LeaveIfError(dbView.Prepare( |
|
277 iDatabase, TDbQuery(sql), RDbView::EReadOnly ) ); |
|
278 |
|
279 User::LeaveIfError(dbView.EvaluateAll()); |
|
280 |
|
281 TInt isAtRow(dbView.FirstL()); |
|
282 if ( isAtRow ) |
|
283 { |
|
284 _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::GetNoteL(): if entered"); |
|
285 HBufC* content = NULL; |
|
286 dbView.GetL(); |
|
287 |
|
288 TInt key = dbView.ColInt32(ENotepadKey); |
|
289 TTime modified = dbView.ColTime(ENotepadUpdateTime); |
|
290 |
|
291 RDbColReadStream blob; |
|
292 blob.OpenLC(dbView, ENotepadMemo); |
|
293 TInt colLength( dbView.ColLength(ENotepadMemo) ); |
|
294 content = HBufC::NewLC(colLength); |
|
295 TPtr ptr = content->Des(); |
|
296 |
|
297 blob.ReadL(ptr, colLength); |
|
298 |
|
299 aItem.Set(key,modified, content); |
|
300 CleanupStack::Pop(content); // content |
|
301 CleanupStack::PopAndDestroy(); // blob |
|
302 } |
|
303 else |
|
304 { |
|
305 err = KErrNotFound; |
|
306 } |
|
307 |
|
308 CleanupStack::PopAndDestroy(); // dbView/ |
|
309 |
|
310 _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::GetNoteL(): end"); |
|
311 User::Leave(err); |
|
312 } |
|
313 |
|
314 // ----------------------------------------------------------------------------- |
|
315 // CNSmlNotepadDatabase::UpdateNoteL |
|
316 // ----------------------------------------------------------------------------- |
|
317 // |
|
318 void CNSmlNotepadDatabase::UpdateNoteL(const TInt aKey, CNpdItem& aItem) |
|
319 { |
|
320 TInt err(KErrNone); |
|
321 _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::UpdateNoteL(): begin"); |
|
322 |
|
323 if(!iOpened) |
|
324 { |
|
325 _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::UpdateNoteL(): not ready"); |
|
326 User::Leave(KErrNotReady); |
|
327 } |
|
328 |
|
329 TBuf<KNpdSqlStringMaxLength> sql; |
|
330 sql.Format(KNpdSqlFormatSeek, aKey); |
|
331 |
|
332 RDbView dbView; |
|
333 CleanupClosePushL(dbView); |
|
334 |
|
335 User::LeaveIfError(dbView.Prepare( |
|
336 iDatabase, TDbQuery(sql), RDbView::EUpdatable ) ); |
|
337 |
|
338 User::LeaveIfError(dbView.EvaluateAll()); |
|
339 |
|
340 TInt isAtRow(dbView.FirstL()); |
|
341 if ( isAtRow ) |
|
342 { |
|
343 |
|
344 TRAP(err, |
|
345 dbView.UpdateL(); |
|
346 dbView.SetColL(ENotepadUpdateTime, aItem.LastModified()); |
|
347 dbView.SetColL(ENotepadMemo, aItem.Content()->Des()); |
|
348 dbView.PutL(); |
|
349 ); |
|
350 if (err != KErrNone) |
|
351 { |
|
352 dbView.Close(); |
|
353 Rollback(); |
|
354 } |
|
355 } |
|
356 else |
|
357 { |
|
358 err = KErrNotFound; |
|
359 } |
|
360 |
|
361 CleanupStack::PopAndDestroy(); // dbView |
|
362 iDatabase.Compact(); |
|
363 |
|
364 _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::UpdateNoteL(): end"); |
|
365 User::Leave(err); |
|
366 } |
|
367 // ----------------------------------------------------------------------------- |
|
368 // CNSmlNotepadDatabase::Reset |
|
369 // ----------------------------------------------------------------------------- |
|
370 // |
|
371 TInt CNSmlNotepadDatabase::Reset() |
|
372 { |
|
373 _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::Reset(): begin"); |
|
374 |
|
375 TInt err(KErrNone); |
|
376 |
|
377 if(!iOpened) |
|
378 { |
|
379 return KErrNotReady; |
|
380 } |
|
381 |
|
382 TBuf<KNpdSqlDeleteHeadSize> sql; |
|
383 sql.Append(KNpdSqlDeleteAll); |
|
384 |
|
385 TInt rowCount( iDatabase.Execute(sql) ); |
|
386 |
|
387 if(rowCount < 0) |
|
388 { |
|
389 err = rowCount; |
|
390 } |
|
391 |
|
392 if (err == KErrNone && iDatabase.InTransaction()) |
|
393 { |
|
394 err = iDatabase.Commit(); |
|
395 } |
|
396 |
|
397 if (err == KErrNone && rowCount > 0) |
|
398 { |
|
399 err = iDatabase.Compact(); |
|
400 } |
|
401 |
|
402 _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::Reset(): begin"); |
|
403 return err; |
|
404 } |
|
405 // ----------------------------------------------------------------------------- |
|
406 // CNSmlNotepadDatabase::IsOpen |
|
407 // ----------------------------------------------------------------------------- |
|
408 // |
|
409 TBool CNSmlNotepadDatabase::IsOpen() |
|
410 { |
|
411 _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::IsOpen(): begin"); |
|
412 _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::IsOpen(): end"); |
|
413 return iOpened; |
|
414 } |
|
415 // ----------------------------------------------------------------------------- |
|
416 // void CNSmlNotepadDatabase::GetDefaultDatastoreName(TDes& aStoreName) |
|
417 // ----------------------------------------------------------------------------- |
|
418 // |
|
419 void CNSmlNotepadDatabase::GetDefaultDatastoreName(TDes& aStoreName) |
|
420 { |
|
421 _NOTEPAD_DBG_FILE("CCNSmlNotepadDatabase::GetDefaultDatastoreName(): begin"); |
|
422 |
|
423 aStoreName.Copy(*iDataFile); |
|
424 |
|
425 _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::GetDefaultDatastoreName(): end"); |
|
426 } |
|
427 // ----------------------------------------------------------------------------- |
|
428 // CDesCArray* CNSmlNotepadDatabase::ListDatabasesL() |
|
429 // ----------------------------------------------------------------------------- |
|
430 // |
|
431 CDesCArray* CNSmlNotepadDatabase::ListDatabasesL() |
|
432 { |
|
433 _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::ListDatabasesL(): begin"); |
|
434 |
|
435 CDesCArrayFlat *arr = new (ELeave)CDesCArrayFlat(1); |
|
436 CleanupStack::PushL(arr); |
|
437 arr->AppendL(*iDataFile); |
|
438 CleanupStack::Pop(arr); |
|
439 |
|
440 _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::ListDatabasesL(): end"); |
|
441 return arr; |
|
442 } |
|
443 // ----------------------------------------------------------------------------- |
|
444 // TInt CNSmlNotepadDatabase::FirstL() |
|
445 // ----------------------------------------------------------------------------- |
|
446 // |
|
447 TInt CNSmlNotepadDatabase::FirstL() |
|
448 { |
|
449 _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::FirstL(): begin"); |
|
450 TInt ret = -1; |
|
451 if(!iOpened) OpenL(); |
|
452 iTable.Close(); |
|
453 TInt err = iTable.Open(iDatabase,KNpdTableName,RDbRowSet::EReadOnly); |
|
454 if(err == KErrNone) |
|
455 { |
|
456 iTable.BeginningL(); |
|
457 if(iTable.FirstL()) |
|
458 { |
|
459 _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::FirstL(): if firstL"); |
|
460 iTable.GetL(); |
|
461 _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::FirstL(): after GetL"); |
|
462 ret = iTable.ColInt(1); |
|
463 } |
|
464 _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::FirstL(): end"); |
|
465 } |
|
466 return ret; |
|
467 } |
|
468 // ----------------------------------------------------------------------------- |
|
469 // TInt CNSmlNotepadDatabase::NextL() |
|
470 // ----------------------------------------------------------------------------- |
|
471 // |
|
472 TInt CNSmlNotepadDatabase::NextL() |
|
473 { |
|
474 _NOTEPAD_DBG_FILE("NSmlNotepadDatabase::NextL(): begin"); |
|
475 |
|
476 TInt ret = -1; |
|
477 if(iTable.AtRow()) |
|
478 { |
|
479 if(iTable.NextL()) |
|
480 { |
|
481 iTable.GetL(); |
|
482 ret = iTable.ColInt(1); |
|
483 } |
|
484 } |
|
485 |
|
486 _NOTEPAD_DBG_FILE("NSmlNotepadDatabase::NextL(): end"); |
|
487 return ret; |
|
488 } |
|
489 // ----------------------------------------------------------------------------- |
|
490 // TInt CNSmlNotepadDatabase::LastL() |
|
491 // ----------------------------------------------------------------------------- |
|
492 // |
|
493 TInt CNSmlNotepadDatabase::LastL() |
|
494 { |
|
495 _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::LastL(): begin"); |
|
496 |
|
497 TInt ret = -1; |
|
498 if(iTable.LastL()) |
|
499 { |
|
500 iTable.GetL(); |
|
501 ret = iTable.ColInt(1); |
|
502 } |
|
503 |
|
504 _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::LastL(): end"); |
|
505 return ret; |
|
506 } |
|
507 |
|
508 // ----------------------------------------------------------------------------- |
|
509 // CNSmlNotepadDatabase::CreateColSetLC |
|
510 // ----------------------------------------------------------------------------- |
|
511 // |
|
512 CDbColSet* CNSmlNotepadDatabase::CreateColSetLC() |
|
513 { |
|
514 _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::CreateColSetLC: begin"); |
|
515 |
|
516 CDbColSet* columns = CDbColSet::NewLC(); |
|
517 TDbCol col(KNpdKey, EDbColInt32); |
|
518 col.iAttributes = TDbCol::ENotNull | TDbCol::EAutoIncrement; |
|
519 columns->AddL(col); |
|
520 |
|
521 col.iName = KNpdUpdateTime; |
|
522 col.iType = EDbColDateTime; |
|
523 col.iAttributes = TDbCol::ENotNull; |
|
524 columns->AddL(col); |
|
525 |
|
526 col.iName = KNpdMemo; |
|
527 col.iType = EDbColLongText; |
|
528 col.iAttributes = TDbCol::ENotNull; |
|
529 columns->AddL(col); |
|
530 |
|
531 _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::CreateColSetLC: end"); |
|
532 return columns; // columns stays on CleanupStack |
|
533 } |
|
534 |
|
535 // ----------------------------------------------------------------------------- |
|
536 // CNSmlNotepadDatabase::CreateDBL |
|
537 // ----------------------------------------------------------------------------- |
|
538 // |
|
539 void CNSmlNotepadDatabase::CreateDBL() |
|
540 { |
|
541 _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::CreateDBL(): begin"); |
|
542 |
|
543 iDatabase.Close(); |
|
544 TBuf<32> format; |
|
545 format.Copy(KSecure); |
|
546 format.Append(KSecureUid.Name()); |
|
547 User::LeaveIfError(iDatabase.Create(iDbs, *iDataFile,format)); |
|
548 CDbColSet* columns = CreateColSetLC(); |
|
549 User::LeaveIfError(iDatabase.CreateTable(KNpdTableName, *columns)); |
|
550 CleanupStack::PopAndDestroy(columns); // columns |
|
551 User::Leave(KErrNone); |
|
552 _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::CreateDBL(): end"); |
|
553 } |
|
554 |
|
555 // ----------------------------------------------------------------------------- |
|
556 // CNSmlNotepadDatabase::Rollback |
|
557 // ----------------------------------------------------------------------------- |
|
558 // |
|
559 void CNSmlNotepadDatabase::Rollback() |
|
560 { |
|
561 _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::Rollback(): begin"); |
|
562 |
|
563 iDatabase.Rollback(); |
|
564 if ( iDatabase.IsDamaged() ) |
|
565 { |
|
566 iDatabase.Recover(); |
|
567 } |
|
568 |
|
569 _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::Rollback(): end"); |
|
570 } |
|
571 |
|
572 |
|
573 |
|
574 |
|
575 |
|
576 |
|
577 // ----------------------------------------------------------------------------- |
|
578 // CNpdItem implementations |
|
579 // ----------------------------------------------------------------------------- |
|
580 // |
|
581 |
|
582 // ----------------------------------------------------------------------------- |
|
583 // CNpdItem::~CNpdItem |
|
584 // ----------------------------------------------------------------------------- |
|
585 // |
|
586 CNpdItem::~CNpdItem() |
|
587 { |
|
588 _NOTEPAD_DBG_FILE("CNpdItem::~CNpdItem: begin"); |
|
589 delete iContent; |
|
590 _NOTEPAD_DBG_FILE("CNpdItem::~CNpdItem: end"); |
|
591 } |
|
592 // ----------------------------------------------------------------------------- |
|
593 // CNpdItem::NewL |
|
594 // ----------------------------------------------------------------------------- |
|
595 // |
|
596 CNpdItem* CNpdItem::NewLC() |
|
597 { |
|
598 _NOTEPAD_DBG_FILE("CNpdItem::NewLC: begin"); |
|
599 CNpdItem* tmp = new (ELeave) CNpdItem(); |
|
600 CleanupStack::PushL(tmp); |
|
601 //tmp->ConstructL(0, TTime(), NULL); |
|
602 _NOTEPAD_DBG_FILE("CNpdItem::NewLC: end"); |
|
603 return tmp; |
|
604 } |
|
605 |
|
606 // ----------------------------------------------------------------------------- |
|
607 // CNpdItem::NewL |
|
608 // ----------------------------------------------------------------------------- |
|
609 // |
|
610 CNpdItem* CNpdItem::NewLC(TInt aKey, const TTime& aLastModified, HBufC *aContent) |
|
611 { |
|
612 _NOTEPAD_DBG_FILE("CNpdItem::NewLC(TInt aKey, const TTime& aLastModified, HBufC *aContent): begin"); |
|
613 CNpdItem* tmp = new (ELeave) CNpdItem(aKey,aLastModified,aContent); |
|
614 CleanupStack::PushL(tmp); |
|
615 //tmp->ConstructL(aKey, aLastModified, aContent); |
|
616 _NOTEPAD_DBG_FILE("CNpdItem::NewLC(TInt aKey, const TTime& aLastModified, HBufC *aContent): end"); |
|
617 return tmp; |
|
618 } |
|
619 |
|
620 // ----------------------------------------------------------------------------- |
|
621 // CNpdItem::CNpdItem() |
|
622 // ----------------------------------------------------------------------------- |
|
623 // |
|
624 CNpdItem::CNpdItem() : iKey(0), iLastModified(Time::MinTTime()), iContent(NULL) |
|
625 { |
|
626 _NOTEPAD_DBG_FILE("NpdItem::CNpdItem(): begin"); |
|
627 _NOTEPAD_DBG_FILE("NpdItem::CNpdItem(): end"); |
|
628 } |
|
629 |
|
630 // ----------------------------------------------------------------------------- |
|
631 // CNpdItem::CNpdItem(TInt aKey,const TTime& aLastModified, HBufC *aContent) |
|
632 // ----------------------------------------------------------------------------- |
|
633 // |
|
634 CNpdItem::CNpdItem(TInt aKey, |
|
635 const TTime& aLastModified, |
|
636 HBufC *aContent) : iKey(aKey), |
|
637 iLastModified(aLastModified), |
|
638 iContent(aContent) |
|
639 { |
|
640 _NOTEPAD_DBG_FILE("NpdItem::CNpdItem(): begin"); |
|
641 _NOTEPAD_DBG_FILE("NpdItem::CNpdItem(): end"); |
|
642 } |
|
643 |
|
644 |
|
645 // ----------------------------------------------------------------------------- |
|
646 // CNpdItem::Key |
|
647 // ----------------------------------------------------------------------------- |
|
648 // |
|
649 TInt CNpdItem::Key() const |
|
650 { |
|
651 _NOTEPAD_DBG_FILE("CNpdItem::Key(): begin"); |
|
652 _NOTEPAD_DBG_FILE("CNpdItem::Key(): end"); |
|
653 return iKey; |
|
654 } |
|
655 // ----------------------------------------------------------------------------- |
|
656 // CNpdItem::LastModified |
|
657 // ----------------------------------------------------------------------------- |
|
658 // |
|
659 TTime CNpdItem::LastModified() const |
|
660 { |
|
661 _NOTEPAD_DBG_FILE("CNpdItem::LastModified(): begin"); |
|
662 _NOTEPAD_DBG_FILE("CNpdItem::LastModified(): end"); |
|
663 return iLastModified; |
|
664 } |
|
665 // ----------------------------------------------------------------------------- |
|
666 // CNpdItem::Content |
|
667 // ----------------------------------------------------------------------------- |
|
668 // |
|
669 HBufC* CNpdItem::Content() |
|
670 { |
|
671 _NOTEPAD_DBG_FILE("NpdItem::Content(): begin"); |
|
672 _NOTEPAD_DBG_FILE("NpdItem::Content(): end"); |
|
673 return iContent; |
|
674 } |
|
675 // ----------------------------------------------------------------------------- |
|
676 // CNpdItem::Set |
|
677 // ----------------------------------------------------------------------------- |
|
678 // |
|
679 void CNpdItem::Set(TInt aKey, const TTime& aLastModified, HBufC *aContent) |
|
680 { |
|
681 _NOTEPAD_DBG_FILE("CNpdItem::Set(): begin"); |
|
682 iKey = aKey; |
|
683 iLastModified = aLastModified; |
|
684 SetContent(aContent); |
|
685 _NOTEPAD_DBG_FILE("CNpdItem::Set(): end"); |
|
686 } |
|
687 |
|
688 // ----------------------------------------------------------------------------- |
|
689 // CNpdItem::SetContent |
|
690 // ----------------------------------------------------------------------------- |
|
691 // |
|
692 void CNpdItem::SetContent(HBufC *aContent) |
|
693 { |
|
694 _NOTEPAD_DBG_FILE("CNpdItem::SetContent(): begin"); |
|
695 iContent = aContent; |
|
696 _NOTEPAD_DBG_FILE("CNpdItem::SetContent(): end"); |
|
697 } |
|
698 |
|
699 // ----------------------------------------------------------------------------- |
|
700 // CNpdItem::SetModified |
|
701 // ----------------------------------------------------------------------------- |
|
702 // |
|
703 void CNpdItem::SetModified(const TTime& aLastModified) |
|
704 { |
|
705 _NOTEPAD_DBG_FILE("CNpdItem::SetModified(): begin"); |
|
706 iLastModified = aLastModified; |
|
707 _NOTEPAD_DBG_FILE("CNpdItem::SetModified(): end"); |
|
708 } |
|
709 |
|
710 // End of File |