public int ReceiveMessagesOnPollGroup(PollGroup pollGroup, NetworkingMessage[] messages, int maxMessages) { if (messages == null) { throw new ArgumentNullException("messages"); } if (maxMessages > Library.maxMessagesPerBatch) { throw new ArgumentOutOfRangeException("maxMessages"); } IntPtr[] nativeMessages = ArrayPool.GetPointerBuffer(); int messagesCount = Native.SteamAPI_ISteamNetworkingSockets_ReceiveMessagesOnPollGroup(nativeSockets, pollGroup, nativeMessages, maxMessages); for (int i = 0; i < messagesCount; i++) { messages[i] = (NetworkingMessage)Marshal.PtrToStructure(nativeMessages[i], typeof(NetworkingMessage)); messages[i].release = nativeMessages[i]; } return(messagesCount); }
public void ReceiveMessagesOnPollGroup(PollGroup pollGroup, MessageCallback callback, int maxMessages) { if (maxMessages > Library.maxMessagesPerBatch) { throw new ArgumentOutOfRangeException("maxMessages"); } IntPtr[] nativeMessages = ArrayPool.GetPointerBuffer(); int messagesCount = Native.SteamAPI_ISteamNetworkingSockets_ReceiveMessagesOnPollGroup(nativeSockets, pollGroup, nativeMessages, maxMessages); for (int i = 0; i < messagesCount; i++) { Span <NetworkingMessage> message; unsafe { message = new Span <NetworkingMessage>((void *)nativeMessages[i], 1); } callback(in message[0]); Native.SteamAPI_SteamNetworkingMessage_t_Release(nativeMessages[i]); } }
internal static extern bool SteamAPI_ISteamNetworkingSockets_DestroyPollGroup(IntPtr sockets, PollGroup pollGroup);
public bool SetConnectionPollGroup(PollGroup pollGroup, Connection connection) { return(Native.SteamAPI_ISteamNetworkingSockets_SetConnectionPollGroup(nativeSockets, connection, pollGroup)); }
public bool DestroyPollGroup(PollGroup pollGroup) { return(Native.SteamAPI_ISteamNetworkingSockets_DestroyPollGroup(nativeSockets, pollGroup)); }
internal static extern int SteamAPI_ISteamNetworkingSockets_ReceiveMessagesOnPollGroup(IntPtr sockets, PollGroup pollGroup, IntPtr[] messages, int maxMessages);
internal static extern bool SteamAPI_ISteamNetworkingSockets_SetConnectionPollGroup(IntPtr sockets, Connection connection, PollGroup pollGroup);