enet.h File Reference


Detailed Description

#include <stdlib.h>
#include "enet/unix.h"
#include "enet/types.h"
#include "enet/protocol.h"
#include "enet/list.h"
#include "enet/callbacks.h"

Go to the source code of this file.

Data Structures

struct  _ENetAddress
 Portable internet address structure. More...
struct  _ENetPacket
 ENet packet structure. More...
struct  _ENetAcknowledgement
struct  _ENetOutgoingCommand
struct  _ENetIncomingCommand
struct  _ENetChannel
struct  _ENetPeer
 An ENet peer which data packets may be sent or received from. More...
struct  _ENetHost
 An ENet host for communicating with peers. More...
struct  _ENetEvent
 An ENet event as returned by enet_host_service(). More...

Defines

#define ENET_BUFFER_MAXIMUM   (1 + 2 * ENET_PROTOCOL_MAXIMUM_PACKET_COMMANDS)

Typedefs

typedef _ENetAddress ENetAddress
 Portable internet address structure.
typedef _ENetPacket ENetPacket
 ENet packet structure.
typedef _ENetAcknowledgement ENetAcknowledgement
typedef _ENetOutgoingCommand ENetOutgoingCommand
typedef _ENetIncomingCommand ENetIncomingCommand
typedef _ENetChannel ENetChannel
typedef _ENetPeer ENetPeer
 An ENet peer which data packets may be sent or received from.
typedef _ENetHost ENetHost
 An ENet host for communicating with peers.
typedef _ENetEvent ENetEvent
 An ENet event as returned by enet_host_service().

Enumerations

enum  ENetVersion { ENET_VERSION = 1 }
enum  ENetSocketType { ENET_SOCKET_TYPE_STREAM = 1, ENET_SOCKET_TYPE_DATAGRAM = 2 }
enum  ENetSocketWait { ENET_SOCKET_WAIT_NONE = 0, ENET_SOCKET_WAIT_SEND = (1 << 0), ENET_SOCKET_WAIT_RECEIVE = (1 << 1) }
enum  { ENET_HOST_ANY = 0, ENET_HOST_BROADCAST = 0xFFFFFFFF, ENET_PORT_ANY = 0 }
enum  ENetPacketFlag { ENET_PACKET_FLAG_RELIABLE = (1 << 0), ENET_PACKET_FLAG_UNSEQUENCED = (1 << 1), ENET_PACKET_FLAG_NO_ALLOCATE = (1 << 2) }
 Packet flag bit constants. More...
enum  ENetPeerState {
  ENET_PEER_STATE_DISCONNECTED = 0, ENET_PEER_STATE_CONNECTING = 1, ENET_PEER_STATE_ACKNOWLEDGING_CONNECT = 2, ENET_PEER_STATE_CONNECTION_PENDING = 3,
  ENET_PEER_STATE_CONNECTION_SUCCEEDED = 4, ENET_PEER_STATE_CONNECTED = 5, ENET_PEER_STATE_DISCONNECT_LATER = 6, ENET_PEER_STATE_DISCONNECTING = 7,
  ENET_PEER_STATE_ACKNOWLEDGING_DISCONNECT = 8, ENET_PEER_STATE_ZOMBIE = 9
}
enum  {
  ENET_HOST_RECEIVE_BUFFER_SIZE = 256 * 1024, ENET_HOST_SEND_BUFFER_SIZE = 256 * 1024, ENET_HOST_BANDWIDTH_THROTTLE_INTERVAL = 1000, ENET_HOST_DEFAULT_MTU = 1400,
  ENET_PEER_DEFAULT_ROUND_TRIP_TIME = 500, ENET_PEER_DEFAULT_PACKET_THROTTLE = 32, ENET_PEER_PACKET_THROTTLE_SCALE = 32, ENET_PEER_PACKET_THROTTLE_COUNTER = 7,
  ENET_PEER_PACKET_THROTTLE_ACCELERATION = 2, ENET_PEER_PACKET_THROTTLE_DECELERATION = 2, ENET_PEER_PACKET_THROTTLE_INTERVAL = 5000, ENET_PEER_PACKET_LOSS_SCALE = (1 << 16),
  ENET_PEER_PACKET_LOSS_INTERVAL = 10000, ENET_PEER_WINDOW_SIZE_SCALE = 64 * 1024, ENET_PEER_TIMEOUT_LIMIT = 32, ENET_PEER_TIMEOUT_MINIMUM = 5000,
  ENET_PEER_TIMEOUT_MAXIMUM = 30000, ENET_PEER_PING_INTERVAL = 500, ENET_PEER_UNSEQUENCED_WINDOW_SIZE = 4 * 32
}
enum  ENetEventType { ENET_EVENT_TYPE_NONE = 0, ENET_EVENT_TYPE_CONNECT = 1, ENET_EVENT_TYPE_DISCONNECT = 2, ENET_EVENT_TYPE_RECEIVE = 3 }
 An ENet event type, as specified in ENetEvent. More...

Functions

typedef void (ENET_CALLBACK *ENetPacketFreeCallback)(struct _ENetPacket *)
ENET_API int enet_initialize (void)
 Initializes ENet globally.
ENET_API int enet_initialize_with_callbacks (ENetVersion version, const ENetCallbacks *inits)
 Initializes ENet globally and supplies user-overridden callbacks.
ENET_API void enet_deinitialize (void)
 Shuts down ENet globally.
ENET_API enet_uint32 enet_time_get (void)
 Returns the wall-time in milliseconds.
ENET_API void enet_time_set (enet_uint32)
 Sets the current wall-time in milliseconds.
ENET_API ENetSocket enet_socket_create (ENetSocketType, const ENetAddress *)
ENET_API ENetSocket enet_socket_accept (ENetSocket, ENetAddress *)
ENET_API int enet_socket_connect (ENetSocket, const ENetAddress *)
ENET_API int enet_socket_send (ENetSocket, const ENetAddress *, const ENetBuffer *, size_t)
ENET_API int enet_socket_receive (ENetSocket, ENetAddress *, ENetBuffer *, size_t)
ENET_API int enet_socket_wait (ENetSocket, enet_uint32 *, enet_uint32)
ENET_API void enet_socket_destroy (ENetSocket)
ENET_API int enet_address_set_host (ENetAddress *address, const char *hostName)
 Attempts to resolve the host named by the parameter hostName and sets the host field in the address parameter if successful.
ENET_API int enet_address_get_host_ip (const ENetAddress *address, char *hostName, size_t nameLength)
 Gives the printable form of the ip address specified in the address parameter.
ENET_API int enet_address_get_host (const ENetAddress *address, char *hostName, size_t nameLength)
 Attempts to do a reverse lookup of the host field in the address parameter.
ENET_API ENetPacketenet_packet_create (const void *, size_t, enet_uint32)
 Creates a packet that may be sent to a peer.
ENET_API void enet_packet_destroy (ENetPacket *)
 Destroys the packet and deallocates its data.
ENET_API int enet_packet_resize (ENetPacket *, size_t)
 Attempts to resize the data in the packet to length specified in the dataLength parameter.
enet_uint32 enet_crc32 (const ENetBuffer *, size_t)
ENET_API ENetHostenet_host_create (const ENetAddress *, size_t, enet_uint32, enet_uint32)
 Creates a host for communicating to peers.
ENET_API void enet_host_destroy (ENetHost *)
 Destroys the host and all resources associated with it.
ENET_API ENetPeerenet_host_connect (ENetHost *, const ENetAddress *, size_t)
 Initiates a connection to a foreign host.
ENET_API int enet_host_service (ENetHost *, ENetEvent *, enet_uint32)
 Waits for events on the host specified and shuttles packets between the host and its peers.
ENET_API void enet_host_flush (ENetHost *)
 Sends any queued packets on the host specified to its designated peers.
ENET_API void enet_host_broadcast (ENetHost *, enet_uint8, ENetPacket *)
 Queues a packet to be sent to all peers associated with the host.
ENET_API void enet_host_bandwidth_limit (ENetHost *, enet_uint32, enet_uint32)
 Adjusts the bandwidth limits of a host.
void enet_host_bandwidth_throttle (ENetHost *)
ENET_API int enet_peer_send (ENetPeer *, enet_uint8, ENetPacket *)
 Queues a packet to be sent.
ENET_API ENetPacketenet_peer_receive (ENetPeer *, enet_uint8)
 Attempts to dequeue any incoming queued packet.
ENET_API void enet_peer_ping (ENetPeer *)
 Sends a ping request to a peer.
ENET_API void enet_peer_reset (ENetPeer *)
 Forcefully disconnects a peer.
ENET_API void enet_peer_disconnect (ENetPeer *, enet_uint32)
 Request a disconnection from a peer.
ENET_API void enet_peer_disconnect_now (ENetPeer *, enet_uint32)
 Force an immediate disconnection from a peer.
ENET_API void enet_peer_disconnect_later (ENetPeer *, enet_uint32)
 Request a disconnection from a peer, but only after all queued outgoing packets are sent.
ENET_API void enet_peer_throttle_configure (ENetPeer *, enet_uint32, enet_uint32, enet_uint32)
 Configures throttle parameter for a peer.
int enet_peer_throttle (ENetPeer *, enet_uint32)
void enet_peer_reset_queues (ENetPeer *)
ENetOutgoingCommand * enet_peer_queue_outgoing_command (ENetPeer *, const ENetProtocol *, ENetPacket *, enet_uint32, enet_uint16)
ENetIncomingCommand * enet_peer_queue_incoming_command (ENetPeer *, const ENetProtocol *, ENetPacket *, enet_uint32)
ENetAcknowledgement * enet_peer_queue_acknowledgement (ENetPeer *, const ENetProtocol *, enet_uint16)
size_t enet_protocol_command_size (enet_uint8)


Typedef Documentation

typedef struct _ENetAddress ENetAddress

The host must be specified in network byte-order, and the port must be in host byte-order. The constant ENET_HOST_ANY may be used to specify the default server host. The constant ENET_HOST_BROADCAST may be used to specify the broadcast address (255.255.255.255). This makes sense for enet_host_connect, but not for enet_host_create. Once a server responds to a broadcast, the address is updated from ENET_HOST_BROADCAST to the server's actual IP address.

typedef struct _ENetEvent ENetEvent

See also:
enet_host_service

typedef struct _ENetHost ENetHost

No fields should be modified.

See also:
enet_host_create()

enet_host_destroy()

enet_host_connect()

enet_host_service()

enet_host_flush()

enet_host_broadcast()

enet_host_bandwidth_limit()

enet_host_bandwidth_throttle()

typedef struct _ENetPacket ENetPacket

An ENet data packet that may be sent to or received from a peer. The shown fields should only be read and never modified. The data field contains the allocated data for the packet. The dataLength fields specifies the length of the allocated data. The flags field is either 0 (specifying no flags), or a bitwise-or of any combination of the following flags:

ENET_PACKET_FLAG_RELIABLE - packet must be received by the target peer and resend attempts should be made until the packet is delivered

ENET_PACKET_FLAG_UNSEQUENCED - packet will not be sequenced with other packets (not supported for reliable packets)

ENET_PACKET_FLAG_NO_ALLOCATE - packet will not allocate data, and user must supply it instead

See also:
ENetPacketFlag

typedef struct _ENetPeer ENetPeer

No fields should be modified unless otherwise specified.


Enumeration Type Documentation

anonymous enum

Enumerator:
ENET_HOST_ANY  specifies the default server host
ENET_HOST_BROADCAST  specifies a subnet-wide broadcast
ENET_PORT_ANY  specifies that a port should be automatically chosen

enum ENetEventType

Enumerator:
ENET_EVENT_TYPE_NONE  no event occurred within the specified time limit
ENET_EVENT_TYPE_CONNECT  a connection request initiated by enet_host_connect has completed.

The peer field contains the peer which successfully connected.

ENET_EVENT_TYPE_DISCONNECT  a peer has disconnected.

This event is generated on a successful completion of a disconnect initiated by enet_pper_disconnect, if a peer has timed out, or if a connection request intialized by enet_host_connect has timed out. The peer field contains the peer which disconnected. The data field contains user supplied data describing the disconnection, or 0, if none is available.

ENET_EVENT_TYPE_RECEIVE  a packet has been received from a peer.

The peer field specifies the peer which sent the packet. The channelID field specifies the channel number upon which the packet was received. The packet field contains the packet that was received; this packet must be destroyed with enet_packet_destroy after use.

enum ENetPacketFlag

The host must be specified in network byte-order, and the port must be in host byte-order. The constant ENET_HOST_ANY may be used to specify the default server host.

See also:
ENetPacket
Enumerator:
ENET_PACKET_FLAG_RELIABLE  packet must be received by the target peer and resend attempts should be made until the packet is delivered
ENET_PACKET_FLAG_UNSEQUENCED  packet will not be sequenced with other packets not supported for reliable packets
ENET_PACKET_FLAG_NO_ALLOCATE  packet will not allocate data, and user must supply it instead


Function Documentation

ENET_API enet_uint32 enet_time_get ( void   ) 

Its initial value is unspecified unless otherwise set.


Generated on Wed Jun 6 14:33:50 2007 for enet by  doxygen 1.5.1