using Enigmos.Exceptions; using Enigmos.Modules.ControllingModules; using Enigmos.Ports.DataPorts; namespace Enigmos.Modules.TerminalModules; public abstract partial class TerminalModule : BaseModule { public bool Finished { get; set; } protected virtual void Consume(RootModule root) { foreach (DataInPort port in Ports.OfType()) port.GetData(root); Finished = true; } public void ConsumeWithTimeoutHandle(RootModule root) { try { Finished = true; Consume(root); } catch (ModuleExecutionTimeout timeout) { TimeoutHandler(timeout); } } protected override void TimeoutHandler(ModuleExecutionTimeout timeout) { Finished = false; base.TimeoutHandler(timeout); } }