Class NetworkPeer
Low-level network peer class. Provides server-client communication functions, message processing and sending.
Inherited Members
Assembly: FlaxEngine.dll
File: Engine/Networking/NetworkPeer.h
Syntax
public class NetworkPeer : public ScriptingObject
Fields
Config
HostId
Declaration
public int HostId = -1
Field Value
|
int
|
MessageBuffer
Declaration
public uint8* MessageBuffer = nullptr
Field Value
|
uint8
|
MessagePool
Declaration
public Array<uint32, HeapAllocation> MessagePool
Field Value
|
Array<uint32, HeapAllocation>
|
NetworkDriver
Low-level network transport driver used by this peer.
Declaration
public INetworkDriver* NetworkDriver = nullptr
Field Value
|
INetworkDriver
|
Methods
AbortSendMessage(const NetworkMessage& message)
Aborts given message send. This effectively deinitializes the message and returns it to the pool.
Declaration
public void AbortSendMessage(const NetworkMessage& message)
Parameters
|
NetworkMessage
message
The message. |
BeginSendMessage()
Acquires new message from the pool and setups it for sending.
Declaration
public NetworkMessage BeginSendMessage()
Returns
|
NetworkMessage
The acquired message. |
Connect()
Starts connection handshake with the end point specified in the NetworkConfig
Declaration
public bool Connect()
Returns
|
bool
True when succeeded. |
CreateMessage()
Acquires new message from the pool. Cannot acquire more messages than the limit specified in the NetworkConfig
Make sure to recycle the message to this peer once it is no longer needed!
Declaration
public NetworkMessage CreateMessage()
Returns
|
NetworkMessage
The acquired message. |
CreatePeer(const NetworkConfig& config)
Creates new peer using given configuration.
Peer should be destroyed using ShutdownPeer(NetworkPeer* peer) once it is no longer in use. Returns null if failed to create a peer (eg. config is invalid).
Declaration
public static NetworkPeer* CreatePeer(const NetworkConfig& config)
Parameters
|
NetworkConfig
config
The configuration to create and setup new peer. |
Returns
|
NetworkPeer
The peer. |
Disconnect()
Disconnects from the server.
Can be used only by the client!
Declaration
public void Disconnect()
Disconnect(const NetworkConnection& connection)
Disconnects given connection from the server.
Can be used only by the server!
Declaration
public void Disconnect(const NetworkConnection& connection)
Parameters
|
NetworkConnection
connection
|
EndSendMessage(NetworkChannelType channelType, const NetworkMessage& message)
Sends given message over specified channel to the server.
Can be used only by the client!
Do not recycle the message after calling this. This function automatically recycles the message.
Declaration
public bool EndSendMessage(NetworkChannelType channelType, const NetworkMessage& message)
Parameters
|
NetworkChannelType
channelType
The channel to send the message over. |
|
NetworkMessage
message
The message. |
Returns
|
bool
|
EndSendMessage(NetworkChannelType channelType, const NetworkMessage& message, const Array<NetworkConnection, HeapAllocation>& targets)
Sends given message over specified channel to the given client connection (target).
Can be used only by the server!
Do not recycle the message after calling this. This function automatically recycles the message.
Declaration
public bool EndSendMessage(NetworkChannelType channelType, const NetworkMessage& message, const Array<NetworkConnection, HeapAllocation>& targets)
Parameters
|
NetworkChannelType
channelType
The channel to send the message over. |
|
NetworkMessage
message
The message. |
|
Array<NetworkConnection, HeapAllocation>
targets
The connections list to send the message to. |
Returns
|
bool
|
EndSendMessage(NetworkChannelType channelType, const NetworkMessage& message, const NetworkConnection& target)
Sends given message over specified channel to the given client connection (target).
Can be used only by the server!
Do not recycle the message after calling this. This function automatically recycles the message.
Declaration
public bool EndSendMessage(NetworkChannelType channelType, const NetworkMessage& message, const NetworkConnection& target)
Parameters
|
NetworkChannelType
channelType
The channel to send the message over. |
|
NetworkMessage
message
The message. |
|
NetworkConnection
target
The client connection to send the message to. |
Returns
|
bool
|
GetMessageBuffer(const uint32 messageId)
Declaration
public uint8* GetMessageBuffer(const uint32 messageId) const
Parameters
|
uint32
messageId
|
Returns
|
uint8
|
IsValid()
Declaration
public bool IsValid() const
Returns
|
bool
|
Listen()
Starts listening for incoming connections. Once this is called, this peer becomes a server.
Declaration
public bool Listen()
Returns
|
bool
True when succeeded. |
operator!=(const NetworkPeer& other)
Declaration
public bool operator!=(const NetworkPeer& other) const
Parameters
|
NetworkPeer
other
|
Returns
|
bool
|
operator==(const NetworkPeer& other)
Declaration
public bool operator==(const NetworkPeer& other) const
Parameters
|
NetworkPeer
other
|
Returns
|
bool
|
PopEvent(NetworkEvent& eventRef)
Tries to pop an network event from the queue.
If this returns message event, make sure to recycle the message using RecycleMessage(const NetworkMessage& message) function after processing it!
Declaration
public bool PopEvent(NetworkEvent& eventRef)
Parameters
|
NetworkEvent
eventRef
The reference to event structure. |
Returns
|
bool
True when succeeded and the event can be processed. |
RecycleMessage(const NetworkMessage& message)
Returns given message to the pool.
Make sure that this message belongs to the peer and has not been recycled already (debug build checks for this)!
Declaration
public void RecycleMessage(const NetworkMessage& message)
Parameters
|
NetworkMessage
message
|
ShutdownPeer(NetworkPeer* peer)
Shutdowns and destroys given peer.
Declaration
public static void ShutdownPeer(NetworkPeer* peer)
Parameters
|
NetworkPeer
peer
The peer to destroy. |