1 /* 2 * Copyright (c) 2013 Derelict Developers 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: 8 * 9 * * Redistributions of source code must retain the above copyright 10 * notice, this list of conditions and the following disclaimer. 11 * 12 * * Redistributions in binary form must reproduce the above copyright 13 * notice, this list of conditions and the following disclaimer in the 14 * documentation and/or other materials provided with the distribution. 15 * 16 * * Neither the names 'Derelict', 'DerelictILUT', nor the names of its contributors 17 * may be used to endorse or promote products derived from this software 18 * without specific prior written permission. 19 * 20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 22 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 23 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 24 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 25 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 26 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 27 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 28 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 29 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 30 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 */ 32 module derelict.enet.funcs; 33 34 35 private 36 { 37 import derelict.util.system; 38 import derelict.enet.types; 39 } 40 41 extern(C) @nogc nothrow 42 { 43 // enet.h 44 alias int function() da_enet_initialize; 45 alias int function(ENetVersion version_, const ENetCallbacks * inits) da_enet_initialize_with_callbacks; 46 alias void function() da_enet_deinitialize; 47 alias ENetVersion function() da_enet_linked_version; 48 alias enet_uint32 function() da_enet_time_get; 49 alias void function(enet_uint32) da_enet_time_set; 50 alias ENetSocket function(ENetSocketType) da_enet_socket_create; 51 alias int function(ENetSocket, const ENetAddress *) da_enet_socket_bind; 52 alias int function(ENetSocket, ENetAddress *) da_enet_socket_get_address; 53 alias int function(ENetSocket, int) da_enet_socket_listen; 54 alias ENetSocket function(ENetSocket, ENetAddress *) da_enet_socket_accept; 55 alias int function(ENetSocket, const ENetAddress *) da_enet_socket_connect; 56 alias int function(ENetSocket, const ENetAddress *, const ENetBuffer *, size_t) da_enet_socket_send; 57 alias int function(ENetSocket, ENetAddress *, ENetBuffer *, size_t) da_enet_socket_receive; 58 alias int function(ENetSocket, enet_uint32 *, enet_uint32) da_enet_socket_wait; 59 alias int function(ENetSocket, ENetSocketOption, int) da_enet_socket_set_option; 60 alias int function(ENetSocket, ENetSocketOption, int *) da_enet_socket_get_option; 61 alias int function(ENetSocket, ENetSocketShutdown) da_enet_socket_shutdown; 62 alias void function(ENetSocket) da_enet_socket_destroy; 63 alias int function(ENetSocket, ENetSocketSet *, ENetSocketSet *, enet_uint32) da_enet_socketset_select; 64 alias int function(ENetAddress * address, const char * hostName) da_enet_address_set_host; 65 alias int function(const ENetAddress * address, char * hostName, size_t nameLength) da_enet_address_get_host_ip; 66 alias int function(const ENetAddress * address, char * hostName, size_t nameLength) da_enet_address_get_host; 67 alias ENetPacket * function(const void *, size_t, enet_uint32) da_enet_packet_create; 68 alias void function(ENetPacket *) da_enet_packet_destroy; 69 alias int function (ENetPacket *, size_t) da_enet_packet_resize; 70 alias enet_uint32 function(const ENetBuffer *, size_t) da_enet_crc32; 71 alias ENetHost * function(const ENetAddress *, size_t, size_t, enet_uint32, enet_uint32) da_enet_host_create; 72 alias void function(ENetHost *) da_enet_host_destroy; 73 alias ENetPeer * function(ENetHost *, const ENetAddress *, size_t, enet_uint32) da_enet_host_connect; 74 alias int function(ENetHost *, ENetEvent *) da_enet_host_check_events; 75 alias int function(ENetHost *, ENetEvent *, enet_uint32) da_enet_host_service; 76 alias void function(ENetHost *) da_enet_host_flush; 77 alias void function(ENetHost *, enet_uint8, ENetPacket *) da_enet_host_broadcast; 78 alias void function(ENetHost *, const ENetCompressor *) da_enet_host_compress; 79 alias int function(ENetHost * host) da_enet_host_compress_with_range_coder; 80 alias void function(ENetHost *, size_t) da_enet_host_channel_limit; 81 alias void function(ENetHost *, enet_uint32, enet_uint32) da_enet_host_bandwidth_limit; 82 alias int function(ENetPeer *, enet_uint8, ENetPacket *) da_enet_peer_send; 83 alias ENetPacket * function(ENetPeer *, enet_uint8 * channelID) da_enet_peer_receive; 84 alias void function(ENetPeer *) da_enet_peer_ping; 85 alias void function(ENetPeer *, enet_uint32) da_enet_peer_ping_interval; 86 alias void function(ENetPeer *, enet_uint32, enet_uint32, enet_uint32) da_enet_peer_timeout; 87 alias void function(ENetPeer *) da_enet_peer_reset; 88 alias void function(ENetPeer *, enet_uint32) da_enet_peer_disconnect; 89 alias void function(ENetPeer *, enet_uint32) da_enet_peer_disconnect_now; 90 alias void function(ENetPeer *, enet_uint32) da_enet_peer_disconnect_later; 91 alias void function(ENetPeer *, enet_uint32, enet_uint32, enet_uint32) da_enet_peer_throttle_configure; 92 alias void * function() da_enet_range_coder_create; 93 alias void function(void *) da_enet_range_coder_destroy; 94 alias size_t function(void *, const ENetBuffer *, size_t, size_t, enet_uint8 *, size_t) da_enet_range_coder_compress; 95 alias size_t function(void *, const enet_uint8 *, size_t, enet_uint8 *, size_t) da_enet_range_coder_decompress; 96 alias int function(ENetAddress * address, const char * hostName) da_enet_address_set_host_ip; 97 } 98 99 __gshared 100 { 101 da_enet_initialize enet_initialize; 102 da_enet_initialize_with_callbacks enet_initialize_with_callbacks; 103 da_enet_deinitialize enet_deinitialize; 104 da_enet_linked_version enet_linked_version; 105 da_enet_time_get enet_time_get; 106 da_enet_socket_create enet_socket_create; 107 da_enet_socket_bind enet_socket_bind; 108 da_enet_socket_get_address enet_socket_get_address; 109 da_enet_socket_listen enet_socket_listen; 110 da_enet_socket_accept enet_socket_accept; 111 da_enet_socket_connect enet_socket_connect; 112 da_enet_socket_send enet_socket_send; 113 da_enet_socket_receive enet_socket_receive; 114 da_enet_socket_wait enet_socket_wait; 115 da_enet_socket_set_option enet_socket_set_option; 116 da_enet_socket_get_option enet_socket_get_option; 117 da_enet_socket_shutdown enet_socket_shutdown; 118 da_enet_socket_destroy enet_socket_destroy; 119 da_enet_socketset_select enet_socketset_select; 120 da_enet_address_set_host enet_address_set_host; 121 da_enet_address_get_host_ip enet_address_get_host_ip; 122 da_enet_address_get_host enet_address_get_host; 123 da_enet_packet_create enet_packet_create; 124 da_enet_packet_destroy enet_packet_destroy; 125 da_enet_packet_resize enet_packet_resize; 126 da_enet_crc32 enet_crc32; 127 da_enet_host_create enet_host_create; 128 da_enet_host_destroy enet_host_destroy; 129 da_enet_host_connect enet_host_connect; 130 da_enet_host_check_events enet_host_check_events; 131 da_enet_host_service enet_host_service; 132 da_enet_host_flush enet_host_flush; 133 da_enet_host_broadcast enet_host_broadcast; 134 da_enet_host_compress enet_host_compress; 135 da_enet_host_compress_with_range_coder enet_host_compress_with_range_coder; 136 da_enet_host_channel_limit enet_host_channel_limit; 137 da_enet_host_bandwidth_limit enet_host_bandwidth_limit; 138 da_enet_peer_send enet_peer_send; 139 da_enet_peer_receive enet_peer_receive; 140 da_enet_peer_ping enet_peer_ping; 141 da_enet_peer_ping_interval enet_peer_ping_interval; 142 da_enet_peer_timeout enet_peer_timeout; 143 da_enet_peer_reset enet_peer_reset; 144 da_enet_peer_disconnect enet_peer_disconnect; 145 da_enet_peer_disconnect_now enet_peer_disconnect_now; 146 da_enet_peer_disconnect_later enet_peer_disconnect_later; 147 da_enet_peer_throttle_configure enet_peer_throttle_configure; 148 da_enet_range_coder_create enet_range_coder_create; 149 da_enet_range_coder_destroy enet_range_coder_destroy; 150 da_enet_range_coder_compress enet_range_coder_compress; 151 da_enet_range_coder_decompress enet_range_coder_decompress; 152 da_enet_address_set_host_ip enet_address_set_host_ip; 153 } 154 155 156 157