Table of Contents

Class ConnectionService<TSessionId>

Namespace
BSGameLib.Server
Assembly
BSGameLib.Server.dll

Links session IDs and connections, both ways. A session ID and a connection can each be bound to one other, and no more.

public class ConnectionService<TSessionId> : IConnectionRegistry<TSessionId>, IConnectionManager<TSessionId> where TSessionId : notnull

Type Parameters

TSessionId
Inheritance
ConnectionService<TSessionId>
Implements
IConnectionManager<TSessionId>
Inherited Members

Methods

Bind(TSessionId, INetConnection)

Binds sessionId to connection.

public void Bind(TSessionId sessionId, INetConnection connection)

Parameters

sessionId TSessionId
connection INetConnection

Exceptions

InvalidOperationException

Either one is already bound.

GetAllBindings()

Returns a snapshot of every session ID and the connection bound to it.

public IEnumerable<(TSessionId SessionId, INetConnection Connection)> GetAllBindings()

Returns

IEnumerable<(TSessionId SessionId, INetConnection Connection)>

TryBind(TSessionId, INetConnection)

Binds sessionId to connection when neither is bound yet. Returns false when either one is already bound.

public bool TryBind(TSessionId sessionId, INetConnection connection)

Parameters

sessionId TSessionId
connection INetConnection

Returns

bool

TryGetConnection(TSessionId, out INetConnection)

Returns the connection bound to sessionId. Returns false when there is none.

public bool TryGetConnection(TSessionId sessionId, out INetConnection connection)

Parameters

sessionId TSessionId
connection INetConnection

Returns

bool

TryGetSessionId(INetConnection, out TSessionId)

Returns the session ID bound to connection. Returns false when there is none.

public bool TryGetSessionId(INetConnection connection, out TSessionId sessionId)

Parameters

connection INetConnection
sessionId TSessionId

Returns

bool

UnbindByConnection(INetConnection)

Removes the binding for connection. Returns false when it had none.

public bool UnbindByConnection(INetConnection connection)

Parameters

connection INetConnection

Returns

bool

UnbindBySessionId(TSessionId)

Removes the binding for sessionId. Returns false when it had none.

public bool UnbindBySessionId(TSessionId sessionId)

Parameters

sessionId TSessionId

Returns

bool