Skip to content

Commit

Permalink
added issue 151
Browse files Browse the repository at this point in the history
  • Loading branch information
jefffhaynes committed Mar 22, 2020
1 parent c8e6f78 commit 4e04b96
Show file tree
Hide file tree
Showing 6 changed files with 72 additions and 0 deletions.
9 changes: 9 additions & 0 deletions BinarySerializer.Test/Issues/Issue151/GenericNACKPayload.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
namespace BinarySerialization.Test.Issues.Issue151
{
public class GenericNACKPayload : dPayload
{
[FieldOrder(0)]
[FieldLength(1)]
public byte NackCode { get; set; }
}
}
28 changes: 28 additions & 0 deletions BinarySerializer.Test/Issues/Issue151/Packet.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using System.Text;

namespace BinarySerialization.Test.Issues.Issue151
{
public class Packet
{
[FieldOrder(0)]
public byte ProtocolVersion { get; set; }

[FieldOrder(1)]
public byte InvProtocolVersion { get; set; }

[FieldOrder(2)]
public dPayloadType PayloadType { get; set; }

[FieldOrder(3)]
public UInt32 PayloadLength { get; set; }

[FieldOrder(4)]
[FieldLength(nameof(PayloadLength))]
[Subtype(nameof(PayloadType), dPayloadType.GenericNACK, typeof(GenericNACKPayload))]
[Subtype(nameof(PayloadType), dPayloadType.Request, typeof(Request))]
[Subtype(nameof(PayloadType), dPayloadType.UserData, typeof(UserData))]
public dPayload Payload { get; set; }
}
}
8 changes: 8 additions & 0 deletions BinarySerializer.Test/Issues/Issue151/Request.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
namespace BinarySerialization.Test.Issues.Issue151
{
public class Request : dPayload
{
[FieldOrder(0)]
public byte[] EID { get; set; } // Size is equal to PayloadLength
}
}
12 changes: 12 additions & 0 deletions BinarySerializer.Test/Issues/Issue151/UserData.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
namespace BinarySerialization.Test.Issues.Issue151
{
public class UserData : dPayload
{
[FieldOrder(0)]
public byte SA { get; set; }
[FieldOrder(1)]
public byte TA { get; set; }
[FieldOrder(2)]
public byte[] UD { get; set; } // Size is equal to PayloadLength - 2
}
}
6 changes: 6 additions & 0 deletions BinarySerializer.Test/Issues/Issue151/dPayload.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
namespace BinarySerialization.Test.Issues.Issue151
{
public abstract class dPayload
{
}
}
9 changes: 9 additions & 0 deletions BinarySerializer.Test/Issues/Issue151/dPayloadType.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
namespace BinarySerialization.Test.Issues.Issue151
{
public enum dPayloadType
{
GenericNACK,
Request,
UserData
}
}

0 comments on commit 4e04b96

Please sign in to comment.