pub type ISteamNetworkingMessage = SteamNetworkingMessage_t;
Expand description

A message that has been received.

Aliased Type§

struct ISteamNetworkingMessage {
Show 14 fields pub m_pData: *mut c_void, pub m_cbSize: i32, pub m_conn: u32, pub m_identityPeer: SteamNetworkingIdentity, pub m_nConnUserData: i64, pub m_usecTimeReceived: i64, pub m_nMessageNumber: i64, pub m_pfnFreeData: Option<unsafe extern "C" fn(_: *mut SteamNetworkingMessage_t)>, pub m_pfnRelease: Option<unsafe extern "C" fn(_: *mut SteamNetworkingMessage_t)>, pub m_nChannel: i32, pub m_nFlags: i32, pub m_nUserData: i64, pub m_idxLane: u16, pub _pad1__: u16,
}

Fields§

§m_pData: *mut c_void

Message payload

§m_cbSize: i32

Size of the payload.

§m_conn: u32

For messages received on connections: what connection did this come from? For outgoing messages: what connection to send it to? Not used when using the ISteamNetworkingMessages interface

§m_identityPeer: SteamNetworkingIdentity

For inbound messages: Who sent this to us? For outbound messages on connections: not used. For outbound messages on the ad-hoc ISteamNetworkingMessages interface: who should we send this to?

§m_nConnUserData: i64

For messages received on connections, this is the user data associated with the connection.

This is usually the same as calling GetConnection() and then fetching the user data associated with that connection, but for the following subtle differences:

  • This user data will match the connection’s user data at the time is captured at the time the message is returned by the API. If you subsequently change the userdata on the connection, this won’t be updated.
  • This is an inline call, so it’s much faster.
  • You might have closed the connection, so fetching the user data would not be possible.

Not used when sending messages.

§m_usecTimeReceived: i64

Local timestamp when the message was received Not used for outbound messages.

§m_nMessageNumber: i64

Message number assigned by the sender. This is not used for outbound messages. Note that if multiple lanes are used, each lane has its own message numbers, which are assigned sequentially, so messages from different lanes will share the same numbers.

§m_pfnFreeData: Option<unsafe extern "C" fn(_: *mut SteamNetworkingMessage_t)>

Function used to free up m_pData. This mechanism exists so that apps can create messages with buffers allocated from their own heap, and pass them into the library. This function will usually be something like:

free( pMsg->m_pData );

§m_pfnRelease: Option<unsafe extern "C" fn(_: *mut SteamNetworkingMessage_t)>

Function to used to decrement the internal reference count and, if it’s zero, release the message. You should not set this function pointer, or need to access this directly! Use the Release() function instead!

§m_nChannel: i32

When using ISteamNetworkingMessages, the channel number the message was received on (Not used for messages sent or received on “connections”)

§m_nFlags: i32

Bitmask of k_nSteamNetworkingSend_xxx flags. For received messages, only the k_nSteamNetworkingSend_Reliable bit is valid. For outbound messages, all bits are relevant

§m_nUserData: i64

Arbitrary user data that you can use when sending messages using ISteamNetworkingUtils::AllocateMessage and ISteamNetworkingSockets::SendMessage. (The callback you set in m_pfnFreeData might use this field.)

Not used for received messages.

§m_idxLane: u16

For outbound messages, which lane to use? See ISteamNetworkingSockets::ConfigureConnectionLanes. For inbound messages, what lane was the message received on?

§_pad1__: u16