NativeStructs.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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. // ENetEvent
  33. [StructLayout(LayoutKind.Sequential)]
  34. internal class ENetEvent
  35. {
  36. public EventType Type;
  37. public IntPtr Peer;
  38. public byte ChannelID;
  39. public uint Data;
  40. public IntPtr Packet;
  41. }
  42. [StructLayout(LayoutKind.Sequential)]
  43. internal class ENetListNode
  44. {
  45. public IntPtr Next;
  46. public IntPtr Previous;
  47. }
  48. [StructLayout(LayoutKind.Sequential)]
  49. internal struct ENetPacket
  50. {
  51. public uint ReferenceCount;
  52. public uint Flags;
  53. public IntPtr Data;
  54. public uint DataLength;
  55. public IntPtr FreeCallback;
  56. public IntPtr UserData;
  57. }
  58. [StructLayout(LayoutKind.Sequential)]
  59. internal struct ENetPeer
  60. {
  61. public ENetListNode DispatchList;
  62. public IntPtr Host;
  63. public ushort OutgoingPeerID;
  64. public ushort IncomingPeerID;
  65. public uint ConnectID;
  66. public byte OutgoingSessionID;
  67. public byte IncomingSessionID;
  68. public ENetAddress Address;
  69. public IntPtr Data;
  70. }
  71. }