public Process CreateProcess(IHostApplication host, ScriptModuleHandle moduleHandle, ICodeSource src) { SetGlobalEnvironment(host, src); var module = _engine.LoadModuleImage(moduleHandle); return(InitProcess(host, src, ref module)); }
public LoadedModuleHandle LoadModuleImage(ScriptModuleHandle moduleImage) { var handle = new LoadedModuleHandle(); handle.Module = new LoadedModule(moduleImage.Module); return(handle); }
public void NotifyClassAdded(ScriptModuleHandle module, string symbol) { _externalScripts.Add(new UserAddedScript() { Type = UserAddedScriptType.Class, Symbol = symbol, Module = module }); }
public void NotifyModuleAdded(ScriptModuleHandle module, string symbol) { var script = new UserAddedScript() { Type = UserAddedScriptType.Module, Symbol = symbol, Module = module }; _externalScripts.Add(script); SetGlobalProperty(script.Symbol, null); }
public void LoadAndRegister(string typeName, ScriptModuleHandle moduleHandle) { if (_loadedModules.ContainsKey(typeName)) { return; } var loadedHandle = _engine.LoadModuleImage(moduleHandle); _loadedModules.Add(typeName, loadedHandle.Module); TypeManager.RegisterType(typeName, typeof(AttachedScriptsFactory)); }
public void LoadAndRegister(string typeName, ScriptModuleHandle moduleHandle) { if (_loadedModules.ContainsKey(typeName)) { var alreadyLoadedSrc = _loadedModules[typeName].ModuleInfo.Origin; var currentSrc = moduleHandle.Module.ModuleInfo.Origin; if (alreadyLoadedSrc != currentSrc) { throw new RuntimeException("Type «" + typeName + "» already registered"); } return; } var loadedHandle = _engine.LoadModuleImage(moduleHandle); _loadedModules.Add(typeName, loadedHandle.Module); TypeManager.RegisterType(typeName, typeof(AttachedScriptsFactory)); }
public Process CreateProcess(IHostApplication host, ScriptModuleHandle moduleHandle, ICodeSource src) { return(CreateProcess(host, moduleHandle.Module, src)); }
public BinaryCodeSource(ScriptModuleHandle mh) { _mh = mh; }
public void Write(TextWriter output, ScriptModuleHandle module) { WriteImage(output, module.Module); }
public void LoadAndRegister(string typeName, ScriptModuleHandle moduleHandle) { LoadAndRegister(typeName, moduleHandle.Module); }
public void NotifyModuleAdded(ScriptModuleHandle module, string symbol) { NotifyModuleAdded(module.Module, symbol); }
get => new ScriptModuleHandle() { Module = Image }; set => Image = value.Module; }
private ModuleImage FromHandle(ScriptModuleHandle module) { return(module.Module); }
public void Save(ScriptModuleHandle module, Stream output) { _formatter.Serialize(output, FromHandle(module)); }