EXPORT_C void CImOffLineArrayStore::StoreL(CMsvStore& aMsvStore) const { RMsvWriteStream out; out.AssignLC( aMsvStore, KUidImQueuedOperationList ); ExternalizeL(out); out.CommitL(); CleanupStack::PopAndDestroy(); }
/** Writes the object to the specified message store. The function can leave with the standard stream leave codes. @param aStore Store to which to write */ EXPORT_C void TImEmailTransformingInfo::StoreL( CMsvStore& aStore ) const { RMsvWriteStream out; out.AssignLC( aStore, KUidMsgFileTransformingInfo ); // pushes 'out' to the stack ExternalizeL(out); out.CommitL(); CleanupStack::PopAndDestroy(); }
// ----------------------------------------------------------------------------- // CWPPushMessage::StoreL // ----------------------------------------------------------------------------- // EXPORT_C void CWPPushMessage::StoreL( CMsvStore& aStore ) const { TUid uid; uid.iUid = KProvisioningMessageStreamUid; aStore.Remove( uid ); RMsvWriteStream stream; stream.AssignLC( aStore, uid ); ExternalizeL( stream ); CleanupStack::PopAndDestroy(); // stream }
EXPORT_C void CImSSmtpSettings::StoreL(CMsvStore& aMsvStore) const { RMsvWriteStream out; out.AssignLC( aMsvStore, KUidMsvServiceEntry ); // pushes 'out' to the stack TRAPD(error, ExternalizeL(out)); if (error==KErrNone) out.CommitL(); out.Close(); // make sure we close the file User::LeaveIfError(error); aMsvStore.CommitL(); CleanupStack::PopAndDestroy(); }
/* Test to check the new API ** CopyStoreL(TInt aDrive, TMsvOp aOperationId, TRequestStatus& aStatus) */ LOCAL_C void TestCopyStoreOperationL() { CMsgsTestUtils::SetDriveL(EDriveC); CSessionObserver* ob = new(ELeave)CSessionObserver; CleanupStack::PushL(ob); // Set session in observer CMsvSession* session = CMsvSession::OpenAsyncL(*ob); ob->iSession = session; CleanupStack::PushL(session); CActiveScheduler::Start(); test(ob->iType==MMsvSessionObserver::EMsvServerReady); //Create an entry in the mail CMsvEntry* entry=session->GetEntryL(KMsvDraftEntryId); CleanupStack::PushL(entry); // create entry to work under TMsvEntry folder; folder.iType = KUidMsvFolderEntry; folder.iMtm = KUidMsvLocalServiceMtm; folder.iServiceId = KMsvLocalServiceIndexEntryId; _LIT(KTestDescription,"A Description"); _LIT(KTestDetails,"A Details"); folder.iDescription.Set(KTestDescription); folder.iDetails.Set(KTestDetails); entry->CreateL(folder); entry->SetEntryL(folder.Id()); CMsvStore* store=entry->EditStoreL(); CleanupStack::PushL(store); RMsvWriteStream stream; stream.AssignLC(*store,TUid::Uid(0x1000)); stream.WriteL(KTestDescription); stream.CommitL(); store->CommitL(); CleanupStack::PopAndDestroy(3); CTestActive* active = new(ELeave)CTestActive; CleanupStack::PushL(active); // Test Copy MailStore active->StartL(); CMsvOperation* operation = NULL; TDriveUnit unit =(EDriveD); operation = session->CopyStoreL(unit, active->iStatus); test(operation->Mtm() == KUidMsvServerMtm); CleanupStack::PushL(operation); CActiveScheduler::Start(); //Retrieve progress TPckgBuf<TMsvCopyProgress> package; package.Copy(operation->ProgressL()); test(package().iError == KErrNone); //delete session; CleanupStack::PopAndDestroy(4); //Check that both the source and destination //MailStore directory structure is same CMsgsTestUtils::WaitForServerClose(); CDir *srcDir; CDir *destDir; _LIT(intro, "Testing the directory structure"); _LIT(KEntryname,"%S"); theUtils->Printf(intro); TFileName dest = unit.Name(); dest.Append(KMsvDefaultFolder2); User::LeaveIfError(theUtils->FileSession().GetDir(dest, KEntryAttDir|KEntryAttNormal, ESortByName, destDir)); unit =EDriveC; TFileName src = unit.Name(); src.Append(KMsvDefaultFolder2); User::LeaveIfError(theUtils->FileSession().GetDir(src, KEntryAttDir|KEntryAttNormal, ESortByName, srcDir)); TInt counter=0; TEntry srcEntry; TEntry destEntry; while (counter<srcDir->Count()) { srcEntry = (*srcDir)[counter]; destEntry = (*destDir)[counter]; //Check the sizes test(srcEntry.iSize == destEntry.iSize); //Check the names test(srcEntry.iName == destEntry.iName); //Print out the names on the log theUtils->Printf(KEntryname,&(srcEntry.iName)); counter++; } delete srcDir; delete destDir; }