--- a/omads/omadsextensions/adapters/notes/src/nsmlnotepadDatabase.cpp Tue Aug 31 15:05:37 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,606 +0,0 @@
-/*
-* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "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:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: notepad database
-*
-*/
-
-
-#include <sysutil.h>
-
-#include <txtetext.h>
-#include "nsmlnotepadDatabase.h"
-#include <nsmlnotepaddatastoreformat.rsg>
-#include <nsmlconstants.h>
-
-#include <calentryview.h>
-#include <calentry.h>
-#include <calinstance.h>
-#include <calinstanceview.h>
-#include <calsession.h>
-#include <CalenInterimUtils2.h>
-
-#include "nsmlnotepadlogging.h"
-
-// -----------------------------------------------------------------------------
-// CNSmlNotepadDatabase::NewL
-// -----------------------------------------------------------------------------
-//
-CNSmlNotepadDatabase* CNSmlNotepadDatabase::NewL()
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::NewL(): begin");
-
- CNSmlNotepadDatabase *instance = new(ELeave) CNSmlNotepadDatabase();
- CleanupStack::PushL(instance);
- instance->ConstructL();
- CleanupStack::Pop(instance);
-
- _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::NewL(): end");
- return instance;
- }
-
-// -----------------------------------------------------------------------------
-// CNSmlNotepadDatabase::~CNSmlNotepadDatabase()
-// -----------------------------------------------------------------------------
-//
-CNSmlNotepadDatabase::~CNSmlNotepadDatabase()
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::~CNSmlNotepadDatabase(): begin");
-
- CloseAgendaSessions();
-
- _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::~CNSmlNotepadDatabase(): end");
- }
-
-// -----------------------------------------------------------------------------
-// CNSmlNotepadDatabase::CNSmlNotepadDatabase()
-// -----------------------------------------------------------------------------
-//
-CNSmlNotepadDatabase::CNSmlNotepadDatabase()
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::CNSmlNotepadDatabase(): begin");
-
- iOpened = EFalse;
-
- _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::CNSmlNotepadDatabase(): end");
- }
-
-// -----------------------------------------------------------------------------
-// CNSmlNotepadDatabase::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CNSmlNotepadDatabase::ConstructL()
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::ConstructL: begin");
-
- // Instantiate the Session variable
- iSession = CCalSession::NewL();
-
- _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::ConstructL: end");
- }
-
-// -----------------------------------------------------------------------------
-// TInt CNSmlNotepadDatabase::OpenL(const TDesC& aStoreName)
-// -----------------------------------------------------------------------------
-//
-void CNSmlNotepadDatabase::OpenL(const TDesC& aStoreName)
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::OpenL(): begin");
- CloseAgendaSessions();
-
- TInt err = KErrNone;
- iSession = CCalSession::NewL();
-
- TRAP( err,iSession->OpenL( aStoreName ) );
- if(err == KErrNotFound)
- {
- iSession->CreateCalFileL( aStoreName );
- iSession->OpenL( aStoreName );
- }
- else if( err != KErrNone )
- {
- CloseAgendaSessions();
- User::Leave(err);
- }
-
- iEntryView = CCalEntryView::NewL(*iSession);
- iInstanceView = CCalInstanceView::NewL(*iSession);
-
- if(iEntryView && iInstanceView)
- {
- iOpened = ETrue;
- }
- else
- {
- CloseAgendaSessions();
- User::LeaveIfError(KErrNotFound);
- }
-
- _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::OpenL(): end");
- }
-
-// -----------------------------------------------------------------------------
-// CNSmlNotepadDatabase::AddNoteL
-// -----------------------------------------------------------------------------
-//
-void CNSmlNotepadDatabase::AddNoteL(CNpdItem& aNote, TInt &aKey)
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::AddNoteL(): begin");
-
- TInt successCount = 0;
-
- CCalenInterimUtils2* interimUtils = CCalenInterimUtils2::NewL();
- CleanupStack::PushL(interimUtils);
-
- HBufC8* guid = interimUtils->GlobalUidL();
- CleanupStack::PopAndDestroy(interimUtils);
-
- CleanupStack::PushL(guid);
- CCalEntry* entry = CCalEntry::NewL(CCalEntry::ENote, guid,
- CCalEntry::EMethodNone, 0);
- CleanupStack::Pop(guid);
-
- CleanupStack::PushL(entry);
-
- // set the description
- TDesC* noteContent(aNote.Content());
- entry->SetDescriptionL(*noteContent);
-
- // store the entry in to calendar file
- RPointerArray<CCalEntry> array;
- CleanupRPtrArrayPushL(array);
-
- array.AppendL(entry);
- CleanupStack::Pop(entry);
- iEntryView->StoreL(array, successCount);
-
- if(successCount)
- {
- HBufC* content = HBufC::NewL(entry->DescriptionL().Length());
- content->Des().Copy(entry->DescriptionL());
- aNote.Set(entry->LocalUidL(),entry->LastModifiedDateL().TimeUtcL(), content);
- aKey = entry->LocalUidL();
- CleanupStack::PopAndDestroy(&array);
- _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::AddNoteL(): inside if(successCount) after array");
- }
- else
- {
- User::Leave(KErrGeneral);
- }
-
- _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::AddNoteL(): end");
-
- User::Leave(KErrNone);
- }
-
-// -----------------------------------------------------------------------------
-// CNSmlNotepadDatabase::DeleteNoteL
-// -----------------------------------------------------------------------------
-//
-void CNSmlNotepadDatabase::DeleteNoteL(const TInt aKey)
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::DeleteNoteL(): begin");
-
- CCalEntry* entryTobeDeleted(NULL);
- entryTobeDeleted = iEntryView->FetchL(aKey);
- if(entryTobeDeleted)
- {
- CleanupStack::PushL(entryTobeDeleted);
- iEntryView->DeleteL(*entryTobeDeleted);
- CleanupStack::Pop(entryTobeDeleted);
- }
-
- delete entryTobeDeleted;
- entryTobeDeleted = NULL;
- _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::DeleteNoteL(): end");
- }
-
-// -----------------------------------------------------------------------------
-// CNSmlNotepadDatabase::Close
-// -----------------------------------------------------------------------------
-//
-void CNSmlNotepadDatabase::Close() // can be deprecated ????
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::Close(): begin");
- iOpened = EFalse;
- _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::Close(): end");
- }
-
-// -----------------------------------------------------------------------------
-// CNSmlNotepadDatabase::GetNoteL
-// -----------------------------------------------------------------------------
-//
-void CNSmlNotepadDatabase::GetNoteL(const TInt aKey, CNpdItem& aItem)
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::GetNoteL(): begin");
- TInt err(KErrNone);
- if(!iOpened)
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::GetNoteL(): not opened");
- User::Leave(KErrNotReady);
- }
-
- if(aKey)
- {
- CCalEntry* entryTobeFetched(NULL);
- entryTobeFetched = iEntryView->FetchL(aKey);
- if(entryTobeFetched)
- {
- CleanupStack::PushL(entryTobeFetched);
- HBufC* content = HBufC::NewL(entryTobeFetched->DescriptionL().Length());
- content->Des().Copy(entryTobeFetched->DescriptionL());
-
- aItem.Set(aKey, entryTobeFetched->LastModifiedDateL().TimeUtcL(), content);
-
- //CleanupStack::Pop(aItem);
- CleanupStack::PopAndDestroy(entryTobeFetched);
- }
- else
- {
- delete entryTobeFetched;
- entryTobeFetched = NULL;
- }
- }
-
- _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::GetNoteL(): end");
- User::Leave(err);
- }
-
-// -----------------------------------------------------------------------------
-// CNSmlNotepadDatabase::UpdateNoteL
-// -----------------------------------------------------------------------------
-//
-void CNSmlNotepadDatabase::UpdateNoteL(const TInt aKey, CNpdItem& aItem)
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::UpdateNoteL(): begin");
-
- if(!iOpened)
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::UpdateNoteL(): not ready");
- User::Leave(KErrNotReady);
- }
-
- RPointerArray<CCalEntry> array;
- CleanupRPtrArrayPushL(array);
-
- // fetch the created note using the localuid
- CCalEntry* entryTobeUpdated(NULL);
- entryTobeUpdated = iEntryView->FetchL(aKey);
- if(entryTobeUpdated)
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::UpdateNoteL(): entry found");
- }
- else
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::UpdateNoteL(): entry not found");
- User::Leave(KErrNotFound);
- }
- CleanupStack::PushL(entryTobeUpdated);
-
- // update the description
- HBufC* content = HBufC::NewL(aItem.Content()->Length());
- content = aItem.Content();
-
- entryTobeUpdated->SetDescriptionL(*content);
-
- array.AppendL(entryTobeUpdated);
- CleanupStack::Pop(entryTobeUpdated);
- TBool success(EFalse);
- // update the entry
- iEntryView->UpdateL(array, success);
-
- if(success)
- {
- aItem.SetModified(entryTobeUpdated->LastModifiedDateL().TimeUtcL());
- CleanupStack::PopAndDestroy(&array);
- }
- else
- {
- User::Leave(KErrGeneral);
- }
-
- _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::UpdateNoteL(): end");
- }
-
-// -----------------------------------------------------------------------------
-// CNSmlNotepadDatabase::ResetL
-// -----------------------------------------------------------------------------
-//
-TInt CNSmlNotepadDatabase::ResetL()
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::ResetL(): begin");
-
- TInt err(KErrNone);
- CArrayPtr<CNpdItem>* arrNpdItem = NULL;
-
- // Fetch all the available notes from the db
- arrNpdItem = FetchItemsLC();
-
- // Delete the Notes
- for( TInt count = 0; count < arrNpdItem->Count(); count++ )
- {
- CCalEntry* entryTobeDeleted(NULL);
- entryTobeDeleted = iEntryView->FetchL( arrNpdItem->At(count)->Key() );
- if(entryTobeDeleted)
- {
- CleanupStack::PushL(entryTobeDeleted);
- iEntryView->DeleteL(*entryTobeDeleted);
- CleanupStack::Pop(entryTobeDeleted);
- }
- delete entryTobeDeleted;
- entryTobeDeleted = NULL;
- }
- CleanupStack::PopAndDestroy(arrNpdItem);
- _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::ResetL(): begin");
- return err;
- }
-
-// -----------------------------------------------------------------------------
-// CNSmlNotepadDatabase::IsOpen
-// -----------------------------------------------------------------------------
-//
-TBool CNSmlNotepadDatabase::IsOpen()
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::IsOpen(): begin");
- _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::IsOpen(): end");
- return iOpened;
- }
-
-
-// ------------------------------------------------------------------------------------------------
-// CArrayPtr<CNpdItem>* CNSmlNotepadDatabase::FetchItemsLC(TBool aIncludeText,
-// ------------------------------------------------------------------------------------------------
-CArrayPtr<CNpdItem>* CNSmlNotepadDatabase::FetchItemsLC(TBool aIncludeText,
- TInt* aKey)
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::FetchItemsLC(): begin") ;
-
- CArrayPtr<CNpdItem>* res = new (ELeave) CArrayPtrFlat<CNpdItem> (8);
- CleanupPtrArrayPushL(res);
-
- if(!aKey)
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::FetchItemsLC(): In aKey case");
- RPointerArray<CCalInstance> array;
- CleanupRPtrArrayPushL(array);
- _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::FetchItemsLC(): After cleaupstack");
-
- TCalTime startDate;
- startDate.SetTimeLocalL(TDateTime(1900, EJanuary, 1, 0, 0, 0, 0));
- TCalTime endDate;
- endDate.SetTimeLocalL(TDateTime(2100, EJanuary, 30, 0, 0, 0, 0));
- CalCommon::TCalTimeRange timeRange(startDate, endDate);
-
- iInstanceView->FindInstanceL(array,CalCommon::EIncludeNotes, timeRange);
- CNpdItem* entry = NULL;
- TInt i = 0;
-
- while (i < array.Count())
- {
- entry = CNpdItem::NewLC();
- entry->SetKey( array[i]->Entry().LocalUidL() );
- entry->SetModified( array[i]->Entry().LastModifiedDateL().TimeUtcL());
- if(aIncludeText)
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::FetchItemsLC(): aIncludeText true");
- HBufC* content = HBufC::NewL( array[i]->Entry().DescriptionL().Length() );
- content->Des().Copy( array[i]->Entry().DescriptionL() );
- entry->SetContent( content );
- }
- res->AppendL(entry);
- _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::FetchItemsLC(): After res->AppendL(entry)");
- CleanupStack::Pop(entry);
- _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::FetchItemsLC(): After popping (entry)");
- i++;
- }
- _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::FetchItemsLC(): before pop and destroy");
- CleanupStack::PopAndDestroy(&array);
- _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::FetchItemsLC(): After While Loop");
- }
- else
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::FetchItemsLC(): In else case");
- CCalEntry* entryTobeFetched(NULL);
- entryTobeFetched = iEntryView->FetchL(*aKey);
- _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::FetchItemsLC(): After Fetching entry");
- if(entryTobeFetched)
- {
- CleanupStack::PushL(entryTobeFetched);
- CNpdItem* entry = CNpdItem::NewLC();
- entry->SetKey( entryTobeFetched->LocalUidL() );
- entry->SetModified( entryTobeFetched->LastModifiedDateL().TimeUtcL() );
- if(aIncludeText)
- {
- HBufC* content = HBufC::NewL( entryTobeFetched->DescriptionL().Length() );
- content->Des().Copy( entryTobeFetched->DescriptionL() );
- entry->SetContent( content );
- }
- res->AppendL(entry);
- CleanupStack::Pop(entry);
- CleanupStack::PopAndDestroy(entryTobeFetched);
- }
- }
- _NOTEPAD_DBG_FILE("CNSmlNotepadDatabase::FetchItemLC(): end");
- return res;
- }
-
-// -----------------------------------------------------------------------------
-// CNSmlNotepadDatabase::CloseAgendaSessions
-// -----------------------------------------------------------------------------
-//
-void CNSmlNotepadDatabase::CloseAgendaSessions()
- {
- if(iInstanceView)
- {
- delete iInstanceView;
- iInstanceView = NULL;
- }
- if(iEntryView)
- {
- delete iEntryView;
- iEntryView = NULL;
- }
- if(iSession)
- {
- delete iSession;
- iSession = NULL;
- }
- }
-
-
-
-// -----------------------------------------------------------------------------
-// CNpdItem class implementations
-// -----------------------------------------------------------------------------
-
-
-// -----------------------------------------------------------------------------
-// CNpdItem::~CNpdItem
-// -----------------------------------------------------------------------------
-//
-CNpdItem::~CNpdItem()
- {
- _NOTEPAD_DBG_FILE("CNpdItem::~CNpdItem: begin");
- delete iContent;
- _NOTEPAD_DBG_FILE("CNpdItem::~CNpdItem: end");
- }
-// -----------------------------------------------------------------------------
-// CNpdItem::NewL
-// -----------------------------------------------------------------------------
-//
-CNpdItem* CNpdItem::NewLC()
- {
- _NOTEPAD_DBG_FILE("CNpdItem::NewLC: begin");
- CNpdItem* tmp = new (ELeave) CNpdItem();
- CleanupStack::PushL(tmp);
- //tmp->ConstructL(0, TTime(), NULL);
- _NOTEPAD_DBG_FILE("CNpdItem::NewLC: end");
- return tmp;
- }
-
-// -----------------------------------------------------------------------------
-// CNpdItem::NewL
-// -----------------------------------------------------------------------------
-//
-CNpdItem* CNpdItem::NewLC(TInt aKey, const TTime& aLastModified, HBufC *aContent)
- {
- _NOTEPAD_DBG_FILE("CNpdItem::NewLC(TInt aKey, const TTime& aLastModified, HBufC *aContent): begin");
- CNpdItem* tmp = new (ELeave) CNpdItem(aKey,aLastModified,aContent);
- CleanupStack::PushL(tmp);
- //tmp->ConstructL(aKey, aLastModified, aContent);
- _NOTEPAD_DBG_FILE("CNpdItem::NewLC(TInt aKey, const TTime& aLastModified, HBufC *aContent): end");
- return tmp;
- }
-
-// -----------------------------------------------------------------------------
-// CNpdItem::CNpdItem()
-// -----------------------------------------------------------------------------
-//
-CNpdItem::CNpdItem() : iKey(0), iLastModified(Time::MinTTime()), iContent(NULL)
- {
- _NOTEPAD_DBG_FILE("NpdItem::CNpdItem(): begin");
- _NOTEPAD_DBG_FILE("NpdItem::CNpdItem(): end");
- }
-
-// -----------------------------------------------------------------------------
-// CNpdItem::CNpdItem(TInt aKey,const TTime& aLastModified, HBufC *aContent)
-// -----------------------------------------------------------------------------
-//
-CNpdItem::CNpdItem(TInt aKey,
- const TTime& aLastModified,
- HBufC *aContent) : iKey(aKey),
- iLastModified(aLastModified),
- iContent(aContent)
- {
- _NOTEPAD_DBG_FILE("NpdItem::CNpdItem(): begin");
- _NOTEPAD_DBG_FILE("NpdItem::CNpdItem(): end");
- }
-
-
-// -----------------------------------------------------------------------------
-// CNpdItem::Key
-// -----------------------------------------------------------------------------
-//
-TInt CNpdItem::Key() const
- {
- _NOTEPAD_DBG_FILE("CNpdItem::Key(): begin");
- _NOTEPAD_DBG_FILE("CNpdItem::Key(): end");
- return iKey;
- }
-// -----------------------------------------------------------------------------
-// CNpdItem::LastModified
-// -----------------------------------------------------------------------------
-//
-TTime CNpdItem::LastModified() const
- {
- _NOTEPAD_DBG_FILE("CNpdItem::LastModified(): begin");
- _NOTEPAD_DBG_FILE("CNpdItem::LastModified(): end");
- return iLastModified;
- }
-// -----------------------------------------------------------------------------
-// CNpdItem::Content
-// -----------------------------------------------------------------------------
-//
-HBufC* CNpdItem::Content()
- {
- _NOTEPAD_DBG_FILE("NpdItem::Content(): begin");
- _NOTEPAD_DBG_FILE("NpdItem::Content(): end");
- return iContent;
- }
-// -----------------------------------------------------------------------------
-// CNpdItem::Set
-// -----------------------------------------------------------------------------
-//
-void CNpdItem::Set(TInt aKey, const TTime& aLastModified, HBufC *aContent)
- {
- _NOTEPAD_DBG_FILE("CNpdItem::Set(): begin");
- iKey = aKey;
- iLastModified = aLastModified;
- SetContent(aContent);
- _NOTEPAD_DBG_FILE("CNpdItem::Set(): end");
- }
-
-// -----------------------------------------------------------------------------
-// CNpdItem::Set
-// -----------------------------------------------------------------------------
-//
-void CNpdItem::SetKey(TInt aKey)
- {
- _NOTEPAD_DBG_FILE("CNpdItem::SetKey(): begin");
- iKey = aKey;
- _NOTEPAD_DBG_FILE("CNpdItem::SetKey(): end");
- }
-
-// -----------------------------------------------------------------------------
-// CNpdItem::SetContent
-// -----------------------------------------------------------------------------
-//
-void CNpdItem::SetContent(HBufC *aContent)
- {
- _NOTEPAD_DBG_FILE("CNpdItem::SetContent(): begin");
- iContent = aContent;
- _NOTEPAD_DBG_FILE("CNpdItem::SetContent(): end");
- }
-
-// -----------------------------------------------------------------------------
-// CNpdItem::SetModified
-// -----------------------------------------------------------------------------
-//
-void CNpdItem::SetModified(const TTime& aLastModified)
- {
- _NOTEPAD_DBG_FILE("CNpdItem::SetModified(): begin");
- iLastModified = aLastModified;
- _NOTEPAD_DBG_FILE("CNpdItem::SetModified(): end");
- }
-
-// End of File