/// <summary> /// Sets consumers /// </summary> /// <param name="collection">Consumers</param> /// <returns>Lists of parameters</returns> public virtual void Set(object collection) { IComponentCollection cc = collection as IComponentCollection; IDataRuntime rt = StaticExtensionDataPerformerPortable.Factory.Create(cc, 0); Clear(); variablesStr.Clear(); /* IEnumerable<IDataConsumer> consumers = cc.GetAll<IDataConsumer>(); * foreach (IDataConsumer c in consumers) * { * c.GetMeasurements(measurements); * }*/ List <object> l = new List <object>(); cc.ForEach <IDifferentialEquationSolver>((IDifferentialEquationSolver solver) => { if (solver is IMeasurements) { if (!l.Contains(solver)) { l.Insert(0, solver); } } if (solver is IDataConsumer) { (solver as IDataConsumer).GetDependentObjects(l); } } ); foreach (object o in l) { if (o is IMeasurements) { measurements.Add(o as IMeasurements); } } foreach (IMeasurements m in measurements) { IDataRuntimeFactory s = StaticExtensionDataPerformerPortable.Factory; if (m is IDifferentialEquationSolver) { IDifferentialEquationSolver ds = m as IDifferentialEquationSolver; Add(ds); } else if (s != null) { IDifferentialEquationSolver ds = rt.GetDifferentialEquationSolver(m); if (ds != null) { Add(ds); } } if (m is INormalizable) { Add(m as INormalizable); } } measurements.SortMeasurements(); }
public BasicEngineeringInitializer(OrdinaryDifferentialEquations.IDifferentialEquationSolver ordSolver, DataPerformer.Interfaces.IDifferentialEquationProcessor diffProcessor, IDataRuntimeFactory strategy, IApplicationInitializer[] initializers, bool throwsRepeatException) : base(initializers, throwsRepeatException) { this.ordSolver = ordSolver; this.diffProcessor = diffProcessor; this.strategy = strategy; }
/// <summary> /// Constructor /// </summary> /// <param name="factory">Factory</param> /// <param name="consumer">Data consumer</param> /// <param name="reason">reason</param> /// <param name="priority">priority</param> public DataConsumerRuntime(IDataRuntimeFactory factory, IDataConsumer consumer, string reason, int priority = 0) { this.reason = reason; this.factory = factory; this.consumer = consumer; this.priority = priority; Prepare(); }
private static void Initialize(OrdinaryDifferentialEquations.IDifferentialEquationSolver ordSolver, IDataRuntimeFactory strategy, IDatabaseCoordinator coordinator, IApplicationInitializer[] initializers, bool throwsRepeatException) { List <IApplicationInitializer> init = null; if (initializers == null) { init = new List <IApplicationInitializer>(); } else { init = new List <IApplicationInitializer>(initializers); } IApplicationInitializer initializer = new BasicEngineeringInitializer(ordSolver, DataPerformer.Portable.DifferentialEquationProcessors.RungeProcessor.Processor, strategy, init.ToArray(), throwsRepeatException); initializer.InitializeApplication(); }
public EngineeringInitializer(IDatabaseCoordinator coordinator, OrdinaryDifferentialEquations.IDifferentialEquationSolver ordSolver, DataPerformer.Portable.DifferentialEquationProcessors.DifferentialEquationProcessor diffProcessor, DataPerformer.Portable.Interfaces.IDataRuntimeFactory strategy, IApplicationInitializer[] initializers, bool throwsRepeatException, Dictionary <string, object>[] resources, TextWriter logWriter) { this.coordinator = coordinator; this.ordSolver = ordSolver; this.diffProcessor = diffProcessor; this.strategy = strategy; this.initializers = initializers; this.throwsRepeatException = throwsRepeatException; if (coordinator == null) { DataWarehouse.StaticExtensionDataWarehouse.SetAppBaseCoordinator(); } else { DataWarehouse.StaticExtensionDataWarehouse.Coordinator = coordinator; } this.resources = resources; this.logWriter = logWriter; }
/// <summary> /// Constructor /// </summary> /// <param name="factory">Factory</param> /// <param name="consumer">Data consumer</param> /// <param name="reason">Rerason</param> /// <param name="priority">Priority</param> public DataConsumerRuntime(IDataRuntimeFactory factory, IDataConsumer consumer, string reason, int priority) : base(factory, consumer, reason, priority) { }