diff options
| author | Roy <roy.mail.net@gmail.com> | 2018-01-03 01:57:58 +0200 |
|---|---|---|
| committer | Roy <roy.mail.net@gmail.com> | 2018-01-03 01:57:58 +0200 |
| commit | 63b2a192ba12f8239668b6818db4ad02db68dbbc (patch) | |
| tree | c9c1de011b38fbff94ce87ac2771667b9a3e773d /Software/Visual_Studio/Tango.Transport/TransportAdapterBase.cs | |
| parent | f917366c405a4308b4b60e30eb1bd0dcf880532c (diff) | |
| download | Tango-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.cs | 31 |
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 |
