diff options
| author | Shlomo Hecht <shlomo@twine-s.com> | 2020-12-30 13:01:58 +0200 |
|---|---|---|
| committer | Shlomo Hecht <shlomo@twine-s.com> | 2020-12-30 13:01:58 +0200 |
| commit | 624d19b9b7e540e16f605dce4e1c82af60372099 (patch) | |
| tree | 07889b00717d3a30bb0281ed0233543fabfc9aaf /Software/Visual_Studio/Scripting/Tango.Scripting.Basic/ProjectSession.cs | |
| parent | c4aa1735efed2c87e5056dde442211c08d3f66ff (diff) | |
| parent | 7c56f0ff6a9ceb7148b6cab01bbac5ddf592acb2 (diff) | |
| download | Tango-624d19b9b7e540e16f605dce4e1c82af60372099.tar.gz Tango-624d19b9b7e540e16f605dce4e1c82af60372099.zip | |
merge
Diffstat (limited to 'Software/Visual_Studio/Scripting/Tango.Scripting.Basic/ProjectSession.cs')
| -rw-r--r-- | Software/Visual_Studio/Scripting/Tango.Scripting.Basic/ProjectSession.cs | 65 |
1 files changed, 0 insertions, 65 deletions
diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/ProjectSession.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/ProjectSession.cs deleted file mode 100644 index 6bd3d44b9..000000000 --- a/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/ProjectSession.cs +++ /dev/null @@ -1,65 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Tango.Scripting.Basic -{ - public class ProjectSession<T> where T : IContext - { - private Action _abortAction; - private TaskCompletionSource<object> _completion; - - public event EventHandler<ProjectSessionStateChangedEventArgs> StateChanged; - - public ProjectSessionState State { get; set; } - - public Project<T> Project { get; set; } - - public ProjectSession(Project<T> project, Action abortAction) - { - _completion = new TaskCompletionSource<object>(); - Project = project; - _abortAction = abortAction; - } - - public void Abort() - { - _abortAction(); - State = ProjectSessionState.Aborted; - _completion.SetException(new OperationCanceledException("Project execution aborted.")); - RaiseStateChanged(); - } - - internal void Failed(Exception ex) - { - State = ProjectSessionState.Failed; - _completion.SetException(ex); - RaiseStateChanged(null, ex); - } - - internal void Completed(object returnValue) - { - State = ProjectSessionState.Completed; - _completion.SetResult(returnValue); - RaiseStateChanged(returnValue, null); - } - - private void RaiseStateChanged(object returnValue = null, Exception ex = null) - { - StateChanged?.Invoke(this, - new ProjectSessionStateChangedEventArgs() - { - ReturnValue = returnValue, - State = State, - Exception = ex - }); - } - - public Task<Object> WaitForCompletion() - { - return _completion.Task; - } - } -} |
