[enet-cvs] CVS: enet/include/enet enet.h,1.2,1.3 protocol.h,1.2,1.3
ENet CVS
enet-discuss@lists.puremagic.com
Fri, 7 Jun 2002 20:36:22 -0600
- Previous message: [enet-cvs] CVS: enet host.c,1.2,1.3 peer.c,1.2,1.3 protocol.c,1.2,1.3 unix.c,1.1,1.2 win32.c,1.2,1.3
- Next message: [enet-cvs] CVS: enet/test client.c,1.1,1.2 server.c,1.1,1.2
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /home/enet/cvsroot/enet/include/enet
In directory sferik:/tmp/cvs-serv1180/include/enet
Modified Files:
enet.h protocol.h
Log Message:
Throttle changes, channels, bug fixes, etc.
Index: enet.h
===================================================================
RCS file: /home/enet/cvsroot/enet/include/enet/enet.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- enet.h 2002/02/10 22:25:00 1.2
+++ enet.h 2002/06/08 02:36:20 1.3
@@ -20,6 +20,12 @@
typedef enum
{
+ ENET_SOCKET_TYPE_STREAM = 1,
+ ENET_SOCKET_TYPE_DATAGRAM = 2
+} ENetSocketType;
+
+typedef enum
+{
ENET_SOCKET_WAIT_NONE = 0,
ENET_SOCKET_WAIT_SEND = (1 << 0),
ENET_SOCKET_WAIT_RECEIVE = (1 << 1)
@@ -49,6 +55,13 @@
size_t dataLength;
} ENetPacket;
+typedef struct _ENetAcknowledgement
+{
+ ENetListNode acknowledgementList;
+ uint32 sentTime;
+ ENetProtocol command;
+} ENetAcknowledgement;
+
typedef struct _ENetOutgoingCommand
{
ENetListNode outgoingCommandList;
@@ -68,8 +81,6 @@
ENetListNode incomingCommandList;
uint32 reliableSequenceNumber;
uint32 unreliableSequenceNumber;
- uint32 sentTime;
- int acknowledged;
ENetProtocol command;
uint32 fragmentCount;
uint32 fragmentsRemaining;
@@ -79,35 +90,60 @@
typedef enum
{
- ENET_PEER_STATE_DISCONNECTED = 0,
- ENET_PEER_STATE_CONNECTING = 1,
- ENET_PEER_STATE_CONNECTED = 2,
- ENET_PEER_STATE_DISCONNECTING = 3
+ ENET_PEER_STATE_DISCONNECTED = 0,
+ ENET_PEER_STATE_CONNECTING = 1,
+ ENET_PEER_STATE_CONNECTED = 2,
+ ENET_PEER_STATE_DISCONNECTING = 3,
+ ENET_PEER_STATE_ACKNOWLEDGING_DISCONNECTION = 4,
+ ENET_PEER_STATE_ZOMBIE = 5
} ENetPeerState;
enum
{
ENET_HOST_RECEIVE_BUFFER_SIZE = 256 * 1024,
+ ENET_HOST_BANDWIDTH_THROTTLE_EPOCH = 1000,
ENET_PEER_DEFAULT_ROUND_TRIP_TIME = 500,
- ENET_PEER_DEFAULT_PACKET_THROTTLE = 0,
- ENET_PEER_PACKET_THROTTLE_SCALE = 16,
- ENET_PEER_PACKET_THROTTLE_DECELERATION = 1,
- ENET_PEER_PACKET_THROTTLE_ACCELERATION = 1,
+ ENET_PEER_DEFAULT_PACKET_THROTTLE = 32,
+ ENET_PEER_PACKET_THROTTLE_SCALE = 32,
+ ENET_PEER_PACKET_THROTTLE_COUNTER = 7,
+ ENET_PEER_PACKET_THROTTLE_ACCELERATION = 7,
+ ENET_PEER_PACKET_THROTTLE_DECELERATION = 2,
+ ENET_PEER_PACKET_THROTTLE_EPOCH = 30000,
ENET_PEER_PACKET_LOSS_SCALE = (1 << 16),
- ENET_PEER_PACKET_LOSS_EPOCH = 1000,
+ ENET_PEER_PACKET_LOSS_EPOCH = 30000,
+ ENET_PEER_WINDOW_SIZE_SCALE = 64 * 1024,
ENET_PEER_TIMEOUT_LIMIT = 64,
- ENET_PEER_PING_INTERVAL = 5000
+ ENET_PEER_PING_INTERVAL = 500
};
+typedef struct _ENetChannel
+{
+ uint32 outgoingReliableSequenceNumber;
+ uint32 outgoingUnreliableSequenceNumber;
+ uint32 incomingReliableSequenceNumber;
+ uint32 incomingUnreliableSequenceNumber;
+ ENetList incomingReliableCommands;
+ ENetList incomingUnreliableCommands;
+} ENetChannel;
+
typedef struct _ENetPeer
{
+ struct _ENetHost * host;
uint16 outgoingPeerID;
uint16 incomingPeerID;
uint32 challenge;
ENetAddress address;
void * data;
ENetPeerState state;
+ ENetChannel * channels;
+ size_t channelCount;
+ uint32 incomingBandwidth;
+ uint32 outgoingBandwidth;
+ uint32 incomingBandwidthThrottleEpoch;
+ uint32 outgoingBandwidthThrottleEpoch;
+ uint32 incomingDataTotal;
+ uint32 outgoingDataTotal;
uint32 lastSendTime;
uint32 lastReceiveTime;
uint32 nextTimeout;
@@ -117,27 +153,31 @@
uint32 packetLoss;
uint32 packetLossVariance;
uint32 packetThrottle;
+ uint32 packetThrottleLimit;
+ uint32 packetThrottleCounter;
+ uint32 packetThrottleEpoch;
+ uint32 bestRoundTripTime;
uint32 roundTripTime;
uint32 roundTripTimeVariance;
uint16 packetSize;
uint32 windowSize;
uint32 reliableDataInTransit;
- uint32 sentUnreliableSequenceNumber;
uint32 outgoingReliableSequenceNumber;
- uint32 outgoingUnreliableSequenceNumber;
- uint32 incomingReliableSequenceNumber;
- uint32 incomingUnreliableSequenceNumber;
+ ENetList acknowledgements;
ENetList sentReliableCommands;
+ ENetList sentUnreliableCommands;
ENetList outgoingReliableCommands;
ENetList outgoingUnreliableCommands;
- ENetList incomingReliableCommands;
- ENetList incomingUnreliableCommands;
} ENetPeer;
typedef struct _ENetHost
{
ENetSocket socket;
ENetAddress address;
+ uint32 incomingBandwidth;
+ uint32 outgoingBandwidth;
+ uint32 bandwidthThrottleEpoch;
+ int recalculateBandwidthLimits;
ENetPeer * peers;
size_t peerCount;
ENetPeer * lastServicedPeer;
@@ -163,6 +203,7 @@
{
ENetEventType type;
ENetPeer * peer;
+ uint8 channelID;
ENetPacket * packet;
} ENetEvent;
@@ -172,7 +213,9 @@
extern uint32 enet_time_get (void);
extern void enet_time_set (uint32);
-extern ENetSocket enet_socket_create (const ENetAddress *);
+extern ENetSocket enet_socket_create (ENetSocketType, const ENetAddress *);
+extern ENetSocket enet_socket_accept (ENetSocket, ENetAddress *);
+extern int enet_socket_connect (ENetSocket, const ENetAddress *);
extern int enet_socket_send (ENetSocket, const ENetAddress *, const ENetBuffer *, size_t);
extern int enet_socket_receive (ENetSocket, ENetAddress *, ENetBuffer *, size_t);
extern int enet_socket_wait (ENetSocket, uint32 *, uint32);
@@ -185,18 +228,24 @@
extern void enet_packet_destroy (ENetPacket *);
extern int enet_packet_resize (ENetPacket *, size_t);
-extern ENetHost * enet_host_create (const ENetAddress *, size_t);
+extern ENetHost * enet_host_create (const ENetAddress *, size_t, uint32, uint32);
extern void enet_host_destroy (ENetHost *);
-extern ENetPeer * enet_host_connect (ENetHost *, const ENetAddress *);
+extern ENetPeer * enet_host_connect (ENetHost *, const ENetAddress *, size_t);
extern int enet_host_service (ENetHost *, ENetEvent *, uint32);
extern void enet_host_flush (ENetHost *);
-extern void enet_host_broadcast (ENetHost *, ENetPacket *);
+extern void enet_host_broadcast (ENetHost *, uint8, ENetPacket *);
+extern void enet_host_bandwidth_limit (ENetHost *, uint32, uint32);
+extern void enet_host_bandwidth_throttle (ENetHost *);
-extern int enet_peer_send (ENetPeer *, ENetPacket *);
-extern ENetPacket * enet_peer_receive (ENetPeer *);
+extern int enet_peer_send (ENetPeer *, uint8, ENetPacket *);
+extern ENetPacket * enet_peer_receive (ENetPeer *, uint8);
extern void enet_peer_ping (ENetPeer *);
extern void enet_peer_reset (ENetPeer *);
extern void enet_peer_disconnect (ENetPeer *);
+extern int enet_peer_throttle (ENetPeer *, uint32, uint32, uint32);
+extern ENetOutgoingCommand * enet_peer_queue_outgoing_command (ENetPeer *, const ENetProtocol *, ENetPacket *, uint32, uint16);
+extern ENetIncomingCommand * enet_peer_queue_incoming_command (ENetPeer *, const ENetProtocol *, ENetPacket *, uint32);
+extern ENetAcknowledgement * enet_peer_queue_acknowledgement (ENetPeer *, const ENetProtocol *, uint32);
#ifdef __cplusplus
}
Index: protocol.h
===================================================================
RCS file: /home/enet/cvsroot/enet/include/enet/protocol.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- protocol.h 2002/02/10 22:25:00 1.2
+++ protocol.h 2002/06/08 02:36:20 1.3
@@ -9,7 +9,9 @@
ENET_PROTOCOL_MAXIMUM_PACKET_SIZE = 4096,
ENET_PROTOCOL_MAXIMUM_PACKET_COMMANDS = 32,
ENET_PROTOCOL_MINIMUM_WINDOW_SIZE = 4096,
- ENET_PROTOCOL_MAXIMUM_WINDOW_SIZE = 32768
+ ENET_PROTOCOL_MAXIMUM_WINDOW_SIZE = 32768,
+ ENET_PROTOCOL_MINIMUM_CHANNEL_COUNT = 1,
+ ENET_PROTOCOL_MAXIMUM_CHANNEL_COUNT = 255
};
typedef enum
@@ -22,7 +24,8 @@
ENET_PROTOCOL_COMMAND_PING = 5,
ENET_PROTOCOL_COMMAND_SEND_RELIABLE = 6,
ENET_PROTOCOL_COMMAND_SEND_UNRELIABLE = 7,
- ENET_PROTOCOL_COMMAND_SEND_FRAGMENT = 8
+ ENET_PROTOCOL_COMMAND_SEND_FRAGMENT = 8,
+ ENET_PROTOCOL_COMMAND_BANDWIDTH_LIMIT = 9
} ENetProtocolCommand;
typedef enum
@@ -42,8 +45,10 @@
typedef struct
{
uint8 command;
+ uint8 channelID;
uint8 flags;
- uint16 commandLength;
+ uint8 reserved;
+ uint32 commandLength;
uint32 reliableSequenceNumber;
} ENetProtocolCommandHeader;
@@ -60,6 +65,9 @@
uint16 outgoingPeerID;
uint16 packetSize;
uint32 windowSize;
+ uint32 channelCount;
+ uint32 incomingBandwidth;
+ uint32 outgoingBandwidth;
} ENetProtocolConnect;
typedef struct
@@ -68,11 +76,21 @@
uint16 outgoingPeerID;
uint16 packetSize;
uint32 windowSize;
+ uint32 channelCount;
+ uint32 incomingBandwidth;
+ uint32 outgoingBandwidth;
} ENetProtocolVerifyConnect;
typedef struct
{
ENetProtocolCommandHeader header;
+ uint32 incomingBandwidth;
+ uint32 outgoingBandwidth;
+} ENetProtocolBandwidthLimit;
+
+typedef struct
+{
+ ENetProtocolCommandHeader header;
} ENetProtocolDisconnect;
typedef struct
@@ -112,6 +130,7 @@
ENetProtocolSendReliable sendReliable;
ENetProtocolSendUnreliable sendUnreliable;
ENetProtocolSendFragment sendFragment;
+ ENetProtocolBandwidthLimit bandwidthLimit;
} ENetProtocol;
#endif /* __ENET_PROTOCOL_H__ */
- Previous message: [enet-cvs] CVS: enet host.c,1.2,1.3 peer.c,1.2,1.3 protocol.c,1.2,1.3 unix.c,1.1,1.2 win32.c,1.2,1.3
- Next message: [enet-cvs] CVS: enet/test client.c,1.1,1.2 server.c,1.1,1.2
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]