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 );
}
Esempio n. 2
0
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);

	}
Esempio n. 3
0
TInt CSecMgrStore::GetScriptFile(TExecutableID aExecID, TDes& aScriptFile)
	{
	TInt ret(GetScriptFile (aScriptFile,aExecID));

	if ( KErrNone==ret)
		{
		if ( !BaflUtils::FileExists(iFsSession, aScriptFile))
			{
			return ErrInvalidScriptID;
			}
		}

	return ret;
	}
Esempio n. 4
0
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);
	}
Esempio n. 5
0
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;
}
Esempio n. 6
0
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;
	}