using System; namespace FishNet.Transporting { /// /// Container about data received on the server. /// public struct ServerReceivedDataArgs { /// /// Data received. /// public ArraySegment Data; /// /// Channel data was received on. /// public Channel Channel; /// /// ConnectionId from which client sent data, if data was received on the server. /// public int ConnectionId; /// /// Index of the transport that is for. /// This is primarily used when supporting multiple transports. /// public int TransportIndex; /// /// Delegate to invoke after data is processed. /// /// public Action FinalizeMethod; public ServerReceivedDataArgs(ArraySegment data, Channel channel, int connectionId, int transportIndex) { Data = data; Channel = channel; ConnectionId = connectionId; TransportIndex = transportIndex; FinalizeMethod = null; } public ServerReceivedDataArgs(ArraySegment data, Channel channel, int connectionId, int transportIndex, Action finalizeMethod) { Data = data; Channel = channel; ConnectionId = connectionId; TransportIndex = transportIndex; FinalizeMethod = finalizeMethod; } } /// /// Container about data received on the local client. /// public struct ClientReceivedDataArgs { /// /// Data received. /// public ArraySegment Data; /// /// Channel data was received on. /// public Channel Channel; /// /// Index of the transport that is for. /// This is primarily used when supporting multiple transports. /// public int TransportIndex; public ClientReceivedDataArgs(ArraySegment data, Channel channel, int transportIndex) { Data = data; Channel = channel; TransportIndex = transportIndex; } } /// /// Container about a connection state change for a client. /// public struct RemoteConnectionStateArgs { /// /// Index of the transport that is for. /// This is primarily used when supporting multiple transports. /// public int TransportIndex; /// /// New connection state. /// public RemoteConnectionState ConnectionState; /// /// ConnectionId for which client the state changed. Will be -1 if ConnectionState was for the local server. /// public int ConnectionId; public RemoteConnectionStateArgs(RemoteConnectionState connectionState, int connectionId, int transportIndex) { ConnectionState = connectionState; ConnectionId = connectionId; TransportIndex = transportIndex; } } /// /// Container about a connection state change for the server. /// public struct ServerConnectionStateArgs { /// /// Index of the transport that is for. /// This is primarily used when supporting multiple transports. /// public int TransportIndex; /// /// New connection state. /// public LocalConnectionState ConnectionState; public ServerConnectionStateArgs(LocalConnectionState connectionState, int transportIndex) { ConnectionState = connectionState; TransportIndex = transportIndex; } } /// /// Container about a connection state change for the local client. /// public struct ClientConnectionStateArgs { /// /// New connection state. /// public LocalConnectionState ConnectionState; /// /// Index of the transport that is for. /// This is primarily used when supporting multiple transports. /// public int TransportIndex; public ClientConnectionStateArgs(LocalConnectionState connectionState, int transportIndex) { ConnectionState = connectionState; TransportIndex = transportIndex; } } }