Struct NetworkDriver.Concurrent
Structure that can be used to access a NetworkDriver
from multiple jobs. Only a
subset of operations are supported because not all operations are safe to perform
concurrently. Must be obtained with the ToConcurrent() method.
Inherited Members
Namespace: Unity.Networking.Transport
Assembly: Unity.Networking.Transport.dll
Syntax
public struct NetworkDriver.Concurrent
Methods
AbortSend(DataStreamWriter)
Aborts a send started with BeginSend(NetworkPipeline, NetworkConnection, out DataStreamWriter, int).
Declaration
public void AbortSend(DataStreamWriter writer)
Parameters
Type | Name | Description |
---|---|---|
DataStreamWriter | writer | Unity.Collections.DataStreamWriter to cancel. |
BeginSend(NetworkConnection, out DataStreamWriter, int)
Begin sending data on the given connection (default pipeline).
Declaration
public int BeginSend(NetworkConnection connection, out DataStreamWriter writer, int requiredPayloadSize = 0)
Parameters
Type | Name | Description |
---|---|---|
NetworkConnection | connection | Connection to send the data to. |
DataStreamWriter | writer | Unity.Collections.DataStreamWriter the data can be written to. |
int | requiredPayloadSize | Size that the returned Unity.Collections.DataStreamWriter must support. The method will return an error if that payload size is not supported by the pipeline. Defaults to 0, which means the Unity.Collections.DataStreamWriter will be as large as it can be. |
Returns
Type | Description |
---|---|
int | 0 on success, a negative value on error. |
BeginSend(NetworkPipeline, NetworkConnection, out DataStreamWriter, int)
Begin sending data on the given connection and pipeline.
Declaration
public int BeginSend(NetworkPipeline pipe, NetworkConnection connection, out DataStreamWriter writer, int requiredPayloadSize = 0)
Parameters
Type | Name | Description |
---|---|---|
NetworkPipeline | pipe | Pipeline to send the data on. |
NetworkConnection | connection | Connection to send the data to. |
DataStreamWriter | writer | Unity.Collections.DataStreamWriter the data can be written to. |
int | requiredPayloadSize | Size that the returned Unity.Collections.DataStreamWriter must support. The method will return an error if that payload size is not supported by the pipeline. Defaults to 0, which means the Unity.Collections.DataStreamWriter will be as large as it can be. |
Returns
Type | Description |
---|---|
int | 0 on success, a negative error code on error. |
EndSend(DataStreamWriter)
Enqueue a send operation for the data in the given Unity.Collections.DataStreamWriter, which must have been obtained by a prior call to BeginSend(NetworkPipeline, NetworkConnection, out DataStreamWriter, int).
Declaration
public int EndSend(DataStreamWriter writer)
Parameters
Type | Name | Description |
---|---|---|
DataStreamWriter | writer | Unity.Collections.DataStreamWriter to send. |
Returns
Type | Description |
---|---|
int | The number of bytes to be sent on success, a negative value on error. |
Remarks
This method doesn't actually send anything on the wire. It simply enqueues the send operation, which will be performed in the next ScheduleFlushSend(JobHandle) or ScheduleUpdate(JobHandle) job.
GetConnectionState(NetworkConnection)
Get the current state of the given connection.
Declaration
public NetworkConnection.State GetConnectionState(NetworkConnection id)
Parameters
Type | Name | Description |
---|---|---|
NetworkConnection | id |
Returns
Type | Description |
---|---|
NetworkConnection.State | State of the connection. |
MaxHeaderSize(NetworkPipeline)
Get the maximum size of headers when sending on the given pipeline.
Declaration
public int MaxHeaderSize(NetworkPipeline pipe)
Parameters
Type | Name | Description |
---|---|---|
NetworkPipeline | pipe | Pipeline to get the header size for. |
Returns
Type | Description |
---|---|
int | The maximum size of the headers on the given pipeline. |
Remarks
Only accounts for the Unity Transport headers (no UDP or IP).
PopEventForConnection(NetworkConnection, out DataStreamReader)
Pops the next event from the event queue for the given connection, Empty will be returned if there are no more events.
Declaration
public NetworkEvent.Type PopEventForConnection(NetworkConnection connection, out DataStreamReader reader)
Parameters
Type | Name | Description |
---|---|---|
NetworkConnection | connection | Connection for which to pop the event. |
DataStreamReader | reader | Unity.Collections.DataStreamReader from which the event data (e.g. payload) can be read from. |
Returns
Type | Description |
---|---|
NetworkEvent.Type | The type of the event popped. |
Remarks
The reader
obtained from this method will contain different things for different
event types. For Data, it contains the actual received
payload. For Disconnect, it contains a single byte
identifying the reason for the disconnection (see DisconnectReason).
For other event types, it contains nothing.
PopEventForConnection(NetworkConnection, out DataStreamReader, out NetworkPipeline)
Pops the next event from the event queue for the given connection, Empty will be returned if there are no more events.
Declaration
public NetworkEvent.Type PopEventForConnection(NetworkConnection connection, out DataStreamReader reader, out NetworkPipeline pipe)
Parameters
Type | Name | Description |
---|---|---|
NetworkConnection | connection | Connection for which to pop the event. |
DataStreamReader | reader | Unity.Collections.DataStreamReader from which the event data (e.g. payload) can be read from. |
NetworkPipeline | pipe | Pipeline on which the data event was received. |
Returns
Type | Description |
---|---|
NetworkEvent.Type | The type of the event popped. |
Remarks
The reader
obtained from this method will contain different things for different
event types. For Data, it contains the actual received
payload. For Disconnect, it contains a single byte
identifying the reason for the disconnection (see DisconnectReason).
For other event types, it contains nothing.