Table of Contents

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

logger ILogger
packetProvider IDataPacketProvider
handlerProvider IDataPacketHandlerProvider

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

client INetConnection
data ReadOnlyMemory<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

client INetConnection
packet TPacket

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

data ReadOnlyMemory<byte>

Returns

Type

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

packet T

Returns

byte[]

Type Parameters

T