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/Encoders | |
| 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/Encoders')
| -rw-r--r-- | Software/Visual_Studio/Tango.Transport/Encoders/ProtoEncoder.cs | 47 |
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(); + } + } +} |
