diff options
Diffstat (limited to 'lib/infrastructure/threading/SynchronousCommandProcessor.cs')
| -rwxr-xr-x | lib/infrastructure/threading/SynchronousCommandProcessor.cs | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/lib/infrastructure/threading/SynchronousCommandProcessor.cs b/lib/infrastructure/threading/SynchronousCommandProcessor.cs new file mode 100755 index 0000000..051fedd --- /dev/null +++ b/lib/infrastructure/threading/SynchronousCommandProcessor.cs @@ -0,0 +1,36 @@ +using System;
+using System.Collections.Generic;
+using gorilla.utility;
+
+namespace gorilla.infrastructure.threading +{ + public class SynchronousCommandProcessor : CommandProcessor + { + readonly Queue<Command> queued_commands; + + public SynchronousCommandProcessor() + { + queued_commands = new Queue<Command>(); + } + + public void add(Action command) + { + add(new AnonymousCommand(command)); + } + + public void add(Command command_to_process) + { + queued_commands.Enqueue(command_to_process); + } + + public void run() + { + while (queued_commands.Count > 0) queued_commands.Dequeue().run(); + } + + public void stop() + { + queued_commands.Clear(); + } + } +}
\ No newline at end of file |
