--- a/omads/omadsextensions/adapters/notes/src/NSmlNotepadDataStore.cpp Tue Aug 31 15:05:37 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1357 +0,0 @@
-/*
-* Copyright (c) 2005 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: DS notepad data store
-*
-*/
-
-
-// INCLUDE FILES
-#include <barsc.h>
-#include <bautils.h>
-#include <s32mem.h>
-#include <sysutil.h>
-#include <nsmlnotepaddatastoreformat.rsg>
-#include <data_caging_path_literals.hrh>
-#include <SmlDataProvider.h>
-#include <txtetext.h>
-#include <charconv.h>
-#include <nsmlchangefinder.h>
-
-#include "NSmlNotepadDatastore.h"
-#include "nsmlnotepaddefs.h"
-#include "nsmlnotepadDatabase.h"
-#include "nsmlsnapshotitem.h"
-#include "nsmlnotepadlogging.h"
-
-// ----------------------------------------------------------------------------
-// CNSmlNotepadDataStore::NewL
-// ----------------------------------------------------------------------------
-CNSmlNotepadDataStore* CNSmlNotepadDataStore::NewL()
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::NewL: BEGIN");
- CNSmlNotepadDataStore* self = new ( ELeave ) CNSmlNotepadDataStore();
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(self); // self
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::NewL: END");
- return self;
- }
-
-// ----------------------------------------------------------------------------
-// CNSmlNotepadDataStore::~CNSmlNotepadDataStore()
-// ----------------------------------------------------------------------------
-CNSmlNotepadDataStore::~CNSmlNotepadDataStore()
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::~CNSmlNotepadDataStore(): begin");
- if(iOwnStoreFormat)
- {
- delete iOwnStoreFormat;
- iOwnStoreFormat = NULL;
- }
- if(iDefaultStoreName)
- {
- delete iDefaultStoreName;
- iDefaultStoreName = NULL;
- }
- if(iNpdDb)
- {
- delete iNpdDb;
- iNpdDb = NULL;
- }
- if(iReplacedUids)
- {
- delete iReplacedUids;
- iReplacedUids = NULL;
- }
- if(iMovedUids)
- {
- delete iMovedUids;
- iMovedUids = NULL;
- }
- if(iSoftDeletedUids)
- {
- delete iSoftDeletedUids;
- iSoftDeletedUids = NULL;
- }
- if(iDeletedUids)
- {
- delete iDeletedUids;
- iDeletedUids = NULL;
- }
- if(iNewUids)
- {
- delete iNewUids;
- iNewUids = NULL;
- }
- iRfs.Close();
- iStringPool.Close();
- if(iOpenedStoreName)
- {
- delete iOpenedStoreName;
- iOpenedStoreName = NULL;
- }
- if(iItemData)
- {
- delete iItemData;
- iItemData = NULL;
- }
- if ( iChangeFinder )
- {
- TRAP_IGNORE( iChangeFinder->CloseL() );
- delete iChangeFinder;
- iChangeFinder = NULL;
- }
-
- if( iSnapshot )
- {
- delete iSnapshot;
- iSnapshot = NULL;
- }
-
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::~CNSmlNotepadDataStore(): end");
- }
-
-
-// ----------------------------------------------------------------------------
-// CNSmlNotepadDataStore::CNSmlNotepadDataStore()
-// ----------------------------------------------------------------------------
-CNSmlNotepadDataStore::CNSmlNotepadDataStore() : iOpenedStoreId(KNSmlNotepadAdapterImplUid),iKey( TKeyArrayFix( _FOFF( TNSmlSnapshotItem,ItemId() ),ECmpTInt ))
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::CNSmlNotepadDataStore(): begin");
- iSyncHistory = EFalse;
- iDataBaseOpened = EFalse;
- iReaderPosition = -1;
- iWriterPosition = -1;
- iModificationCount = KNSmlCompactAfterChanges;
- iState = ENSmlClosed;
- iSnapshotRegistered = EFalse;
- iDrive = -1;
- iReplaceItemId = -1;
- iServerMaxObjectSize = 0; // Maximum size default value
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::CNSmlNotepadDataStore(): end");
- }
-
-// ----------------------------------------------------------------------------
-// CNSmlNotepadDataStore::ConstructL()
-// ----------------------------------------------------------------------------
-void CNSmlNotepadDataStore::ConstructL()
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::ConstructL(): begin");
- User::LeaveIfError(iRfs.Connect());
- iStringPool.OpenL();
- iUsedMimeType.Set( KMimePlainText() );
- iUsedMimeVersion.Set( KMimePlainTextVersion() );
- // Uid Sets
- if(iNewUids)
- {
- delete iNewUids;
- iNewUids = NULL;
- }
- iNewUids = new (ELeave) CNSmlDataItemUidSet();
- if(iDeletedUids)
- {
- delete iDeletedUids;
- iDeletedUids = NULL;
- }
- iDeletedUids = new (ELeave) CNSmlDataItemUidSet();
- if(iSoftDeletedUids)
- {
- delete iSoftDeletedUids;
- iSoftDeletedUids = NULL;
- }
- iSoftDeletedUids = new (ELeave) CNSmlDataItemUidSet();
- if(iMovedUids)
- {
- delete iMovedUids;
- iMovedUids = NULL;
- }
- iMovedUids = new (ELeave) CNSmlDataItemUidSet();
- if(iReplacedUids)
- {
- delete iReplacedUids;
- iReplacedUids = NULL;
- }
- iReplacedUids = new (ELeave) CNSmlDataItemUidSet();
- if(iNpdDb)
- {
- delete iNpdDb;
- iNpdDb = NULL;
- }
- iNpdDb = CNSmlNotepadDatabase::NewL();
- if(iDefaultStoreName)
- {
- delete iDefaultStoreName;
- iDefaultStoreName = NULL;
- }
- iDefaultStoreName = HBufC::NewL( KNSmlDefaultStoreNameMaxSize );
- *iDefaultStoreName = KNSmlNotepadStoreName;
-
- if(iOwnStoreFormat)
- {
- delete iOwnStoreFormat;
- iOwnStoreFormat = NULL;
- }
- iOwnStoreFormat = DoOwnStoreFormatL();
-
- iSnapshot = new (ELeave) CArrayFixSeg<TNSmlSnapshotItem>(KSnapshotGranularity);
-
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::ConstructL(): end");
- }
-
-
-// ----------------------------------------------------------------------------
-// void CNSmlNotepadDataStore::DefaultStoreNameL()
-// ----------------------------------------------------------------------------
-const TDesC& CNSmlNotepadDataStore::DefaultStoreNameL() const
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DefaultStoreNameL(): begin");
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DefaultStoreNameL(): end");
- if ( iDefaultStoreName )
- {
- return *iDefaultStoreName;
- }
- return KNullDesC;
- }
-
-
-// ----------------------------------------------------------------------------
-// CDesCArray* CNSmlNotepadDataStore::DoListStoresLC();
-// ----------------------------------------------------------------------------
-CDesCArray* CNSmlNotepadDataStore::DoListStoresLC()
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoListStoresLC(): begin");
- CDesCArrayFlat *npdStores = new (ELeave)CDesCArrayFlat(1);
- CleanupStack::PushL(npdStores);
- npdStores->AppendL(KNSmlNotepadStoreName);
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoListStoresLC(): end");
- return npdStores;
- }
-
-// ----------------------------------------------------------------------------
-// void CNSmlNotepadDataStore::DoOpenL(const TDesC& aStoreName,
-// MSmlSyncRelationship& aContext,
-// TRequestStatus& aStatus)
-// ----------------------------------------------------------------------------
-void CNSmlNotepadDataStore::DoOpenL( const TDesC& aStoreName,
- MSmlSyncRelationship& aContext,
- TRequestStatus& aStatus )
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoOpenL(): begin");
- iCallerStatus = &aStatus;
- *iCallerStatus = KRequestPending;
- if( iState != ENSmlClosed || iDataBaseOpened )
- {
-
- User::RequestComplete( iCallerStatus, KErrInUse );
- return;
- }
- if(aStoreName.Length()>0)
- {
- if( RFs::CharToDrive(aStoreName[0], iDrive) != KErrNone )
- {
- RFs::CharToDrive( KNSmlDriveC()[0], iDrive );
- }
- }
-
- // Open the Database
- TInt err( KErrNone );
- TRAP(err,iNpdDb->OpenL( KNSmlNotepadDefaultStoreName ));
- if ( err )
- {
- User::RequestComplete( iCallerStatus, err );
- return;
- }
-
- if ( iOpenedStoreName )
- {
- delete iOpenedStoreName;
- iOpenedStoreName = NULL;
- }
- iOpenedStoreName = HBufC::NewL( KNSmlDefaultStoreNameMaxSize );
- *iOpenedStoreName = KNSmlNotepadStoreName;
-
- iDataBaseOpened = ETrue;
-
- if ( iChangeFinder )
- {
- iChangeFinder->CloseL();
- delete iChangeFinder;
- iChangeFinder = NULL;
- }
- iChangeFinder = CNSmlChangeFinder::NewL( aContext, iKey, iSyncHistory, KNSmlNotepadAdapterImplUid );
-
- err = FetchModificationsL();
-
-
- iState = ENSmlOpenAndWaiting;
- User::RequestComplete( iCallerStatus, err );
-
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoOpenL(): end");
-}
-
-// ----------------------------------------------------------------------------
-// void CNSmlNotepadDataStore::DoCancelRequest()
-// ----------------------------------------------------------------------------
-void CNSmlNotepadDataStore::DoCancelRequest()
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoCancelRequest(): begin");
- if ( iState == ENSmlOpenAndWaiting )
- {
- iState = ENSmlClosed;
- }
- else
- {
- iState = ENSmlOpenAndWaiting;
- }
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoCancelRequest(): NOT NEEDED end");
- }
-
-// ----------------------------------------------------------------------------
-// void CNSmlNotepadDataStore::DoStoreName()
-// ----------------------------------------------------------------------------
-const TDesC& CNSmlNotepadDataStore::DoStoreName() const
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoStoreName(): begin");
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoStoreName(): end");
- if ( iOpenedStoreName )
- {
- return *iOpenedStoreName;
- }
- return KNullDesC;
- }
-
-// ----------------------------------------------------------------------------
-// void CNSmlNotepadDataStore::DoBeginTransactionL()
-// ----------------------------------------------------------------------------
-void CNSmlNotepadDataStore::DoBeginTransactionL()
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoBeginTransactionL(): begin");
- User::Leave( KErrNotSupported );
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoBeginTransactionL(): end");
- }
-
-// ----------------------------------------------------------------------------
-// void CNSmlNotepadDataStore::DoCommitTransactionL()
-// ----------------------------------------------------------------------------
-void CNSmlNotepadDataStore::DoCommitTransactionL(TRequestStatus& aStatus)
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoCommitTransactionL(): begin");
- iCallerStatus = &aStatus;
- *iCallerStatus = KRequestPending;
- User::RequestComplete( iCallerStatus, KErrNotSupported );
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoCommitTransactionL(): end");
- }
-
-// ----------------------------------------------------------------------------
-// void CNSmlNotepadDataStore::DoRevertTransaction()
-// ----------------------------------------------------------------------------
-void CNSmlNotepadDataStore::DoRevertTransaction(TRequestStatus& aStatus)
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoRevertTransaction(): begin");
- iCallerStatus = &aStatus;
- *iCallerStatus = KRequestPending;
- User::RequestComplete( iCallerStatus, KErrNotSupported );
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoRevertTransaction(): end");
- }
-
-// ----------------------------------------------------------------------------
-// void CNSmlNotepadDataStore::DoBeginBatchL()
-// ----------------------------------------------------------------------------
-void CNSmlNotepadDataStore::DoBeginBatchL()
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoBeginBatchL(): begin");
- User::Leave( KErrNotSupported );
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoBeginBatchL(): end");
- }
-
-// ----------------------------------------------------------------------------
-// void CNSmlNotepadDataStore::DoCommitBatchL()
-// ----------------------------------------------------------------------------
-void CNSmlNotepadDataStore::DoCommitBatchL( RArray<TInt>& /*aResultArray*/, TRequestStatus& aStatus )
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoCommitBatchL(): begin");
- iCallerStatus = &aStatus;
- *iCallerStatus = KRequestPending;
- User::RequestComplete( iCallerStatus, KErrNotSupported );
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoCommitBatchL(): end");
- }
-// ----------------------------------------------------------------------------
-// void CNSmlNotepadDataStore::DoCancelBatch()
-// ----------------------------------------------------------------------------
-void CNSmlNotepadDataStore::DoCancelBatch()
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoCancelBatch(): begin");
- // Nothing to do
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoCancelBatch(): end");
- }
-// ----------------------------------------------------------------------------
-// void CNSmlNotepadDataStore::DoSetRemoteStoreFormatL()
-// ----------------------------------------------------------------------------
-void CNSmlNotepadDataStore::DoSetRemoteStoreFormatL( const CSmlDataStoreFormat& aServerDataStoreFormat )
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoSetRemoteStoreFormatL(): begin");
- TBool foundMime = EFalse;
- // KErrNotSupported is returned if server does not support same mime type
- // and same mime type version as Data Provider.
- TInt i=0;
- while( i< aServerDataStoreFormat.MimeFormatCount() && !foundMime )
- {
- if( iUsedMimeType.MatchF(aServerDataStoreFormat.MimeFormat(i).MimeType().DesC()) ==0 &&
- iUsedMimeVersion.MatchF(aServerDataStoreFormat.MimeFormat(i).MimeVersion().DesC())==0 )
- {
- foundMime = ETrue;
- iServerMimeType = aServerDataStoreFormat.MimeFormat(i).MimeType();
- iServerMimeVersion = aServerDataStoreFormat.MimeFormat(i).MimeVersion();
- }
- i++;
- }
- if( !foundMime )
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoSetRemoteStoreFormatL(): SERVER MIMETYPE NOTSUPPORTED end");
-
- User::Leave( KErrNotSupported );
- }
- if( !iOwnStoreFormat )
- {
- iOwnStoreFormat = DoOwnStoreFormatL();
- }
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoSetRemoteStoreFormatL(): end");
- return;
- }
-
-// ----------------------------------------------------------------------------
-// void CNSmlNotepadDataStore::DoSetRemoteMaxObjectSize()
-// ----------------------------------------------------------------------------
-void CNSmlNotepadDataStore::DoSetRemoteMaxObjectSize( TInt aServerMaxObjectSize )
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoSetRemoteMaxObjectSize(): begin");
- iServerMaxObjectSize = aServerMaxObjectSize;
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoSetRemoteMaxObjectSize(): end");
- }
-// ----------------------------------------------------------------------------
-// void CNSmlNotepadDataStore::DoMaxObjectSize()
-// ----------------------------------------------------------------------------
-TInt CNSmlNotepadDataStore::DoMaxObjectSize() const
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoMaxObjectSize(): begin");
- if ( iOwnStoreFormat )
- {
- if ( iOwnStoreFormat->HasMaxSize() )
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoMaxObjectSize - From resource: END");
-
- return iOwnStoreFormat->MaxSize();
- }
- }
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoMaxObjectSize() 100 k: end");
- return KNSmlDataStoreMaxSize; // 100 k
- }
-
-
-// ----------------------------------------------------------------------------
-// void CNSmlNotepadDataStore::DoOpenItemL()
-// ----------------------------------------------------------------------------
-void CNSmlNotepadDataStore::DoOpenItemL( TSmlDbItemUid aUid,
- TBool& aFieldChange,
- TInt& aSize,
- TSmlDbItemUid& aParent,
- TDes8& aMimeType,
- TDes8& aMimeVer,
- TRequestStatus& aStatus )
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoOpenItemL(): begin");
- iCallerStatus = &aStatus;
- *iCallerStatus = KRequestPending;
- if ( iState != ENSmlOpenAndWaiting )
- {
- User::RequestComplete( iCallerStatus, KErrNotReady );
- return;
- }
- aFieldChange = EFalse; // Whole item sent NOT SUPPORT ON FIELDCHANGE
- aMimeType = iOwnStoreFormat->MimeFormat( 0 ).MimeType().DesC();
- aMimeVer = iOwnStoreFormat->MimeFormat( 0 ).MimeVersion().DesC();
- aParent = KNullDataItemId;
- if( !iItemData )
- {
- iItemData= CBufFlat::NewL( KNSmlItemDataExpandSize );
- }
- else
- {
- iItemData->Reset();
- }
- TInt err = OpenItemL( aUid, *iItemData );
- if( !err )
- {
-
- iItemData->Compress();
- iReaderPosition = 0;
- aSize = iItemData->Size();
- iState = ENSmlItemOpen;
- if ( iServerMaxObjectSize == 0 || aSize <= iServerMaxObjectSize )
- {
- User::RequestComplete( iCallerStatus, KErrNone );
- }
- else
- {
- User::RequestComplete( iCallerStatus, KErrTooBig );
- }
- }
- else
- {
- User::RequestComplete( iCallerStatus, err );
- }
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoOpenItemL(): end");
- }
-
-// ----------------------------------------------------------------------------
-// void CNSmlNotepadDataStore::DoCreateItemL()
-// ----------------------------------------------------------------------------
-void CNSmlNotepadDataStore::DoCreateItemL( TSmlDbItemUid& aUid,
- TInt aSize,
- TSmlDbItemUid /*aParent*/,
- const TDesC8& aMimeType,
- const TDesC8& aMimeVer,
- TRequestStatus& aStatus )
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoCreateItemL(): begin");
- TBuf8<255> lMimeType;
- lMimeType.Copy(aMimeType);
- TBuf8<255> lMimeVer;
- lMimeVer.Copy(aMimeVer);
- iCallerStatus = &aStatus;
- *iCallerStatus = KRequestPending;
- iAddItemId = &aUid;
- if ( iState != ENSmlOpenAndWaiting )
- {
- User::RequestComplete( iCallerStatus, KErrNotReady );
- return;
- }
- if ( iOwnStoreFormat->HasMaxSize() )
- {
- if ( iOwnStoreFormat->MaxSize() < aSize )
- {
- User::RequestComplete( iCallerStatus, KErrTooBig );
- return;
- }
- }
- if( SysUtil::DiskSpaceBelowCriticalLevelL( &iRfs, aSize, iDrive ) )
- {
- User::RequestComplete( iCallerStatus, KErrDiskFull );
- return;
- }
- TBuf8<255> lOwnMimeType;
- lOwnMimeType.Copy(iOwnStoreFormat->MimeFormat( 0 ).MimeType().DesC());
- TBuf8<255> lOwnMimeVer;
- lOwnMimeVer.Copy(iOwnStoreFormat->MimeFormat( 0 ).MimeVersion().DesC());
- if ( (iOwnStoreFormat->MimeFormat( 0 ).MimeType().DesC().Compare( aMimeType ) != 0 ) )
- {
- User::RequestComplete( iCallerStatus, KErrNotSupported );
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoCreateItemL - KErrNotSupported: END");
- return;
- }
- if ( iItemData )
- {
- delete iItemData;
- iItemData = NULL;
- }
- iItemData = CBufFlat::NewL( KNSmlItemDataExpandSize );
- iWriterPosition = 0;
- iItemSize = aSize; // Size sent from server
- iState = ENSmlItemCreating;
- User::RequestComplete( iCallerStatus, KErrNone );
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoCreateItemL(): end");
- }
-
-// ----------------------------------------------------------------------------
-// void CNSmlNotepadDataStore::DoReplaceItemL()
-// ----------------------------------------------------------------------------
-void CNSmlNotepadDataStore::DoReplaceItemL( TSmlDbItemUid aUid,
- TInt aSize,
- TSmlDbItemUid /*aParent*/,
- TBool aFieldChange,
- TRequestStatus& aStatus )
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoReplaceItemL(): begin");
- iCallerStatus = &aStatus;
- *iCallerStatus = KRequestPending;
- if ( iState != ENSmlOpenAndWaiting )
- {
- User::RequestComplete( iCallerStatus, KErrNotReady );
- return;
- }
- if ( iOwnStoreFormat->HasMaxSize() )
- {
- if ( iOwnStoreFormat->MaxSize() < aSize )
- {
- User::RequestComplete( iCallerStatus, KErrTooBig );
- return;
- }
- }
- if( aFieldChange )
- {
- User::RequestComplete( iCallerStatus, KErrNotSupported );
- return;
- }
- if( SysUtil::DiskSpaceBelowCriticalLevelL( &iRfs, aSize, iDrive ) )
- {
- User::RequestComplete(iCallerStatus, KErrDiskFull);
- return;
- }
- TInt err = KErrNone;
- iUid = aUid;
- iItemSize = aSize;
- iWriterPosition = 0;
- if ( iItemData )
- {
- delete iItemData;
- iItemData = NULL;
- }
- iItemData = CBufFlat::NewL( KNSmlItemDataExpandSize );
- CNpdItem *note;
- note = CNpdItem::NewLC();
- TInt itemFound;
- TRAP(itemFound,iNpdDb->GetNoteL(aUid, *note));
- CleanupStack::PopAndDestroy(note);//for note
- if ( itemFound != KErrNone)
- {
- delete iItemData;
- iItemData = NULL;
-
- User::RequestComplete( iCallerStatus, KErrNotFound );
- return;
- }
- iReplaceItemId = aUid;
- iState = ENSmlItemUpdating;
- User::RequestComplete( iCallerStatus, err );
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoReplaceItemL(): end");
- }
-// ----------------------------------------------------------------------------
-// void CNSmlNotepadDataStore::DoReadItemL()
-// ----------------------------------------------------------------------------
-void CNSmlNotepadDataStore::DoReadItemL( TDes8& aBuffer )
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoReadItemL(): begin");
- if ( iState != ENSmlItemOpen || !iItemData )
- {
- iReaderPosition = -1;
- User::Leave( KErrNotReady );
- }
- if ( iReaderPosition == -1 )
- {
- User::Leave( KErrEof );
- }
-
- if ( aBuffer.MaxSize() <= iItemData->Size() )
- {
- //iItemData->Read( 0, aBuffer );
- //iReaderPosition = -1;
- if (iReaderPosition < (iItemData->Size() - iReaderPosition))
- {
- iItemData->Read( iReaderPosition , aBuffer);
- iReaderPosition = iReaderPosition + aBuffer.Size();
- }
- else
- {
- if (aBuffer.MaxLength() <= (iItemData->Size() - iReaderPosition))
- {
- iItemData->Read( iReaderPosition , aBuffer, aBuffer.MaxLength() );
- }
- else
- {
- iItemData->Read( iReaderPosition , aBuffer, (iItemData->Size() - iReaderPosition) );
- }
- iReaderPosition = -1;
- }
- }
- else
- {
- TInt length = iItemData->Size() - iReaderPosition;
- if ( aBuffer.Size() <= length )
- {
- iItemData->Read( iReaderPosition , aBuffer );
- iReaderPosition = -1;
- }
- else
- {
- iItemData->Read( iReaderPosition , aBuffer, aBuffer.Size() );
- iReaderPosition = iReaderPosition + aBuffer.Size();
- }
- }
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoReadItemL(): end");
- }
-
-// ----------------------------------------------------------------------------
-// void CNSmlNotepadDataStore::DoWriteItemL()
-// ----------------------------------------------------------------------------
-void CNSmlNotepadDataStore::DoWriteItemL( const TDesC8& aData )
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoWriteItemL(): begin");
- if ( iState == ENSmlItemCreating || iState == ENSmlItemUpdating )
- {
- TInt totalSize = aData.Size() + iItemData->Size();
- if( SysUtil::DiskSpaceBelowCriticalLevelL( &iRfs, totalSize, iDrive ) )
- {
- User::RequestComplete(iCallerStatus, KErrDiskFull);
- return;
- }
- if ( iItemData )
- {
- if ( iWriterPosition == -1 )
- {
- User::Leave( KErrEof );
- }
- iItemData->InsertL( iWriterPosition , aData );
- iWriterPosition = aData.Size();
- return;
- }
- }
- User::Leave( KErrNotReady );
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoWriteItemL(): end");
- }
-
-// ----------------------------------------------------------------------------
-// void CNSmlNotepadDataStore::DoCommitItemL()
-// ----------------------------------------------------------------------------
-void CNSmlNotepadDataStore::DoCommitItemL( TRequestStatus& aStatus )
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoCommitItemL(): begin");
- iCallerStatus = &aStatus;
- *iCallerStatus = KRequestPending;
- if ( iState == ENSmlItemCreating || iState == ENSmlItemUpdating )
- {
- if ( !iItemData )
- {
- User::RequestComplete( iCallerStatus, KErrNotReady );
- return;
- }
- }
- else
- {
- User::RequestComplete(iCallerStatus, KErrNotReady );
- return;
- }
- iItemData->Compress();
- TInt err(KErrNone);
- if ( iState == ENSmlItemCreating )
- {
- iState = ENSmlClosed;
- TSmlDbItemUid newUid;
- err = DoAddItemToDataBaseL( *iItemData,newUid);
- *iAddItemId = newUid;
- }
- else // ENSmlItemUpdating
- {
- iState = ENSmlClosed;
- err = DoReplaceItemAtDataBaseL( *iItemData, iReplaceItemId );
- }
- iReplaceItemId = -1;
- iWriterPosition = -1;
- iState = ENSmlOpenAndWaiting;
- if ( iItemData )
- {
- delete iItemData;
- iItemData = NULL;
- }
- User::RequestComplete( iCallerStatus, err);
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoCommitItemL(): end");
- }
-
-// ----------------------------------------------------------------------------
-// void CNSmlNotepadDataStore::DoCloseItem()
-// ----------------------------------------------------------------------------
-void CNSmlNotepadDataStore::DoCloseItem()
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoCloseItem(): begin");
- if ( iState == ENSmlItemOpen )
- {
- iReaderPosition = -1;
- if ( iItemData )
- {
- delete iItemData;
- iItemData = NULL;
- }
- iState = ENSmlOpenAndWaiting;
- }
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoCloseItem(): end");
- }
-
-
-// ----------------------------------------------------------------------------
-// void CNSmlNotepadDataStore::DoMoveItemL()
-// ----------------------------------------------------------------------------
-void CNSmlNotepadDataStore::DoMoveItemL( TSmlDbItemUid /*aUid*/,
- TSmlDbItemUid /*aNewParent*/,
- TRequestStatus& aStatus )
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoMoveItemL(): begin");
- iCallerStatus = &aStatus;
- *iCallerStatus = KRequestPending;
- if ( iState != ENSmlOpenAndWaiting )
- {
- User::RequestComplete( iCallerStatus, KErrNotReady );
- return;
- }
- User::RequestComplete( iCallerStatus, KErrNotSupported );
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoMoveItemL(): end");
- }
-
-// ----------------------------------------------------------------------------
-// void CNSmlNotepadDataStore::DoDeleteItemL()
-// ----------------------------------------------------------------------------
-void CNSmlNotepadDataStore::DoDeleteItemL( TSmlDbItemUid aUid, TRequestStatus& aStatus )
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoDeleteItemL(): begin");
- iCallerStatus = &aStatus;
- *iCallerStatus = KRequestPending;
- if ( iState != ENSmlOpenAndWaiting )
- {
- // Items cannot be deleted if some of them is opened
- User::RequestComplete( iCallerStatus, KErrNotReady );
- return;
- }
- iItemData = CBufFlat::NewL( KNSmlItemDataExpandSize );
- CNpdItem *note;
- note = CNpdItem::NewLC();
- TInt itemFound;
- TRAP(itemFound,iNpdDb->GetNoteL(aUid, *note));
- CleanupStack::PopAndDestroy(note); // for note
- if( itemFound != KErrNone)
- {
- delete iItemData;
- iItemData = NULL;
-
- User::RequestComplete( iCallerStatus, KErrNotFound );
- return;
- }
- TRAPD( err, iNpdDb->DeleteNoteL( aUid ) );
- if( err == KErrNone )
- {
- if(iChangeFinder)
- {
- iChangeFinder->ItemDeleted( TNSmlSnapshotItem( aUid ) );
- }
- }
- User::RequestComplete(iCallerStatus, err);
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoDeleteItemL(): end");
- }
-
-// ----------------------------------------------------------------------------
-// void CNSmlNotepadDataStore::DoSoftDeleteItemL()
-// ----------------------------------------------------------------------------
-void CNSmlNotepadDataStore::DoSoftDeleteItemL( TSmlDbItemUid aUid, TRequestStatus& aStatus )
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoSoftDeleteItemL(): begin");
- DoDeleteItemL( aUid,aStatus );
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoSoftDeleteItemL(): end");
- }
-
-// ----------------------------------------------------------------------------
-// void CNSmlNotepadDataStore::DoDeleteAllItemsL()
-// ----------------------------------------------------------------------------
-void CNSmlNotepadDataStore::DoDeleteAllItemsL( TRequestStatus& aStatus )
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoDeleteAllItemsL(): begin");
- iCallerStatus = &aStatus;
- *iCallerStatus = KRequestPending;
- if ( iState != ENSmlOpenAndWaiting )
- {
- // Items cannot be deleted if they are opened.
- User::RequestComplete(iCallerStatus, KErrNotReady);
- return;
- }
- iNpdDb->ResetL();
- if( iChangeFinder )
- {
- iChangeFinder->ResetL();
- }
- iSnapshotRegistered = EFalse;
- User::RequestComplete(iCallerStatus, KErrNone);
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoDeleteAllItemsL(): end");
- }
-
-// ----------------------------------------------------------------------------
-// TBool CNSmlNotepadDataStore::DoHasSyncHistory()
-// ----------------------------------------------------------------------------
-TBool CNSmlNotepadDataStore::DoHasSyncHistory() const
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoHasSyncHistory(): begin");
- TBool doHasSyncHistory = EFalse;
- if( !iDataBaseOpened )
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoHasSyncHistory(): NOT OPEN end");
- return doHasSyncHistory;
- }
-
- if( iSyncHistory )
- {
- if ( iOpenedStoreId != iChangeFinder->DataStoreUid() )
- {
- iChangeFinder->SetDataStoreUid( iOpenedStoreId );
- doHasSyncHistory = EFalse;
- }
- else
- {
- doHasSyncHistory = ETrue;
- }
- }
- else
- {
- iChangeFinder->SetDataStoreUid( iOpenedStoreId );
- }
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoHasSyncHistory(): end");
- return doHasSyncHistory;
- }
-
-// ----------------------------------------------------------------------------
-// void CNSmlNotepadDataStore::DoAddedItems()
-// ----------------------------------------------------------------------------
-const MSmlDataItemUidSet& CNSmlNotepadDataStore::DoAddedItems() const
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoAddedItems(): begin");
- if ( iState == ENSmlOpenAndWaiting )
- {
- iNewUids->Reset();
- if( iChangeFinder )
- {
- TRAPD( err,iChangeFinder->FindNewItemsL( *iNewUids ) );
- if( err != KErrNone )
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoAddedItems(): LEAVE end");
- }
- }
- }
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoAddedItems(): end");
- return *iNewUids;
- }
-
-// ----------------------------------------------------------------------------
-// void CNSmlNotepadDataStore::DoDeletedItems()
-// ----------------------------------------------------------------------------
-const MSmlDataItemUidSet& CNSmlNotepadDataStore::DoDeletedItems() const
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoDeletedItems(): begin");
- if ( iState == ENSmlOpenAndWaiting )
- {
- iDeletedUids->Reset();
- if( iChangeFinder )
- {
- TRAPD(err,iChangeFinder->FindDeletedItemsL( *iDeletedUids ) );
- if( err != KErrNone )
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoDeletedItems(): LEAVE end");
- }
- }
- }
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoDeletedItems(): end");
- return *iDeletedUids;
- }
-
-// ----------------------------------------------------------------------------
-// void CNSmlNotepadDataStore::DoSoftDeletedItems()
-// ----------------------------------------------------------------------------
-const MSmlDataItemUidSet& CNSmlNotepadDataStore::DoSoftDeletedItems() const
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoSoftDeletedItems(): begin");
- if ( iState == ENSmlOpenAndWaiting )
- {
- iSoftDeletedUids->Reset();
- if( iChangeFinder )
- {
- TRAPD( err, iChangeFinder->FindSoftDeletedItemsL( *iSoftDeletedUids ) );
- if( err != KErrNone )
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoSoftDeletedItems(): LEAVE end");
- }
- }
- }
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoSoftDeletedItems: END");
- return *iSoftDeletedUids;
- }
-
-// ----------------------------------------------------------------------------
-// void CNSmlNotepadDataStore::DoModifiedItems()
-// ----------------------------------------------------------------------------
-const MSmlDataItemUidSet& CNSmlNotepadDataStore::DoModifiedItems() const
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoModifiedItems(): begin");
- if ( iState == ENSmlOpenAndWaiting )
- {
- iReplacedUids->Reset();
- if( iChangeFinder )
- {
- TRAPD( err, iChangeFinder->FindChangedItemsL( *iReplacedUids ) );
- if( err != KErrNone )
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoModifiedItems(): LEAVE end");
- }
- }
- }
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoModifiedItems: END");
- return *iReplacedUids;
- }
-
-// ----------------------------------------------------------------------------
-// void CNSmlNotepadDataStore::DoMovedItems()
-// ----------------------------------------------------------------------------
-const MSmlDataItemUidSet& CNSmlNotepadDataStore::DoMovedItems() const
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoMovedItems(): begin");
- if ( iState == ENSmlOpenAndWaiting )
- {
- iMovedUids->Reset();
- if( iChangeFinder )
- {
- TRAPD( err, iChangeFinder->FindMovedItemsL( *iMovedUids ) );
- if( err != KErrNone )
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoMovedItems(): LEAVE end");
- }
- }
- }
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoMovedItems: END");
- return *iMovedUids;
- }
-
-// ----------------------------------------------------------------------------
-// void CNSmlNotepadDataStore::DoResetChangeInfoL()
-// ----------------------------------------------------------------------------
-void CNSmlNotepadDataStore::DoResetChangeInfoL( TRequestStatus& aStatus )
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoResetChangeInfoL(): begin");
- iCallerStatus = &aStatus;
- *iCallerStatus = KRequestPending;
- if( iChangeFinder )
- {
- iChangeFinder->ResetL();
- }
- iSnapshotRegistered = EFalse;
- TInt err = FetchModificationsL();
- User::RequestComplete( iCallerStatus, err );
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoResetChangeInfoL(): end");
- }
-
-// ----------------------------------------------------------------------------
-// void CNSmlNotepadDataStore::DoCommitChangeInfoL()
-// ----------------------------------------------------------------------------
-void CNSmlNotepadDataStore::DoCommitChangeInfoL( TRequestStatus& aStatus,
- const MSmlDataItemUidSet& aItems )
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoCommitChangeInfoL(aItems): begin");
- iCallerStatus = &aStatus;
- *iCallerStatus = KRequestPending;
- if( iChangeFinder )
- {
- iChangeFinder->CommitChangesL( aItems );
- User::RequestComplete( iCallerStatus, KErrNone );
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoCommitChangeInfoL(aItems):success end");
- return;
- }
- User::RequestComplete( iCallerStatus, KErrNotReady );
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoCommitChangeInfoL(aItems): end");
- }
-
-// ----------------------------------------------------------------------------
-// void CNSmlNotepadDataStore::DoCommitChangeInfoL()
-// ----------------------------------------------------------------------------
-void CNSmlNotepadDataStore::DoCommitChangeInfoL( TRequestStatus& aStatus )
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoCommitChangeInfoL(): begin");
- iCallerStatus = &aStatus;
- *iCallerStatus = KRequestPending;
- if( iChangeFinder )
- {
- iChangeFinder->CommitChangesL();
- User::RequestComplete( iCallerStatus, KErrNone );
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoCommitChangeInfoL(): success end");
- return;
- }
- User::RequestComplete( iCallerStatus, KErrNotReady );
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoCommitChangeInfoL(): end");
- }
-
-// ----------------------------------------------------------------------------
-// CSmlDataStoreFormat* CNSmlNotepadDataStore::DoOwnStoreFormatL()
-// ----------------------------------------------------------------------------
-CSmlDataStoreFormat* CNSmlNotepadDataStore::DoOwnStoreFormatL()
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoOwnStoreFormatL(): begin");
- TFileName fileName;
- TParse parse;
-
- // Locate the resource file
- TFileName dllFileName;
- Dll::FileName( dllFileName );
-
- TFileName resourceFileName;
- resourceFileName.Copy( TParsePtrC( dllFileName ).Drive() );
- resourceFileName.Append(KNSmlNotepadStoreFormatRsc);
-
- parse.Set( resourceFileName, &KDC_RESOURCE_FILES_DIR, NULL );
- fileName = parse.FullName();
- RResourceFile resourceFile;
- BaflUtils::NearestLanguageFile( iRfs, fileName );
- resourceFile.OpenL( iRfs, fileName );
- CleanupClosePushL( resourceFile );
- HBufC8* notepadDataFormat = resourceFile.AllocReadLC( NSML_NOTEPAD_DATA_STORE_FORMAT );
- TResourceReader reader;
- reader.SetBuffer( notepadDataFormat );
- CSmlDataStoreFormat* lDsFormat = CSmlDataStoreFormat::NewLC( iStringPool, reader );
- CleanupStack::Pop(lDsFormat); // lDsFormat
- CleanupStack::PopAndDestroy(notepadDataFormat); // notepadDataFormat
- CleanupStack::PopAndDestroy();// resourceFile
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoOwnStoreFormatL(): end");
- return lDsFormat;
- }
-
-// ----------------------------------------------------------------------------
-// TInt CNSmlNotepadDataStore::OpenItemL(TSmlDbItemUid& aUid,CBufBase& aItem)
-// ----------------------------------------------------------------------------
-TInt CNSmlNotepadDataStore::OpenItemL(TSmlDbItemUid& aUid,CBufBase& aItem)
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::OpenItemL(): begin");
- TInt err = KErrNone;
- if(iNpdDb->IsOpen())
- {
- CNpdItem *note;
- note = CNpdItem::NewLC();
- TRAP(err,iNpdDb->GetNoteL(aUid, *note));
- if(err == KErrNone)
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore:: FetchItemL(): begin");
-
- HBufC8* buf = ConvertNoteToSyncItemL(*note);
- CleanupStack::PushL(buf);
- aItem.Reset();
- // Write the buffer to the passed writeStream (aItem)
- TBufBuf bufBuf;
- bufBuf.Set(aItem, 0, TBufBuf::EWrite);
- RWriteStream writeStream( &bufBuf);
- writeStream.PushL();
- writeStream.WriteL(buf->Des().Ptr(), buf->Des().Length());
- writeStream.CommitL();
- CleanupStack::PopAndDestroy(1);//writeStream
- CleanupStack::PopAndDestroy(buf);//buf
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::FetchItemL(): end");
- }
- CleanupStack::PopAndDestroy(note); // note
- }
- else
- {
- err = KErrNotReady;
- }
-
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::OpenItemL(): end");
- return err;
-}
-
-// ----------------------------------------------------------------------------
-// TInt CNSmlNotepadDataStore::ConvertSyncItemToNoteL(const TDesC8& aSyncItem, CNpdItem& aNote)
-// ----------------------------------------------------------------------------
-TInt CNSmlNotepadDataStore::ConvertSyncItemToNoteL(const TDesC8& aSyncItem, CNpdItem& aNote)
- {
- TInt err(KErrNone);
- TTime gmt;
- gmt.UniversalTime();
- gmt.RoundUpToNextMinute();
- gmt -= TTimeIntervalMinutes(1);
- HBufC *note = NULL;
- if(&aSyncItem)
- {
- RDesReadStream stream(aSyncItem);
- CPlainText *text;
- text = CPlainText::NewL();
- CleanupStack::PushL(text);
- CPlainText::TImportExportParam param;
- param.iForeignEncoding = KCharacterSetIdentifierUtf8;
- param.iOrganisation = CPlainText::EOrganiseByParagraph;
- param.iGuessForeignEncoding = EFalse;
- CPlainText::TImportExportResult result;
- text->ImportTextL(0,stream,param,result);
- stream.Close();
- note = HBufC::NewL(result.iOutputChars);
- CleanupStack::PushL(note);
- TPtr tmpdes = note->Des();
- text->Extract(tmpdes,0);
- CleanupStack::Pop(note);
- CleanupStack::PopAndDestroy(text);
- }
- aNote.SetContent(note);
- aNote.SetModified(gmt);
- return err;
- }
-
-// ----------------------------------------------------------------------------
-// HBufC8* CNSmlNotepadDataStore::ConvertNoteToSyncItemL(CNpdItem& aNote)
-// ----------------------------------------------------------------------------
-HBufC8* CNSmlNotepadDataStore::ConvertNoteToSyncItemL(CNpdItem& aNote)
- {
- if (!aNote.Content())
- {
- HBufC8* tempHBuf = HBufC8::NewL(KNullCharLen);//room for null character
- return tempHBuf;
- }
- // Note: a single unicode character can be 4 bytes long in UTF8 format,
- // hence the long length for 8-bit buffer.
- TInt length = (aNote.Content()->Length()) * KUTF8Lenght;
- HBufC8* tempHBuf = HBufC8::NewLC(length + KNullCharLen);
- CPlainText *text = CPlainText::NewL();
- CleanupStack::PushL(text);
- text->InsertL(0,aNote.Content()->Des());
- CPlainText::TImportExportResult result;
- CPlainText::TImportExportParam param;
- param.iForeignEncoding = KCharacterSetIdentifierUtf8;
- param.iOrganisation = CPlainText::EOrganiseByParagraph;
- param.iGuessForeignEncoding = EFalse;
- param.iMaxOutputChars = length;
- TPtr8 ptr = tempHBuf->Des();
- RDesWriteStream stream(ptr);
- text->ExportTextL(0,stream,param,result);
- stream.Close();
- CleanupStack::PopAndDestroy(text);
- CleanupStack::Pop(tempHBuf);//pop the HBufC8 temp
- return (tempHBuf);
- }
-
-// ----------------------------------------------------------------------------
-// TInt CNSmlNotepadDataStore::DoAddItemToDataBaseL(CBufBase& aItem)
-// ----------------------------------------------------------------------------
-TInt CNSmlNotepadDataStore::DoAddItemToDataBaseL(CBufBase& aItem,TInt& aUid)
-{
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoAddItemToDataBaseL: begin");
- TInt lKey = -1;
- TInt length = aItem.Size();
- HBufC8* buf = HBufC8::NewLC(length*KUnicodeSize + KNullCharLen);
- buf->Des().Copy(aItem.Ptr(0));
- TPtr8 lPtr(buf->Des());
- CNpdItem *note;
- note = CNpdItem::NewLC();
- TInt err(KErrNone);
- err = ConvertSyncItemToNoteL(*buf, *note);
- if(err != KErrNone)
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoAddItemToDataBaseL: conversion error");
- }
- else
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoAddItemToDataBaseL: before adding to notepad db");
- TRAP(err,iNpdDb->AddNoteL(*note,lKey));
- if(err!=KErrNone)
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoAddItemToDataBaseL: Addnote error");
- }
- else
- {
- TNSmlSnapshotItem item( lKey );
- TTime lLastModified = note->LastModified();
- item.SetLastChangedDate(lLastModified);
- item.SetSoftDelete( EFalse );
- iChangeFinder->ItemAddedL( item );
- }
- }
- aUid = lKey;
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoAddItemToDataBaseL: after adding to notepad db");
- CleanupStack::PopAndDestroy(note);//note
- CleanupStack::PopAndDestroy(buf);//buf
- return err;
-}
-// ----------------------------------------------------------------------------
-// void CNSmlNotepadDataStore::DoReplaceItemAtDataBaseL(CBufBase& aItem, TInt& aUid)
-// ----------------------------------------------------------------------------
-TInt CNSmlNotepadDataStore::DoReplaceItemAtDataBaseL(CBufBase& aItem, TInt& aUid)
-{
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoReplaceItemAtDataBaseL: begin");
- TInt length = aItem.Size();
- HBufC8* buf = HBufC8::NewLC(length*KUnicodeSize + KNullCharLen);
- buf->Des().Copy(aItem.Ptr(0));
- TPtr8 lPtr(buf->Des());
- CNpdItem *note;
- note = CNpdItem::NewLC();
- TInt err(KErrNone);
- err = ConvertSyncItemToNoteL(*buf, *note);
- if(err != KErrNone)
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoReplaceItemAtDataBaseL: conversion error");
- }
- else
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoReplaceItemAtDataBaseL: before updating into notepad db");
- TRAP(err,iNpdDb->UpdateNoteL(aUid,*note));
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoReplaceItemAtDataBaseL: after updating into notepad db");
- if(err!=KErrNone)
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoReplaceItemAtDataBaseL: updating error");
- }
- else
- {
- TNSmlSnapshotItem item( aUid );
- item.SetLastChangedDate( note->LastModified() );
- item.SetSoftDelete( EFalse );
- iChangeFinder->ItemUpdatedL( item );
- }
- }
- CleanupStack::PopAndDestroy(note);//note
- CleanupStack::PopAndDestroy(buf); //buf
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::DoReplaceItemAtDataBaseL: end");
- return err;
-}
-
-// ------------------------------------------------------------------------------------------------
-// CNSmlNotepadDataStore::DriveBelowCriticalLevelL()
-// ------------------------------------------------------------------------------------------------
-TBool CNSmlNotepadDataStore::DriveBelowCriticalLevelL( TInt aSize )
- {
- return SysUtil::DiskSpaceBelowCriticalLevelL( &iRfs, aSize, iDrive );
- }
-
-// ----------------------------------------------------------------------------
-// TInt CNSmlNotepadDataStore::FetchModificationsL()
-// ----------------------------------------------------------------------------
-TInt CNSmlNotepadDataStore::FetchModificationsL()
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::FetchModificationsL: begin");
- TInt err( KErrNone );
- CArrayPtr<CNpdItem>* arrNpdItem = NULL;
- arrNpdItem = iNpdDb->FetchItemsLC();
-
- if( !iSnapshot )
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::FetchModificationsL: inside if(!isnapshot)");
- iSnapshot = new (ELeave) CArrayFixSeg<TNSmlSnapshotItem>( 8 );
- }
-
- if( !iSnapshotRegistered )
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::FetchModificationsL: inside if(!iSnapshotRegistered)");
- for( TInt count = 0; count < arrNpdItem->Count(); count++ )
- {
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::FetchModificationsL: inside for before snap");
- TNSmlSnapshotItem snap( arrNpdItem->At( count )->Key() );
- snap.SetLastChangedDate( arrNpdItem->At( count )->LastModified() );
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::FetchModificationsL: inside for before insertisql");
- iSnapshot->InsertIsqL( snap, iKey );
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::FetchModificationsL: inside for after insertisql");
- }
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::FetchModificationsL: for loop ends");
- iSnapshot->Compress();
- iChangeFinder->SetNewSnapshot( iSnapshot ); // changefinder takes ownership
- iSnapshot = NULL;
- iSnapshotRegistered = ETrue;
- }
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::FetchModificationsL: before popanddestroy arrnpditem");
- CleanupStack::PopAndDestroy(arrNpdItem);
- _NOTEPAD_DBG_FILE("CNSmlNotepadDataStore::FetchModificationsL: end");
- return err;
- }
-
-// End of File