renet 0.1.12 → 0.1.13

Sign up to get free protection for your applications and to get access to all the features.
data/ext/renet/enet.h DELETED
@@ -1,540 +0,0 @@
1
- /**
2
- @file enet.h
3
- @brief ENet public header file
4
- */
5
- #ifndef __ENET_ENET_H__
6
- #define __ENET_ENET_H__
7
-
8
- #ifdef __cplusplus
9
- extern "C"
10
- {
11
- #endif
12
-
13
- #include <stdlib.h>
14
-
15
- #ifdef WIN32
16
- #include "win32.h"
17
- #else
18
- #include "unix.h"
19
- #endif
20
-
21
- #include "types.h"
22
- #include "protocol.h"
23
- #include "list.h"
24
- #include "callbacks.h"
25
-
26
- #define ENET_VERSION_MAJOR 1
27
- #define ENET_VERSION_MINOR 3
28
- #define ENET_VERSION_PATCH 0
29
- #define ENET_VERSION_CREATE(major, minor, patch) (((major)<<16) | ((minor)<<8) | (patch))
30
- #define ENET_VERSION ENET_VERSION_CREATE(ENET_VERSION_MAJOR, ENET_VERSION_MINOR, ENET_VERSION_PATCH)
31
-
32
- typedef enet_uint32 ENetVersion;
33
-
34
- typedef enum _ENetSocketType
35
- {
36
- ENET_SOCKET_TYPE_STREAM = 1,
37
- ENET_SOCKET_TYPE_DATAGRAM = 2
38
- } ENetSocketType;
39
-
40
- typedef enum _ENetSocketWait
41
- {
42
- ENET_SOCKET_WAIT_NONE = 0,
43
- ENET_SOCKET_WAIT_SEND = (1 << 0),
44
- ENET_SOCKET_WAIT_RECEIVE = (1 << 1)
45
- } ENetSocketWait;
46
-
47
- typedef enum _ENetSocketOption
48
- {
49
- ENET_SOCKOPT_NONBLOCK = 1,
50
- ENET_SOCKOPT_BROADCAST = 2,
51
- ENET_SOCKOPT_RCVBUF = 3,
52
- ENET_SOCKOPT_SNDBUF = 4,
53
- ENET_SOCKOPT_REUSEADDR = 5
54
- } ENetSocketOption;
55
-
56
- enum
57
- {
58
- ENET_HOST_ANY = 0, /**< specifies the default server host */
59
- ENET_HOST_BROADCAST = 0xFFFFFFFF, /**< specifies a subnet-wide broadcast */
60
-
61
- ENET_PORT_ANY = 0 /**< specifies that a port should be automatically chosen */
62
- };
63
-
64
- /**
65
- * Portable internet address structure.
66
- *
67
- * The host must be specified in network byte-order, and the port must be in host
68
- * byte-order. The constant ENET_HOST_ANY may be used to specify the default
69
- * server host. The constant ENET_HOST_BROADCAST may be used to specify the
70
- * broadcast address (255.255.255.255). This makes sense for enet_host_connect,
71
- * but not for enet_host_create. Once a server responds to a broadcast, the
72
- * address is updated from ENET_HOST_BROADCAST to the server's actual IP address.
73
- */
74
- typedef struct _ENetAddress
75
- {
76
- enet_uint32 host;
77
- enet_uint16 port;
78
- } ENetAddress;
79
-
80
- /**
81
- * Packet flag bit constants.
82
- *
83
- * The host must be specified in network byte-order, and the port must be in
84
- * host byte-order. The constant ENET_HOST_ANY may be used to specify the
85
- * default server host.
86
-
87
- @sa ENetPacket
88
- */
89
- typedef enum _ENetPacketFlag
90
- {
91
- /** packet must be received by the target peer and resend attempts should be
92
- * made until the packet is delivered */
93
- ENET_PACKET_FLAG_RELIABLE = (1 << 0),
94
- /** packet will not be sequenced with other packets
95
- * not supported for reliable packets
96
- */
97
- ENET_PACKET_FLAG_UNSEQUENCED = (1 << 1),
98
- /** packet will not allocate data, and user must supply it instead */
99
- ENET_PACKET_FLAG_NO_ALLOCATE = (1 << 2)
100
- } ENetPacketFlag;
101
-
102
- struct _ENetPacket;
103
- typedef void (ENET_CALLBACK * ENetPacketFreeCallback) (struct _ENetPacket *);
104
-
105
- /**
106
- * ENet packet structure.
107
- *
108
- * An ENet data packet that may be sent to or received from a peer. The shown
109
- * fields should only be read and never modified. The data field contains the
110
- * allocated data for the packet. The dataLength fields specifies the length
111
- * of the allocated data. The flags field is either 0 (specifying no flags),
112
- * or a bitwise-or of any combination of the following flags:
113
- *
114
- * ENET_PACKET_FLAG_RELIABLE - packet must be received by the target peer
115
- * and resend attempts should be made until the packet is delivered
116
- *
117
- * ENET_PACKET_FLAG_UNSEQUENCED - packet will not be sequenced with other packets
118
- * (not supported for reliable packets)
119
- *
120
- * ENET_PACKET_FLAG_NO_ALLOCATE - packet will not allocate data, and user must supply it instead
121
-
122
- @sa ENetPacketFlag
123
- */
124
- typedef struct _ENetPacket
125
- {
126
- size_t referenceCount; /**< internal use only */
127
- enet_uint32 flags; /**< bitwise-or of ENetPacketFlag constants */
128
- enet_uint8 * data; /**< allocated data for packet */
129
- size_t dataLength; /**< length of data */
130
- ENetPacketFreeCallback freeCallback; /**< function to be called when the packet is no longer in use */
131
- } ENetPacket;
132
-
133
- typedef struct _ENetAcknowledgement
134
- {
135
- ENetListNode acknowledgementList;
136
- enet_uint32 sentTime;
137
- ENetProtocol command;
138
- } ENetAcknowledgement;
139
-
140
- typedef struct _ENetOutgoingCommand
141
- {
142
- ENetListNode outgoingCommandList;
143
- enet_uint16 reliableSequenceNumber;
144
- enet_uint16 unreliableSequenceNumber;
145
- enet_uint32 sentTime;
146
- enet_uint32 roundTripTimeout;
147
- enet_uint32 roundTripTimeoutLimit;
148
- enet_uint32 fragmentOffset;
149
- enet_uint16 fragmentLength;
150
- enet_uint16 sendAttempts;
151
- ENetProtocol command;
152
- ENetPacket * packet;
153
- } ENetOutgoingCommand;
154
-
155
- typedef struct _ENetIncomingCommand
156
- {
157
- ENetListNode incomingCommandList;
158
- enet_uint16 reliableSequenceNumber;
159
- enet_uint16 unreliableSequenceNumber;
160
- ENetProtocol command;
161
- enet_uint32 fragmentCount;
162
- enet_uint32 fragmentsRemaining;
163
- enet_uint32 * fragments;
164
- ENetPacket * packet;
165
- } ENetIncomingCommand;
166
-
167
- typedef enum _ENetPeerState
168
- {
169
- ENET_PEER_STATE_DISCONNECTED = 0,
170
- ENET_PEER_STATE_CONNECTING = 1,
171
- ENET_PEER_STATE_ACKNOWLEDGING_CONNECT = 2,
172
- ENET_PEER_STATE_CONNECTION_PENDING = 3,
173
- ENET_PEER_STATE_CONNECTION_SUCCEEDED = 4,
174
- ENET_PEER_STATE_CONNECTED = 5,
175
- ENET_PEER_STATE_DISCONNECT_LATER = 6,
176
- ENET_PEER_STATE_DISCONNECTING = 7,
177
- ENET_PEER_STATE_ACKNOWLEDGING_DISCONNECT = 8,
178
- ENET_PEER_STATE_ZOMBIE = 9
179
- } ENetPeerState;
180
-
181
- #ifndef ENET_BUFFER_MAXIMUM
182
- #define ENET_BUFFER_MAXIMUM (1 + 2 * ENET_PROTOCOL_MAXIMUM_PACKET_COMMANDS)
183
- #endif
184
-
185
- enum
186
- {
187
- ENET_HOST_RECEIVE_BUFFER_SIZE = 256 * 1024,
188
- ENET_HOST_SEND_BUFFER_SIZE = 256 * 1024,
189
- ENET_HOST_BANDWIDTH_THROTTLE_INTERVAL = 1000,
190
- ENET_HOST_DEFAULT_MTU = 1400,
191
-
192
- ENET_PEER_DEFAULT_ROUND_TRIP_TIME = 500,
193
- ENET_PEER_DEFAULT_PACKET_THROTTLE = 32,
194
- ENET_PEER_PACKET_THROTTLE_SCALE = 32,
195
- ENET_PEER_PACKET_THROTTLE_COUNTER = 7,
196
- ENET_PEER_PACKET_THROTTLE_ACCELERATION = 2,
197
- ENET_PEER_PACKET_THROTTLE_DECELERATION = 2,
198
- ENET_PEER_PACKET_THROTTLE_INTERVAL = 5000,
199
- ENET_PEER_PACKET_LOSS_SCALE = (1 << 16),
200
- ENET_PEER_PACKET_LOSS_INTERVAL = 10000,
201
- ENET_PEER_WINDOW_SIZE_SCALE = 64 * 1024,
202
- ENET_PEER_TIMEOUT_LIMIT = 32,
203
- ENET_PEER_TIMEOUT_MINIMUM = 5000,
204
- ENET_PEER_TIMEOUT_MAXIMUM = 30000,
205
- ENET_PEER_PING_INTERVAL = 500,
206
- ENET_PEER_UNSEQUENCED_WINDOWS = 64,
207
- ENET_PEER_UNSEQUENCED_WINDOW_SIZE = 1024,
208
- ENET_PEER_FREE_UNSEQUENCED_WINDOWS = 32,
209
- ENET_PEER_RELIABLE_WINDOWS = 16,
210
- ENET_PEER_RELIABLE_WINDOW_SIZE = 0x1000,
211
- ENET_PEER_FREE_RELIABLE_WINDOWS = 8
212
- };
213
-
214
- typedef struct _ENetChannel
215
- {
216
- enet_uint16 outgoingReliableSequenceNumber;
217
- enet_uint16 outgoingUnreliableSequenceNumber;
218
- enet_uint16 usedReliableWindows;
219
- enet_uint16 reliableWindows [ENET_PEER_RELIABLE_WINDOWS];
220
- enet_uint16 incomingReliableSequenceNumber;
221
- ENetList incomingReliableCommands;
222
- ENetList incomingUnreliableCommands;
223
- } ENetChannel;
224
-
225
- /**
226
- * An ENet peer which data packets may be sent or received from.
227
- *
228
- * No fields should be modified unless otherwise specified.
229
- */
230
- typedef struct _ENetPeer
231
- {
232
- ENetListNode dispatchList;
233
- struct _ENetHost * host;
234
- enet_uint16 outgoingPeerID;
235
- enet_uint16 incomingPeerID;
236
- enet_uint32 connectID;
237
- enet_uint8 outgoingSessionID;
238
- enet_uint8 incomingSessionID;
239
- ENetAddress address; /**< Internet address of the peer */
240
- void * data; /**< Application private data, may be freely modified */
241
- ENetPeerState state;
242
- ENetChannel * channels;
243
- size_t channelCount; /**< Number of channels allocated for communication with peer */
244
- enet_uint32 incomingBandwidth; /**< Downstream bandwidth of the client in bytes/second */
245
- enet_uint32 outgoingBandwidth; /**< Upstream bandwidth of the client in bytes/second */
246
- enet_uint32 incomingBandwidthThrottleEpoch;
247
- enet_uint32 outgoingBandwidthThrottleEpoch;
248
- enet_uint32 incomingDataTotal;
249
- enet_uint32 outgoingDataTotal;
250
- enet_uint32 lastSendTime;
251
- enet_uint32 lastReceiveTime;
252
- enet_uint32 nextTimeout;
253
- enet_uint32 earliestTimeout;
254
- enet_uint32 packetLossEpoch;
255
- enet_uint32 packetsSent;
256
- enet_uint32 packetsLost;
257
- enet_uint32 packetLoss; /**< mean packet loss of reliable packets as a ratio with respect to the constant ENET_PEER_PACKET_LOSS_SCALE */
258
- enet_uint32 packetLossVariance;
259
- enet_uint32 packetThrottle;
260
- enet_uint32 packetThrottleLimit;
261
- enet_uint32 packetThrottleCounter;
262
- enet_uint32 packetThrottleEpoch;
263
- enet_uint32 packetThrottleAcceleration;
264
- enet_uint32 packetThrottleDeceleration;
265
- enet_uint32 packetThrottleInterval;
266
- enet_uint32 lastRoundTripTime;
267
- enet_uint32 lowestRoundTripTime;
268
- enet_uint32 lastRoundTripTimeVariance;
269
- enet_uint32 highestRoundTripTimeVariance;
270
- enet_uint32 roundTripTime; /**< mean round trip time (RTT), in milliseconds, between sending a reliable packet and receiving its acknowledgement */
271
- enet_uint32 roundTripTimeVariance;
272
- enet_uint32 mtu;
273
- enet_uint32 windowSize;
274
- enet_uint32 reliableDataInTransit;
275
- enet_uint16 outgoingReliableSequenceNumber;
276
- ENetList acknowledgements;
277
- ENetList sentReliableCommands;
278
- ENetList sentUnreliableCommands;
279
- ENetList outgoingReliableCommands;
280
- ENetList outgoingUnreliableCommands;
281
- ENetList dispatchedCommands;
282
- int needsDispatch;
283
- enet_uint16 incomingUnsequencedGroup;
284
- enet_uint16 outgoingUnsequencedGroup;
285
- enet_uint32 unsequencedWindow [ENET_PEER_UNSEQUENCED_WINDOW_SIZE / 32];
286
- enet_uint32 eventData;
287
- } ENetPeer;
288
-
289
- /** An ENet packet compressor for compressing UDP packets before socket sends or receives.
290
- */
291
- typedef struct _ENetCompressor
292
- {
293
- /** Context data for the compressor. Must be non-NULL. */
294
- void * context;
295
- /** Compresses from inBuffers[0:inBufferCount-1], containing inLimit bytes, to outData, outputting at most outLimit bytes. Should return 0 on failure. */
296
- size_t (ENET_CALLBACK * compress) (void * context, const ENetBuffer * inBuffers, size_t inBufferCount, size_t inLimit, enet_uint8 * outData, size_t outLimit);
297
- /** Decompresses from inData, containing inLimit bytes, to outData, outputting at most outLimit bytes. Should return 0 on failure. */
298
- size_t (ENET_CALLBACK * decompress) (void * context, const enet_uint8 * inData, size_t inLimit, enet_uint8 * outData, size_t outLimit);
299
- /** Destroys the context when compression is disabled or the host is destroyed. May be NULL. */
300
- void (ENET_CALLBACK * destroy) (void * context);
301
- } ENetCompressor;
302
-
303
- /** Callback that computes the checksum of the data held in buffers[0:bufferCount-1] */
304
- typedef enet_uint32 (ENET_CALLBACK * ENetChecksumCallback) (const ENetBuffer * buffers, size_t bufferCount);
305
-
306
- /** An ENet host for communicating with peers.
307
- *
308
- * No fields should be modified unless otherwise stated.
309
-
310
- @sa enet_host_create()
311
- @sa enet_host_destroy()
312
- @sa enet_host_connect()
313
- @sa enet_host_service()
314
- @sa enet_host_flush()
315
- @sa enet_host_broadcast()
316
- @sa enet_host_compress()
317
- @sa enet_host_compress_with_range_coder()
318
- @sa enet_host_channel_limit()
319
- @sa enet_host_bandwidth_limit()
320
- @sa enet_host_bandwidth_throttle()
321
- */
322
- typedef struct _ENetHost
323
- {
324
- ENetSocket socket;
325
- ENetAddress address; /**< Internet address of the host */
326
- enet_uint32 incomingBandwidth; /**< downstream bandwidth of the host */
327
- enet_uint32 outgoingBandwidth; /**< upstream bandwidth of the host */
328
- enet_uint32 bandwidthThrottleEpoch;
329
- enet_uint32 mtu;
330
- enet_uint32 randomSeed;
331
- int recalculateBandwidthLimits;
332
- ENetPeer * peers; /**< array of peers allocated for this host */
333
- size_t peerCount; /**< number of peers allocated for this host */
334
- size_t channelLimit; /**< maximum number of channels allowed for connected peers */
335
- enet_uint32 serviceTime;
336
- ENetList dispatchQueue;
337
- int continueSending;
338
- size_t packetSize;
339
- enet_uint16 headerFlags;
340
- ENetProtocol commands [ENET_PROTOCOL_MAXIMUM_PACKET_COMMANDS];
341
- size_t commandCount;
342
- ENetBuffer buffers [ENET_BUFFER_MAXIMUM];
343
- size_t bufferCount;
344
- ENetChecksumCallback checksum; /**< callback the user can set to enable packet checksums for this host */
345
- ENetCompressor compressor;
346
- enet_uint8 packetData [2][ENET_PROTOCOL_MAXIMUM_MTU];
347
- ENetAddress receivedAddress;
348
- enet_uint8 * receivedData;
349
- size_t receivedDataLength;
350
- enet_uint32 totalSentData; /**< total data sent, user should reset to 0 as needed to prevent overflow */
351
- enet_uint32 totalSentPackets; /**< total UDP packets sent, user should reset to 0 as needed to prevent overflow */
352
- enet_uint32 totalReceivedData; /**< total data received, user should reset to 0 as needed to prevent overflow */
353
- enet_uint32 totalReceivedPackets; /**< total UDP packets received, user should reset to 0 as needed to prevent overflow */
354
- } ENetHost;
355
-
356
- /**
357
- * An ENet event type, as specified in @ref ENetEvent.
358
- */
359
- typedef enum _ENetEventType
360
- {
361
- /** no event occurred within the specified time limit */
362
- ENET_EVENT_TYPE_NONE = 0,
363
-
364
- /** a connection request initiated by enet_host_connect has completed.
365
- * The peer field contains the peer which successfully connected.
366
- */
367
- ENET_EVENT_TYPE_CONNECT = 1,
368
-
369
- /** a peer has disconnected. This event is generated on a successful
370
- * completion of a disconnect initiated by enet_pper_disconnect, if
371
- * a peer has timed out, or if a connection request intialized by
372
- * enet_host_connect has timed out. The peer field contains the peer
373
- * which disconnected. The data field contains user supplied data
374
- * describing the disconnection, or 0, if none is available.
375
- */
376
- ENET_EVENT_TYPE_DISCONNECT = 2,
377
-
378
- /** a packet has been received from a peer. The peer field specifies the
379
- * peer which sent the packet. The channelID field specifies the channel
380
- * number upon which the packet was received. The packet field contains
381
- * the packet that was received; this packet must be destroyed with
382
- * enet_packet_destroy after use.
383
- */
384
- ENET_EVENT_TYPE_RECEIVE = 3
385
- } ENetEventType;
386
-
387
- /**
388
- * An ENet event as returned by enet_host_service().
389
-
390
- @sa enet_host_service
391
- */
392
- typedef struct _ENetEvent
393
- {
394
- ENetEventType type; /**< type of the event */
395
- ENetPeer * peer; /**< peer that generated a connect, disconnect or receive event */
396
- enet_uint8 channelID; /**< channel on the peer that generated the event, if appropriate */
397
- enet_uint32 data; /**< data associated with the event, if appropriate */
398
- ENetPacket * packet; /**< packet associated with the event, if appropriate */
399
- } ENetEvent;
400
-
401
- /** @defgroup global ENet global functions
402
- @{
403
- */
404
-
405
- /**
406
- Initializes ENet globally. Must be called prior to using any functions in
407
- ENet.
408
- @returns 0 on success, < 0 on failure
409
- */
410
- ENET_API int enet_initialize (void);
411
-
412
- /**
413
- Initializes ENet globally and supplies user-overridden callbacks. Must be called prior to using any functions in ENet. Do not use enet_initialize() if you use this variant. Make sure the ENetCallbacks structure is zeroed out so that any additional callbacks added in future versions will be properly ignored.
414
-
415
- @param version the constant ENET_VERSION should be supplied so ENet knows which version of ENetCallbacks struct to use
416
- @param inits user-overriden callbacks where any NULL callbacks will use ENet's defaults
417
- @returns 0 on success, < 0 on failure
418
- */
419
- ENET_API int enet_initialize_with_callbacks (ENetVersion version, const ENetCallbacks * inits);
420
-
421
- /**
422
- Shuts down ENet globally. Should be called when a program that has
423
- initialized ENet exits.
424
- */
425
- ENET_API void enet_deinitialize (void);
426
-
427
- /** @} */
428
-
429
- /** @defgroup private ENet private implementation functions */
430
-
431
- /**
432
- Returns the wall-time in milliseconds. Its initial value is unspecified
433
- unless otherwise set.
434
- */
435
- ENET_API enet_uint32 enet_time_get (void);
436
- /**
437
- Sets the current wall-time in milliseconds.
438
- */
439
- ENET_API void enet_time_set (enet_uint32);
440
-
441
- /** @defgroup socket ENet socket functions
442
- @{
443
- */
444
- ENET_API ENetSocket enet_socket_create (ENetSocketType);
445
- ENET_API int enet_socket_bind (ENetSocket, const ENetAddress *);
446
- ENET_API int enet_socket_listen (ENetSocket, int);
447
- ENET_API ENetSocket enet_socket_accept (ENetSocket, ENetAddress *);
448
- ENET_API int enet_socket_connect (ENetSocket, const ENetAddress *);
449
- ENET_API int enet_socket_send (ENetSocket, const ENetAddress *, const ENetBuffer *, size_t);
450
- ENET_API int enet_socket_receive (ENetSocket, ENetAddress *, ENetBuffer *, size_t);
451
- ENET_API int enet_socket_wait (ENetSocket, enet_uint32 *, enet_uint32);
452
- ENET_API int enet_socket_set_option (ENetSocket, ENetSocketOption, int);
453
- ENET_API void enet_socket_destroy (ENetSocket);
454
- ENET_API int enet_socketset_select (ENetSocket, ENetSocketSet *, ENetSocketSet *, enet_uint32);
455
-
456
- /** @} */
457
-
458
- /** @defgroup Address ENet address functions
459
- @{
460
- */
461
- /** Attempts to resolve the host named by the parameter hostName and sets
462
- the host field in the address parameter if successful.
463
- @param address destination to store resolved address
464
- @param hostName host name to lookup
465
- @retval 0 on success
466
- @retval < 0 on failure
467
- @returns the address of the given hostName in address on success
468
- */
469
- ENET_API int enet_address_set_host (ENetAddress * address, const char * hostName);
470
-
471
- /** Gives the printable form of the ip address specified in the address parameter.
472
- @param address address printed
473
- @param hostName destination for name, must not be NULL
474
- @param nameLength maximum length of hostName.
475
- @returns the null-terminated name of the host in hostName on success
476
- @retval 0 on success
477
- @retval < 0 on failure
478
- */
479
- ENET_API int enet_address_get_host_ip (const ENetAddress * address, char * hostName, size_t nameLength);
480
-
481
- /** Attempts to do a reverse lookup of the host field in the address parameter.
482
- @param address address used for reverse lookup
483
- @param hostName destination for name, must not be NULL
484
- @param nameLength maximum length of hostName.
485
- @returns the null-terminated name of the host in hostName on success
486
- @retval 0 on success
487
- @retval < 0 on failure
488
- */
489
- ENET_API int enet_address_get_host (const ENetAddress * address, char * hostName, size_t nameLength);
490
-
491
- /** @} */
492
-
493
- ENET_API ENetPacket * enet_packet_create (const void *, size_t, enet_uint32);
494
- ENET_API void enet_packet_destroy (ENetPacket *);
495
- ENET_API int enet_packet_resize (ENetPacket *, size_t);
496
- extern enet_uint32 enet_crc32 (const ENetBuffer *, size_t);
497
-
498
- ENET_API ENetHost * enet_host_create (const ENetAddress *, size_t, size_t, enet_uint32, enet_uint32);
499
- ENET_API void enet_host_destroy (ENetHost *);
500
- ENET_API ENetPeer * enet_host_connect (ENetHost *, const ENetAddress *, size_t, enet_uint32);
501
- ENET_API int enet_host_check_events (ENetHost *, ENetEvent *);
502
- ENET_API int enet_host_service (ENetHost *, ENetEvent *, enet_uint32);
503
- ENET_API void enet_host_flush (ENetHost *);
504
- ENET_API void enet_host_broadcast (ENetHost *, enet_uint8, ENetPacket *);
505
- ENET_API void enet_host_compress (ENetHost *, const ENetCompressor *);
506
- ENET_API int enet_host_compress_with_range_coder (ENetHost * host);
507
- ENET_API void enet_host_channel_limit (ENetHost *, size_t);
508
- ENET_API void enet_host_bandwidth_limit (ENetHost *, enet_uint32, enet_uint32);
509
- extern void enet_host_bandwidth_throttle (ENetHost *);
510
-
511
- ENET_API int enet_peer_send (ENetPeer *, enet_uint8, ENetPacket *);
512
- ENET_API ENetPacket * enet_peer_receive (ENetPeer *, enet_uint8 * channelID);
513
- ENET_API void enet_peer_ping (ENetPeer *);
514
- ENET_API void enet_peer_reset (ENetPeer *);
515
- ENET_API void enet_peer_disconnect (ENetPeer *, enet_uint32);
516
- ENET_API void enet_peer_disconnect_now (ENetPeer *, enet_uint32);
517
- ENET_API void enet_peer_disconnect_later (ENetPeer *, enet_uint32);
518
- ENET_API void enet_peer_throttle_configure (ENetPeer *, enet_uint32, enet_uint32, enet_uint32);
519
- extern int enet_peer_throttle (ENetPeer *, enet_uint32);
520
- extern void enet_peer_reset_queues (ENetPeer *);
521
- extern void enet_peer_setup_outgoing_command (ENetPeer *, ENetOutgoingCommand *);
522
- extern ENetOutgoingCommand * enet_peer_queue_outgoing_command (ENetPeer *, const ENetProtocol *, ENetPacket *, enet_uint32, enet_uint16);
523
- extern ENetIncomingCommand * enet_peer_queue_incoming_command (ENetPeer *, const ENetProtocol *, ENetPacket *, enet_uint32);
524
- extern ENetAcknowledgement * enet_peer_queue_acknowledgement (ENetPeer *, const ENetProtocol *, enet_uint16);
525
- extern void enet_peer_dispatch_incoming_unreliable_commands (ENetPeer *, ENetChannel *);
526
- extern void enet_peer_dispatch_incoming_reliable_commands (ENetPeer *, ENetChannel *);
527
-
528
- ENET_API void * enet_range_coder_create (void);
529
- ENET_API void enet_range_coder_destroy (void *);
530
- ENET_API size_t enet_range_coder_compress (void *, const ENetBuffer *, size_t, size_t, enet_uint8 *, size_t);
531
- ENET_API size_t enet_range_coder_decompress (void *, const enet_uint8 *, size_t, enet_uint8 *, size_t);
532
-
533
- extern size_t enet_protocol_command_size (enet_uint8);
534
-
535
- #ifdef __cplusplus
536
- }
537
- #endif
538
-
539
- #endif /* __ENET_ENET_H__ */
540
-