aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.Transport
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2019-04-30 13:39:27 +0300
committerRoy Ben-Shabat <Roy@Twine-s.com>2019-04-30 13:39:27 +0300
commit1d02b0cf2a0aa550cb87464ab8beea60a6d2e006 (patch)
tree17b4db78fa4c4c01907c55459a7d3a46031b16e3 /Software/Visual_Studio/Tango.Transport
parentca615f9192350dadd7be4ab0e096e380816ca2a6 (diff)
downloadTango-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.cs5
-rw-r--r--Software/Visual_Studio/Tango.Transport/TransporterBase.cs29
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
{