aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.Transport/TransportAdapterBase.cs
diff options
context:
space:
mode:
authorRoy <roy.mail.net@gmail.com>2018-01-03 01:57:58 +0200
committerRoy <roy.mail.net@gmail.com>2018-01-03 01:57:58 +0200
commit63b2a192ba12f8239668b6818db4ad02db68dbbc (patch)
treec9c1de011b38fbff94ce87ac2771667b9a3e773d /Software/Visual_Studio/Tango.Transport/TransportAdapterBase.cs
parentf917366c405a4308b4b60e30eb1bd0dcf880532c (diff)
downloadTango-63b2a192ba12f8239668b6818db4ad02db68dbbc.tar.gz
Tango-63b2a192ba12f8239668b6818db4ad02db68dbbc.zip
Implemented abstraction of message encoding/decoding by adding another layer of "Encoders" to Transporters.
Diffstat (limited to 'Software/Visual_Studio/Tango.Transport/TransportAdapterBase.cs')
-rw-r--r--Software/Visual_Studio/Tango.Transport/TransportAdapterBase.cs31
1 files changed, 29 insertions, 2 deletions
diff --git a/Software/Visual_Studio/Tango.Transport/TransportAdapterBase.cs b/Software/Visual_Studio/Tango.Transport/TransportAdapterBase.cs
index 100990d0e..b996c82b2 100644
--- a/Software/Visual_Studio/Tango.Transport/TransportAdapterBase.cs
+++ b/Software/Visual_Studio/Tango.Transport/TransportAdapterBase.cs
@@ -31,6 +31,26 @@ namespace Tango.Transport
#region Properties
+ private long _totalBytesReceived;
+ /// <summary>
+ /// Gets the total bytes received.
+ /// </summary>
+ public long TotalBytesReceived
+ {
+ get { return _totalBytesReceived; }
+ protected set { _totalBytesReceived = value; }
+ }
+
+ private long _totalBytesSent;
+ /// <summary>
+ /// Gets the total bytes sent.
+ /// </summary>
+ public long TotalBytesSent
+ {
+ get { return _totalBytesSent; }
+ protected set { _totalBytesSent = value; }
+ }
+
/// <summary>
/// Gets or sets the channel address.
/// </summary>
@@ -76,6 +96,7 @@ namespace Tango.Transport
/// <param name="data">The data.</param>
protected virtual void OnDataAvailable(byte[] data)
{
+ TotalBytesReceived += data.Length;
DataAvailable?.Invoke(this, data);
}
@@ -106,14 +127,20 @@ namespace Tango.Transport
/// <returns></returns>
protected virtual byte[] PostProcessBuffer(byte[] data)
{
+ byte[] postData = data;
+
if (AdapterMode == TransportAdapterMode.NO_HEADER)
{
- return data;
+ return postData;
}
else
{
- return BitConverter.GetBytes(data.Length).Concat(data).ToArray();
+ postData = BitConverter.GetBytes(data.Length).Concat(data).ToArray();
}
+
+ TotalBytesSent += postData.Length;
+
+ return postData;
}
#endregion