NativeStructs.cs 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. using System;
  2. using System.Runtime.InteropServices;
  3. namespace UNet
  4. {
  5. internal enum EventType
  6. {
  7. None = 0,
  8. Connect = 1,
  9. Disconnect = 2,
  10. Receive = 3
  11. }
  12. internal enum PeerState
  13. {
  14. Uninitialized = -1,
  15. Disconnected = 0,
  16. Connecting = 1,
  17. AcknowledgingConnect = 2,
  18. ConnectionPending = 3,
  19. ConnectionSucceeded = 4,
  20. Connected = 5,
  21. DisconnectLater = 6,
  22. Disconnecting = 7,
  23. AcknowledgingDisconnect = 8,
  24. Zombie = 9
  25. }
  26. [StructLayout(LayoutKind.Sequential)]
  27. internal struct ENetAddress
  28. {
  29. public uint Host;
  30. public ushort Port;
  31. }
  32. [StructLayout(LayoutKind.Sequential)]
  33. internal struct ENetCallbacks
  34. {
  35. [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
  36. public delegate IntPtr MallocCb(IntPtr size);
  37. [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
  38. public delegate void FreeCb(IntPtr memory);
  39. [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
  40. public delegate void NoMemoryCb();
  41. private IntPtr malloc;
  42. private IntPtr free;
  43. private IntPtr no_memory;
  44. }
  45. // ENetEvent
  46. [StructLayout(LayoutKind.Sequential)]
  47. internal class ENetEvent
  48. {
  49. public EventType Type;
  50. public IntPtr Peer;
  51. public byte ChannelID;
  52. public uint Data;
  53. public IntPtr Packet;
  54. }
  55. [StructLayout(LayoutKind.Sequential)]
  56. internal struct ENetHost
  57. {
  58. }
  59. [StructLayout(LayoutKind.Sequential)]
  60. internal class ENetListNode
  61. {
  62. public IntPtr Next;
  63. public IntPtr Previous;
  64. }
  65. [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
  66. internal delegate void ENetPacketFreeCallback(ref ENetPacket param0);
  67. [StructLayout(LayoutKind.Sequential)]
  68. internal struct ENetPacket
  69. {
  70. public uint ReferenceCount;
  71. public uint Flags;
  72. public IntPtr Data;
  73. public uint DataLength;
  74. public ENetPacketFreeCallback FreeCallback;
  75. public IntPtr UserData;
  76. }
  77. [StructLayout(LayoutKind.Sequential)]
  78. internal struct ENetPeer
  79. {
  80. public ENetListNode DispatchList;
  81. public IntPtr Host;
  82. public ushort OutgoingPeerID;
  83. public ushort IncomingPeerID;
  84. public uint ConnectID;
  85. public byte OutgoingSessionID;
  86. public byte IncomingSessionID;
  87. public ENetAddress Address;
  88. public IntPtr Data;
  89. public PeerState State;
  90. }
  91. }