IgnoranceDefinitions.cs 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. using System;
  2. using ENet;
  3. namespace IgnoranceTransport
  4. {
  5. // Snipped from the transport files, as this will help
  6. // me keep things up to date.
  7. [Serializable]
  8. public enum IgnoranceChannelTypes
  9. {
  10. Reliable = PacketFlags.Reliable, // TCP Emulation.
  11. ReliableUnsequenced = PacketFlags.Reliable | PacketFlags.Unsequenced, // TCP Emulation, but no sequencing.
  12. Unreliable = PacketFlags.Unsequenced, // Pure UDP.
  13. UnreliableFragmented = PacketFlags.UnreliableFragmented, // Pure UDP, but fragmented.
  14. UnreliableSequenced = PacketFlags.None, // Pure UDP, but sequenced.
  15. Unthrottled = PacketFlags.Unthrottled, // Apparently ENet's version of Taco Bell.
  16. }
  17. public class IgnoranceInternals
  18. {
  19. public const string Version = "1.4.0b6";
  20. public const string Scheme = "enet";
  21. public const string BindAllIPv4 = "0.0.0.0";
  22. public const string BindAllMacs = "::0";
  23. }
  24. public enum IgnoranceLogType
  25. {
  26. Nothing,
  27. Standard,
  28. Verbose
  29. }
  30. // Struct optimized for cache efficiency. (Thanks Vincenzo!)
  31. public struct IgnoranceIncomingPacket
  32. {
  33. public byte Channel;
  34. public uint NativePeerId;
  35. public Packet Payload;
  36. }
  37. // Struct optimized for cache efficiency. (Thanks Vincenzo!)
  38. public struct IgnoranceOutgoingPacket
  39. {
  40. public byte Channel;
  41. public uint NativePeerId;
  42. public Packet Payload;
  43. }
  44. // Struct optimized for cache efficiency. (Thanks Vincenzo!)
  45. public struct IgnoranceConnectionEvent
  46. {
  47. public bool WasDisconnect;
  48. public ushort Port;
  49. public uint NativePeerId;
  50. public string IP;
  51. }
  52. public struct IgnoranceCommandPacket
  53. {
  54. public IgnoranceCommandType Type;
  55. public uint PeerId;
  56. }
  57. public struct IgnoranceClientStats
  58. {
  59. // Stats only - may not always be used!
  60. public uint RTT;
  61. public ulong BytesReceived;
  62. public ulong BytesSent;
  63. public ulong PacketsReceived;
  64. public ulong PacketsSent;
  65. public ulong PacketsLost;
  66. }
  67. public enum IgnoranceCommandType
  68. {
  69. // Client
  70. ClientWantsToStop,
  71. ClientRequestsStatusUpdate,
  72. // ENet internal
  73. ResponseToClientStatusRequest,
  74. // Server
  75. ServerKickPeer
  76. }
  77. // TODO: Optimize struct for Cache performance.
  78. public struct PeerConnectionData
  79. {
  80. public ushort Port;
  81. public uint NativePeerId;
  82. public string IP;
  83. }
  84. }