Split project
This commit is contained in:
30
Modules/ControllingModules/ControllingModule.cs
Normal file
30
Modules/ControllingModules/ControllingModule.cs
Normal file
@@ -0,0 +1,30 @@
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user