diff options
| author | Roy Ben-Shabat <Roy@Twine-s.com> | 2019-04-30 13:39:27 +0300 |
|---|---|---|
| committer | Roy Ben-Shabat <Roy@Twine-s.com> | 2019-04-30 13:39:27 +0300 |
| commit | 1d02b0cf2a0aa550cb87464ab8beea60a6d2e006 (patch) | |
| tree | 17b4db78fa4c4c01907c55459a7d3a46031b16e3 /Software/Visual_Studio/Tango.Transport | |
| parent | ca615f9192350dadd7be4ab0e096e380816ca2a6 (diff) | |
| download | Tango-1d02b0cf2a0aa550cb87464ab8beea60a6d2e006.tar.gz Tango-1d02b0cf2a0aa550cb87464ab8beea60a6d2e006.zip | |
Implemented better events handling ExternalBridge <=> Machine Studio.
Diffstat (limited to 'Software/Visual_Studio/Tango.Transport')
| -rw-r--r-- | Software/Visual_Studio/Tango.Transport/ITransporter.cs | 5 | ||||
| -rw-r--r-- | Software/Visual_Studio/Tango.Transport/TransporterBase.cs | 29 |
2 files changed, 31 insertions, 3 deletions
diff --git a/Software/Visual_Studio/Tango.Transport/ITransporter.cs b/Software/Visual_Studio/Tango.Transport/ITransporter.cs index b114b4681..7424a4684 100644 --- a/Software/Visual_Studio/Tango.Transport/ITransporter.cs +++ b/Software/Visual_Studio/Tango.Transport/ITransporter.cs @@ -139,6 +139,11 @@ namespace Tango.Transport event EventHandler<MessageContainer> RequestReceived; /// <summary> + /// Occurs when a new response message has been received. + /// </summary> + event EventHandler<MessageContainer> PendingResponseReceived; + + /// <summary> /// Gets or sets the default request timeout. /// </summary> TimeSpan RequestTimeout { get; set; } diff --git a/Software/Visual_Studio/Tango.Transport/TransporterBase.cs b/Software/Visual_Studio/Tango.Transport/TransporterBase.cs index 534d3d05d..28ac15cd6 100644 --- a/Software/Visual_Studio/Tango.Transport/TransporterBase.cs +++ b/Software/Visual_Studio/Tango.Transport/TransporterBase.cs @@ -44,6 +44,11 @@ namespace Tango.Transport public event EventHandler<MessageContainer> RequestReceived; /// <summary> + /// Occurs when a new response message has been received. + /// </summary> + public event EventHandler<MessageContainer> PendingResponseReceived; + + /// <summary> /// Occurs when component state changes. /// </summary> public event EventHandler<TransportComponentState> StateChanged; @@ -214,10 +219,19 @@ namespace Tango.Transport /// <summary> /// Called when a new request has been received. /// </summary> - /// <param name="request">The request.</param> - protected virtual void OnRequestReceived(MessageContainer request) + /// <param name="container">The request.</param> + protected virtual void OnRequestReceived(MessageContainer container) { - RequestReceived?.Invoke(this, request); + RequestReceived?.Invoke(this, container); + } + + /// <summary> + /// Called when a new response has been received. + /// </summary> + /// <param name="container">The request.</param> + protected virtual void OnResponseReceived(MessageContainer container) + { + PendingResponseReceived?.Invoke(this, container); } /// <summary> @@ -1060,6 +1074,15 @@ namespace Tango.Transport LogManager.Log(ex, "Error parsing response message."); } } + + try + { + Task.Factory.StartNew(() => OnResponseReceived(container)); + } + catch + { + //Ignore any exceptions that may raise on the client side.. + } } else { |
