aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.Transport/ITransportEncoder.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/ITransportEncoder.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/ITransportEncoder.cs')
-rw-r--r--Software/Visual_Studio/Tango.Transport/ITransportEncoder.cs37
1 files changed, 37 insertions, 0 deletions
diff --git a/Software/Visual_Studio/Tango.Transport/ITransportEncoder.cs b/Software/Visual_Studio/Tango.Transport/ITransportEncoder.cs
new file mode 100644
index 000000000..beae60d14
--- /dev/null
+++ b/Software/Visual_Studio/Tango.Transport/ITransportEncoder.cs
@@ -0,0 +1,37 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Tango.PMR;
+using Tango.PMR.Common;
+
+namespace Tango.Transport
+{
+ /// <summary>
+ /// Represents a Transport message encoder capable of encoding or decoding <see cref="ITangoMessage">Tango Messages</see>.
+ /// </summary>
+ public interface ITransportEncoder
+ {
+ /// <summary>
+ /// Encodes the specified tango message.
+ /// </summary>
+ /// <param name="tangoMessage">The tango message.</param>
+ /// <returns></returns>
+ byte[] Encode(ITangoMessage tangoMessage);
+
+ /// <summary>
+ /// Decodes the specified data.
+ /// </summary>
+ /// <param name="data">The data.</param>
+ /// <returns></returns>
+ ITangoMessage Decode(byte[] data);
+
+ /// <summary>
+ /// Decodes only the container part of the message.
+ /// </summary>
+ /// <param name="data">The data.</param>
+ /// <returns></returns>
+ MessageContainer DecodeContainer(byte[] data);
+ }
+}