aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.Transport/Encoders
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/Encoders
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/Encoders')
-rw-r--r--Software/Visual_Studio/Tango.Transport/Encoders/ProtoEncoder.cs47
1 files changed, 47 insertions, 0 deletions
diff --git a/Software/Visual_Studio/Tango.Transport/Encoders/ProtoEncoder.cs b/Software/Visual_Studio/Tango.Transport/Encoders/ProtoEncoder.cs
new file mode 100644
index 000000000..689b331e6
--- /dev/null
+++ b/Software/Visual_Studio/Tango.Transport/Encoders/ProtoEncoder.cs
@@ -0,0 +1,47 @@
+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.Encoders
+{
+ /// <summary>
+ /// Represents a protobuf <see cref="ITransportEncoder">Transport Encoder</see>.
+ /// </summary>
+ /// <seealso cref="Tango.Transport.ITransportEncoder" />
+ public class ProtoEncoder : ITransportEncoder
+ {
+ /// <summary>
+ /// Decodes the specified data.
+ /// </summary>
+ /// <param name="data">The data.</param>
+ /// <returns></returns>
+ public ITangoMessage Decode(byte[] data)
+ {
+ return MessageFactory.ParseTangoMessageAgnostic(data) as ITangoMessage;
+ }
+
+ /// <summary>
+ /// Decodes only the container part of the message.
+ /// </summary>
+ /// <param name="data">The data.</param>
+ /// <returns></returns>
+ public MessageContainer DecodeContainer(byte[] data)
+ {
+ return MessageFactory.ParseContainer(data);
+ }
+
+ /// <summary>
+ /// Encodes the specified tango message.
+ /// </summary>
+ /// <param name="tangoMessage">The tango message.</param>
+ /// <returns></returns>
+ public byte[] Encode(ITangoMessage tangoMessage)
+ {
+ return tangoMessage.ToBytes();
+ }
+ }
+}