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); }