void CEnvEffectsScript::ParseScriptFile( void ) { int length = 0; m_ScriptElements.RemoveAll(); const char *pScriptName = GetScriptFile(); //Reset everything. g_bUnget = false; currenttoken = NULL; tokencount = 0; memset( token, 0, 1204 ); memset( name, 0, 256 ); unsigned char *buffer = (unsigned char *)UTIL_LoadFileForMe( pScriptName, &length ); if ( length <= 0 || !buffer ) { DevMsg( 1, "CEnvEffectsScript: failed to load %s\n", pScriptName ); return; } currenttoken = (const char *)buffer; LoadFromBuffer( pScriptName, (const char *)buffer ); UTIL_FreeFile( buffer ); }
void CSecMgrStore::RegisterScriptL(TExecutableID aExecID, const CScript& aScript) { HBufC *scriptFile = HBufC::NewLC(KMaxName); TPtr ptr(scriptFile->Des()); User::LeaveIfError(GetScriptFile(ptr,aExecID)); CFileStore* store = CPermanentFileStore::ReplaceLC (iFsSession, ptr, EFileWrite); // Must say what kind of file store. store->SetTypeL (KPermanentFileStoreLayoutUid); // Construct the output stream. RStoreWriteStream outstream; TStreamId id = outstream.CreateLC (*store); aScript.ExternalizeL (outstream); // Commit changes to the stream outstream.CommitL (); // Cleanup the stream object CleanupStack::PopAndDestroy (&outstream); // Set this stream id as the root store->SetRootL (id); // Commit changes to the store store->CommitL (); CleanupStack::PopAndDestroy (store); CleanupStack::PopAndDestroy (scriptFile); }
TInt CSecMgrStore::GetScriptFile(TExecutableID aExecID, TDes& aScriptFile) { TInt ret(GetScriptFile (aScriptFile,aExecID)); if ( KErrNone==ret) { if ( !BaflUtils::FileExists(iFsSession, aScriptFile)) { return ErrInvalidScriptID; } } return ret; }
void CSecMgrStore::UnRegisterScriptL(TExecutableID aExecID) { HBufC *scriptFile = HBufC::NewLC(KMaxName); TPtr ptr(scriptFile->Des()); User::LeaveIfError (GetScriptFile (ptr,aExecID)); if ( BaflUtils::FileExists (iFsSession, ptr)) iFsSession.Delete (ptr); else { User::Leave(ErrInvalidScriptID); } CleanupStack::PopAndDestroy (scriptFile); }
ScriptFile* ResourceMgr::GetScriptFile(const string& Path) { if (ScriptFile* pCache = CacheHolder.Read(Path)) return pCache; ScriptFile* pScript = ReadScriptFile(Path); if (!pScript) return nullptr; for (const string& i : pScript->GetIncludes()) GetScriptFile(i); CacheHolder.Write(Path, pScript); return pScript; }
TInt CSecMgrStore::ReadScriptInfo(TExecutableID aExecID, CScript& aScriptInfo) { __UHEAP_MARK; HBufC *scriptFile = HBufC::NewLC(KMaxName); TPtr ptr(scriptFile->Des()); TInt ret(GetScriptFile (ptr, aExecID)); if ( KErrNone==ret) { if ( !BaflUtils::FileExists(iFsSession, ptr)) { return ErrInvalidScriptID; } CFileStore* store= NULL; store=CPermanentFileStore::OpenLC (iFsSession, ptr, EFileShareAny); if ( KErrNone==ret) { RStoreReadStream instream; instream.OpenLC (*store, store->Root ()); aScriptInfo.InternalizeL (instream); CleanupStack::PopAndDestroy (&instream); CleanupStack::PopAndDestroy (store); } return ret; } CleanupStack::PopAndDestroy (scriptFile); __UHEAP_MARKEND; return ret; }