forked from PGR/ascnet
105 lines
2.1 KiB
C#
105 lines
2.1 KiB
C#
using MessagePack;
|
|
|
|
namespace AscNet.PcapParser
|
|
{
|
|
[MessagePackObject(false)]
|
|
public class Packet
|
|
{
|
|
[Key(0)]
|
|
public int No;
|
|
|
|
[Key(1)]
|
|
public ContentType Type;
|
|
|
|
[Key(2)]
|
|
public byte[] Content;
|
|
|
|
public enum ContentType
|
|
{
|
|
Request,
|
|
Response,
|
|
Push,
|
|
Exception
|
|
}
|
|
|
|
[MessagePackObject(false)]
|
|
public class Request
|
|
{
|
|
[Key(0)]
|
|
public int Id;
|
|
|
|
[Key(1)]
|
|
public string Name;
|
|
|
|
[Key(2)]
|
|
public byte[] Content;
|
|
|
|
public T Deserialize<T>()
|
|
{
|
|
return MessagePackSerializer.Deserialize<T>(Content);
|
|
}
|
|
|
|
public object Deserialize()
|
|
{
|
|
return MessagePackSerializer.Typeless.Deserialize(Content);
|
|
}
|
|
}
|
|
|
|
[MessagePackObject(false)]
|
|
public class Response
|
|
{
|
|
[Key(0)]
|
|
public int Id;
|
|
|
|
[Key(1)]
|
|
public string Name;
|
|
|
|
[Key(2)]
|
|
public byte[] Content;
|
|
|
|
public T Deserialize<T>()
|
|
{
|
|
return MessagePackSerializer.Deserialize<T>(Content);
|
|
}
|
|
|
|
public object Deserialize()
|
|
{
|
|
return MessagePackSerializer.Typeless.Deserialize(Content);
|
|
}
|
|
}
|
|
|
|
[MessagePackObject(false)]
|
|
public class Push
|
|
{
|
|
[Key(0)]
|
|
public string Name;
|
|
|
|
[Key(1)]
|
|
public byte[] Content;
|
|
|
|
public T Deserialize<T>()
|
|
{
|
|
return MessagePackSerializer.Deserialize<T>(Content);
|
|
}
|
|
|
|
public object Deserialize()
|
|
{
|
|
return MessagePackSerializer.Typeless.Deserialize(Content);
|
|
}
|
|
}
|
|
|
|
[MessagePackObject(false)]
|
|
public class Exception
|
|
{
|
|
[Key(0)]
|
|
public int Id;
|
|
|
|
[Key(1)]
|
|
public int Code;
|
|
|
|
[Key(2)]
|
|
public string Message;
|
|
}
|
|
}
|
|
}
|