コード例 #1
0
ファイル: t_expdel.cpp プロジェクト: Esclapion/qt-mobility
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
	}
コード例 #2
0
ファイル: cregen.cpp プロジェクト: kuailexs/symbiandump-os2
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);
}
コード例 #3
0
ファイル: t_expdel.cpp プロジェクト: Esclapion/qt-mobility
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);
	}