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

31 lines
683 B
C#

using Enigmos.Exceptions;
namespace Enigmos.Modules.ControllingModules;
public abstract partial class ControllingModule : BaseModule
{
protected abstract void Route(RootModule root);
public bool Visited { get; set; }
protected override void TimeoutHandler(ModuleExecutionTimeout timeout)
{
Visited = false;
base.TimeoutHandler(timeout);
}
public void RouteWithTimeoutHandle(RootModule root)
{
if (Visited)
return;
TimeoutCheck(root);
try
{
Route(root);
}
catch (ModuleExecutionTimeout timeOut)
{
TimeoutHandler(timeOut);
}
}
}