public static int Save(MachineInstance machiniInstance) { var a = new MachineInstance { MachineInsId = machiniInstance.MachineInsId, MachineInsName = machiniInstance.MachineInsName, MachineInsDate = machiniInstance.MachineInsDate }; using (_d = new DataRepository <MachineInstance>()) { if (machiniInstance.MachineInsId > 0) { _d.Update(a); } else { _d.Add(a); } _d.SaveChanges(); } return(a.MachineInsId); }
public void OnAttach(MachineInstance machine, out IVariable[] variables, out MethodInfo[] methods) { UpdateState(); variables = _state; methods = AttachMethods(); }
public static void PrepareThread(this MachineInstance machine, RuntimeEnvironment env) { if (!machine.IsRunning) { env.LoadMemory(machine); } }
public void OnAttach(MachineInstance machine, out IVariable[] variables, out MethodInfo[] methods, out IRuntimeContextInstance instance) { UpdateState(); variables = _state; int totalMethods = METHOD_COUNT + _module.Methods.Length; methods = new MethodInfo[totalMethods]; var moduleMethods = _module.Methods.Select(x => x.Signature).ToArray(); for (int i = 0; i < totalMethods; i++) { if (MethodDefinedInScript(i)) { methods[i] = moduleMethods[i]; } else { methods[i] = GetOwnMethod(i); } } instance = this; _machine = machine; }
public void LoadMemory(MachineInstance machine) { machine.Cleanup(); foreach (var item in AttachedContexts) { machine.AttachContext(item); } machine.ContextsAttached(); }
public virtual void AttachToThread(MachineInstance machine) { _machinesOnThreads[Thread.CurrentThread.ManagedThreadId] = new MachineWaitToken() { Machine = machine }; machine.MachineStopped += Machine_MachineStopped; }
public void OnAttach(MachineInstance machine, out IVariable[] variables, out MethodInfo[] methods, out IRuntimeContextInstance instance) { variables = _state; methods = GetMethods().ToArray(); instance = this; }
public ScriptingEngine() { _machine = MachineInstance.Current; TypeManager.Initialize(new StandartTypeManager()); GlobalsManager.Reset(); ContextDiscoverer.DiscoverClasses(System.Reflection.Assembly.GetExecutingAssembly()); _scriptFactory = new ScriptSourceFactory(); }
public static bool Delete(MachineInstance machineInstance) { using (_d = new DataRepository <MachineInstance>()) { _d.Delete(machineInstance); _d.SaveChanges(); } return(true); }
public void Initialize(MachineInstance runner) { _machine = runner; _machine.StateConsistentOperation(() => { _machine.SetModule(_module); _machine.AttachContext(this, true); _machine.ExecuteModuleBody(); }); }
public void OnAttach(MachineInstance machine, out IVariable[] variables, out MethodInfo[] methods, out IRuntimeContextInstance instance) { UpdateState(); variables = _state; methods = AttachMethods(); instance = this; _machine = machine; }
public void Initialize(MachineInstance runner) { _machine = runner; _machine.StateConsistentOperation(() => { _machine.SetModule(_module); _machine.AttachContext(this, true); _machine.ExecuteModuleBody(); }); var methId = GetScriptMethod("ПриСозданииОбъекта", "OnObjectCreate"); int constructorParamsCount = ConstructorParams.Count(); if (methId > -1) { bool hasParamsError = false; var procInfo = GetMethodInfo(methId); int procParamsCount = procInfo.Params.Count(); if (procParamsCount < constructorParamsCount) { hasParamsError = true; } int reqParams = 0; foreach (var itm in procInfo.Params) { if (!itm.HasDefaultValue) { reqParams++; } } if (reqParams > constructorParamsCount) { hasParamsError = true; } if (hasParamsError) { throw new RuntimeException("Параметры конструктора: " + "необходимых параметров: " + Math.Min(procParamsCount, reqParams).ToString() + ", передано параметров " + constructorParamsCount.ToString() ); } CallAsProcedure(methId, ConstructorParams); } else { if (constructorParamsCount > 0) { throw new RuntimeException("Конструктор не определен, но переданы параметры конструктора."); } } }
private void SetInstance(MachineInstance instance) { m_Instance = instance; m_Instance.OnMachineExit += M_Instance_OnMachineExit;; m_IgnoreClose = false; lblRoot.Text = "Root: " + instance.Profile.ProfileRoot; lbl_PID.Text = "PID: " + instance.PID; lbl_Profile.Text = "Profile: " + instance.Profile.Name; rtb_StartArgs.Text = instance.Profile.StartArguments; }
public void OnAttach(MachineInstance machine, out IVariable[] variables, out MethodInfo[] methods, out IRuntimeContextInstance instance) { variables = new IVariable[this.Count]; for (int i = 0; i < variables.Length; i++) { variables[i] = Variable.CreateContextPropertyReference(this, i); } methods = new MethodInfo[0]; instance = this; }
public void OnAttach(MachineInstance machine, out IVariable[] variables, out MethodInfo[] methods) { variables = _state; methods = new MethodInfo[_methods.Count]; for (int i = 0; i < _methods.Count; i++) { methods[i] = _methods.GetMethodInfo(i); } }
public void OnAttach(MachineInstance machine, out IVariable[] variables, out MethodInfo[] methods) { var state = _osGlobal.GetProperties().ToArray(); variables = new IVariable[state.Length]; for (int i = 0; i < state.Length; i++) { variables[i] = Variable.CreateContextPropertyReference(_osGlobal, i, state[i].Identifier); } methods = _osGlobal.GetMethods().ToArray(); }
private void btn_Run_Click(object sender, EventArgs e) { string item = cb_Profile.SelectedItem.ToString(); Machine m = Machine.Create(MachineProfile.GetByName(item)); MachineInstance instance = m.CreateInstance(); MachineInstanceControl instanceControl = new MachineInstanceControl(instance); instanceControl.Show(); }
protected override void OnMachineStopped(MachineInstance machine, MachineStopReason reason) { if (!CallbackChannelIsReady()) { return; // нет подписчика } var handle = GetTokenForThread(Thread.CurrentThread.ManagedThreadId); handle.ThreadEvent.Reset(); _eventChannel.ThreadStopped(1, ConvertStopReason(reason)); handle.ThreadEvent.Wait(); }
public ScriptingEngine() { _machine = MachineInstance.Current; TypeManager.Initialize(new StandartTypeManager()); TypeManager.RegisterType("Сценарий", typeof(UserScriptContextInstance)); GlobalsManager.Reset(); AttachAssembly(System.Reflection.Assembly.GetExecutingAssembly()); _scriptFactory = new ScriptSourceFactory(); DirectiveResolvers = new DirectiveMultiResolver(); }
public void OnAttach(MachineInstance machine, out IVariable[] variables, out MethodInfo[] methods) { variables = new IVariable[this.Count]; var props = GetProperties().OrderBy(x => x.Value).Select(x => x.Key).ToArray(); Debug.Assert(props.Length == variables.Length); for (var i = 0; i < variables.Length; i++) { variables[i] = Variable.CreateContextPropertyReference(this, i, props[i]); } methods = new MethodInfo[0]; }
private void btnRunWithBios_Click(object sender, EventArgs e) { string item = cb_Profile.SelectedItem.ToString(); MachineProfile p = MachineProfile.GetByName(item); if (ofdBios.ShowDialog() == DialogResult.OK) { p.BiosPath = ofdBios.FileName; Machine m = Machine.Create(p); MachineInstance instance = m.CreateInstance(); MachineInstanceControl instanceControl = new MachineInstanceControl(instance); instanceControl.Show(); } }
public void OnMachineReady(MachineInstance instance) { _machine = instance; _machine.MachineStopped += MachineStopHanlder; }
public override void OnAttach(MachineInstance machine, out IVariable[] variables, out MethodInfo[] methods) { variables = new [] { Variable.CreateContextPropertyReference(this, 0, GetPropName(0)) }; methods = new MethodInfo[0]; }
public MachineStopManager(MachineInstance runner) { _machine = runner; }
public MachineInstanceControl(MachineInstance instance) { InitializeComponent(); SetInstance(instance); }
public void OnAttach(MachineInstance machine, out IVariable[] variables, out MethodInfo[] methods, out IRuntimeContextInstance instance) { variables = new IVariable[0]; methods = (MethodInfo[])GetMethods(); instance = this; }
protected abstract void OnMachineStopped(MachineInstance machine, MachineStopReason reason);
public void Initialize(MachineInstance runner) { _machine = runner; OnInstanceCreation(); }
public void OnAttach(MachineInstance machine, out IVariable[] variables, out MethodInfo[] methods) { variables = new IVariable[0]; methods = (MethodInfo[])GetMethods(); }
public virtual void OnAttach(MachineInstance machine, out IVariable[] variables, out MethodInfo[] methods) { variables = new IVariable[0]; methods = this.GetMethods().ToArray(); }