void CVersitTest::StreamInL() //Convert the iVersit into stream format, save it as "ExpDelVersitIn" //and internalize it as a CVersitParser { RFile file; FileRegister->CreateTempFileLC(file, _L("ExpDelVersit2")); CDirectFileStore* store = CDirectFileStore::NewLC(file); store->SetTypeL(KDirectFileStoreLayoutUid); RStoreWriteStream outstream; TStreamId id = outstream.CreateLC(*store); TInt length=iVersit.Length(); for (TInt ii=0; ii<length; ii++) outstream.WriteInt8L(iVersit[ii]); outstream.CommitL(); CleanupStack::PopAndDestroy(); store->SetRootL(id); store->CommitL(); CleanupStack::PopAndDestroy(2); // store + file FileRegister->OpenTempFileLC(file, _L("ExpDelVersit2")); store = CDirectFileStore::NewLC(file); RStoreReadStream instream; instream.OpenLC(*store,store->Root()); iParser->InternalizeL(instream); CleanupStack::PopAndDestroy(3); //store + stream + file }
void CCreGenerator::CreateReposFromCreL(RFs& aFs,CHeapRepository& aRep, const TDesC& aFilePath #ifdef SYMBIAN_CENTREP_SUPPORT_MULTIROFS ,TUint8& aCreVersion #endif ) { RFile file; TInt err = file.Open(aFs,aFilePath,EFileRead|EFileShareReadersOnly); if (err != KErrNone) { if(err ==KErrNotFound || err==KErrPathNotFound) User::Leave(KErrNotFound); else User::Leave(err); } CleanupClosePushL(file); CDirectFileStore* store = CDirectFileStore::FromLC (file); if(store->Type()[0] != KDirectFileStoreLayoutUid) { User::Leave(KErrCorrupt); } // Get the root stream and attempt to read the index from it TStreamId rootStreamId = store->Root() ; RStoreReadStream rootStream ; rootStream.OpenLC(*store, rootStreamId); // Internalize the repository InternalizeCreL(aRep, rootStream #ifdef SYMBIAN_CENTREP_SUPPORT_MULTIROFS ,aCreVersion #endif ); CleanupStack::PopAndDestroy(3, &file); }
void CVersitTest::Stream2LC(RReadStream& aStream) { GetSampleVersit2L(); RFile file; FileRegister->CreateTempFileLC(file, _L("ExpDelVersitIn2")); CDirectFileStore* store = CDirectFileStore::NewLC(file); store->SetTypeL(KDirectFileStoreLayoutUid); RStoreWriteStream outstream; TStreamId id = outstream.CreateLC(*store); TInt length=iVersit.Length(); for (TInt ii=0; ii<length; ii++) outstream.WriteInt8L(iVersit[ii]); outstream.CommitL(); CleanupStack::PopAndDestroy(); store->SetRootL(id); store->CommitL(); CleanupStack::PopAndDestroy(); // store FileRegister->OpenTempFileLC(file, _L("ExpDelVersitIn2")); store = CDirectFileStore::NewLC(file); RStoreReadStream instream; instream.OpenLC(*store,store->Root()); CleanupStack::Pop(); // instream aStream=RReadStream(instream); }