|
|
@@ -0,0 +1,105 @@
|
|
|
+using System;
|
|
|
+using System.Runtime.InteropServices;
|
|
|
+using System.Text;
|
|
|
+
|
|
|
+namespace Base
|
|
|
+{
|
|
|
+ public static class NativeMethods
|
|
|
+ {
|
|
|
+ private const string LIB = "ENet";
|
|
|
+
|
|
|
+ public const int ENET_PROTOCOL_MAXIMUM_CHANNEL_COUNT = 255;
|
|
|
+ public const int ENET_PROTOCOL_MAXIMUM_PEER_ID = 0xfff;
|
|
|
+
|
|
|
+ [DllImport(LIB, EntryPoint = "enet_address_set_host")]
|
|
|
+ internal static extern int ENetAddressSetHost(ref ENetAddress address, string hostName);
|
|
|
+
|
|
|
+ [DllImport(LIB, EntryPoint = "enet_address_get_host")]
|
|
|
+ internal static extern int ENetAddressGetHost(ref ENetAddress address, StringBuilder hostName, uint nameLength);
|
|
|
+
|
|
|
+ [DllImport(LIB, EntryPoint = "enet_address_get_host_ip")]
|
|
|
+ internal static extern int ENetAddressGetHostIp(ref ENetAddress address, StringBuilder hostIp, uint ipLength);
|
|
|
+
|
|
|
+ [DllImport(LIB, EntryPoint = "enet_deinitialize")]
|
|
|
+ internal static extern void ENetDeinitialize();
|
|
|
+
|
|
|
+ [DllImport(LIB, EntryPoint = "enet_initialize")]
|
|
|
+ internal static extern int ENetInitialize();
|
|
|
+
|
|
|
+ [DllImport(LIB, EntryPoint = "enet_host_create")]
|
|
|
+ internal static extern IntPtr ENetHostCreate(
|
|
|
+ ref ENetAddress address, uint peerLimit, uint channelLimit, uint incomingBandwidth, uint outgoingBandwidth);
|
|
|
+
|
|
|
+ [DllImport(LIB, EntryPoint = "enet_host_create")]
|
|
|
+ internal static extern IntPtr ENetHostCreate(IntPtr address, uint peerLimit, uint channelLimit, uint incomingBandwidth, uint outgoingBandwidth);
|
|
|
+
|
|
|
+ [DllImport(LIB, EntryPoint = "enet_host_destroy")]
|
|
|
+ internal static extern void ENetHostDestroy(IntPtr host);
|
|
|
+
|
|
|
+ [DllImport(LIB, EntryPoint = "enet_host_connect")]
|
|
|
+ internal static extern IntPtr ENetHostConnect(IntPtr host, ref ENetAddress address, uint channelCount, uint data);
|
|
|
+
|
|
|
+ [DllImport(LIB, EntryPoint = "enet_host_broadcast")]
|
|
|
+ internal static extern void ENetHostBroadcast(IntPtr host, byte channelID, IntPtr packet);
|
|
|
+
|
|
|
+ [DllImport(LIB, EntryPoint = "enet_host_compress")]
|
|
|
+ internal static extern void ENetHostCompress(IntPtr host, IntPtr compressor);
|
|
|
+
|
|
|
+ [DllImport(LIB, EntryPoint = "enet_host_compress_with_range_coder")]
|
|
|
+ internal static extern int ENetHostCompressWithRangeCoder(IntPtr host);
|
|
|
+
|
|
|
+ [DllImport(LIB, EntryPoint = "enet_host_channel_limit")]
|
|
|
+ internal static extern void ENetHostChannelLimit(IntPtr host, uint channelLimit);
|
|
|
+
|
|
|
+ [DllImport(LIB, EntryPoint = "enet_host_bandwidth_limit")]
|
|
|
+ internal static extern void ENetHostBandwidthLimit(IntPtr host, uint incomingBandwidth, uint outgoingBandwidth);
|
|
|
+
|
|
|
+ [DllImport(LIB, EntryPoint = "enet_host_flush")]
|
|
|
+ internal static extern void ENetHostFlush(IntPtr host);
|
|
|
+
|
|
|
+ [DllImport(LIB, EntryPoint = "enet_host_check_events")]
|
|
|
+ internal static extern int ENetHostCheckEvents(IntPtr host, ENetEvent ev);
|
|
|
+
|
|
|
+ [DllImport(LIB, EntryPoint = "enet_host_service")]
|
|
|
+ internal static extern int ENetHostService(IntPtr host, ENetEvent ev, uint timeout);
|
|
|
+
|
|
|
+ [DllImport(LIB, EntryPoint = "enet_time_get")]
|
|
|
+ internal static extern uint ENetTimeGet();
|
|
|
+
|
|
|
+ [DllImport(LIB, EntryPoint = "enet_time_set")]
|
|
|
+ internal static extern void ENetTimeSet(uint newTimeBase);
|
|
|
+
|
|
|
+ [DllImport(LIB, EntryPoint = "enet_packet_create")]
|
|
|
+ internal static extern IntPtr ENetPacketCreate(byte[] data, uint dataLength, PacketFlags flags);
|
|
|
+
|
|
|
+ [DllImport(LIB, EntryPoint = "enet_packet_destroy")]
|
|
|
+ internal static extern void ENetPacketDestroy(IntPtr packet);
|
|
|
+
|
|
|
+ [DllImport(LIB, EntryPoint = "enet_packet_resize")]
|
|
|
+ internal static extern int ENetPacketResize(IntPtr packet, uint dataLength);
|
|
|
+
|
|
|
+ [DllImport(LIB, EntryPoint = "enet_peer_throttle_configure")]
|
|
|
+ internal static extern void ENetPeerThrottleConfigure(IntPtr peer, uint interval, uint acceleration, uint deceleration);
|
|
|
+
|
|
|
+ [DllImport(LIB, EntryPoint = "enet_peer_send")]
|
|
|
+ internal static extern int ENetPeerSend(IntPtr peer, byte channelID, IntPtr packet);
|
|
|
+
|
|
|
+ [DllImport(LIB, EntryPoint = "enet_peer_receive")]
|
|
|
+ internal static extern IntPtr ENetPeerReceive(IntPtr peer, out byte channelID);
|
|
|
+
|
|
|
+ [DllImport(LIB, EntryPoint = "enet_peer_reset")]
|
|
|
+ internal static extern void ENetPeerReset(IntPtr peer);
|
|
|
+
|
|
|
+ [DllImport(LIB, EntryPoint = "enet_peer_ping")]
|
|
|
+ internal static extern void ENetPeerPing(IntPtr peer);
|
|
|
+
|
|
|
+ [DllImport(LIB, EntryPoint = "enet_peer_disconnect_now")]
|
|
|
+ internal static extern void ENetPeerDisconnectNow(IntPtr peer, uint data);
|
|
|
+
|
|
|
+ [DllImport(LIB, EntryPoint = "enet_peer_disconnect")]
|
|
|
+ internal static extern void ENetPeerDisconnect(IntPtr peer, uint data);
|
|
|
+
|
|
|
+ [DllImport(LIB, EntryPoint = "enet_peer_disconnect_later")]
|
|
|
+ internal static extern void ENetPeerDisconnectLater(IntPtr peer, uint data);
|
|
|
+ }
|
|
|
+}
|