1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- using MECF.Framework.Common.Communications.Tcp.Socket.Framing.Base;
- namespace MECF.Framework.Common.Communications.Tcp.Socket.Framing
- {
- public sealed class RawBufferFrameBuilder : FrameBuilder
- {
- public RawBufferFrameBuilder()
- : this(new RawBufferFrameEncoder(), new RawBufferFrameDecoder())
- {
- }
- public RawBufferFrameBuilder(RawBufferFrameEncoder encoder, RawBufferFrameDecoder decoder)
- : base(encoder, decoder)
- {
- }
- }
- public sealed class RawBufferFrameEncoder : IFrameEncoder
- {
- public RawBufferFrameEncoder()
- {
- }
- public void EncodeFrame(byte[] payload, int offset, int count, out byte[] frameBuffer, out int frameBufferOffset, out int frameBufferLength)
- {
- frameBuffer = payload;
- frameBufferOffset = offset;
- frameBufferLength = count;
- }
- }
- public sealed class RawBufferFrameDecoder : IFrameDecoder
- {
- public RawBufferFrameDecoder()
- {
- }
- public bool TryDecodeFrame(byte[] buffer, int offset, int count, out int frameLength, out byte[] payload, out int payloadOffset, out int payloadCount)
- {
- frameLength = 0;
- payload = null;
- payloadOffset = 0;
- payloadCount = 0;
- if (count <= 0)
- return false;
- frameLength = count;
- payload = buffer;
- payloadOffset = offset;
- payloadCount = count;
- return true;
- }
- }
- }
|