Class DataPacketManager
- Namespace
- BSGameLib.Networking
- Assembly
- BSGameLib.Networking.dll
Serializes packets and runs their handlers. The client and server adapters use it to handle the packets they receive.
public class DataPacketManager : IDataPacketManager
- Inheritance
-
DataPacketManager
- Implements
- Inherited Members
Constructors
DataPacketManager(ILogger, IDataPacketProvider, IDataPacketHandlerProvider)
Creates a manager that logs to logger, finds packet types through
packetProvider and finds handlers through
handlerProvider.
public DataPacketManager(ILogger logger, IDataPacketProvider packetProvider, IDataPacketHandlerProvider handlerProvider)
Parameters
loggerILoggerpacketProviderIDataPacketProviderhandlerProviderIDataPacketHandlerProvider
Methods
HandleInternal(INetConnection, ReadOnlyMemory<byte>)
Reads the frame in data, which client sent, and runs
the handlers for its packet.
public void HandleInternal(INetConnection client, ReadOnlyMemory<byte> data)
Parameters
clientINetConnectiondataReadOnlyMemory<byte>
Exceptions
- ArgumentException
The data is too short for a header, or its length is invalid.
- ArgumentOutOfRangeException
The packet type is not known.
- PacketHandlingException
A handler threw. The handler's exception is inside it.
Handle<TPacket>(INetConnection, TPacket)
Runs every handler for packet, which client sent.
public void Handle<TPacket>(INetConnection client, TPacket packet) where TPacket : class, IDataPacket
Parameters
clientINetConnectionpacketTPacket
Type Parameters
TPacket
PacketTypeOf(ReadOnlyMemory<byte>)
Returns the packet type of the frame in data, or null when the data is
too short to hold a header or its type is not known.
public Type PacketTypeOf(ReadOnlyMemory<byte> data)
Parameters
dataReadOnlyMemory<byte>
Returns
SerializePacket<T>(T)
Returns the bytes of packet as they are sent on the wire.
public byte[] SerializePacket<T>(T packet) where T : IDataPacket
Parameters
packetT
Returns
- byte[]
Type Parameters
T