Files
Enigmos/Modules/TerminalModules/TerminalModule.cs
2024-06-29 06:35:23 +08:00

36 lines
845 B
C#

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<DataInPort>())
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);
}
}