31 lines
683 B
C#
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);
|
|
}
|
|
}
|
|
}
|