mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 23:58:50 +00:00
vendor ENet
This commit is contained in:
Vendored
+164
@@ -0,0 +1,164 @@
|
||||
package ENet
|
||||
|
||||
PROTOCOL_MINIMUM_MTU :: 576
|
||||
PROTOCOL_MAXIMUM_MTU :: 4096
|
||||
PROTOCOL_MAXIMUM_PACKET_COMMANDS :: 32
|
||||
PROTOCOL_MINIMUM_WINDOW_SIZE :: 4096
|
||||
PROTOCOL_MAXIMUM_WINDOW_SIZE :: 65536
|
||||
PROTOCOL_MINIMUM_CHANNEL_COUNT :: 1
|
||||
PROTOCOL_MAXIMUM_CHANNEL_COUNT :: 255
|
||||
PROTOCOL_MAXIMUM_PEER_ID :: 0xFFF
|
||||
PROTOCOL_MAXIMUM_FRAGMENT_COUNT :: 1024 * 1024
|
||||
|
||||
ProtocolCommand :: enum i32 {
|
||||
NONE = 0,
|
||||
ACKNOWLEDGE = 1,
|
||||
CONNECT = 2,
|
||||
VERIFY_CONNECT = 3,
|
||||
DISCONNECT = 4,
|
||||
PING = 5,
|
||||
SEND_RELIABLE = 6,
|
||||
SEND_UNRELIABLE = 7,
|
||||
SEND_FRAGMENT = 8,
|
||||
SEND_UNSEQUENCED = 9,
|
||||
BANDWIDTH_LIMIT = 10,
|
||||
THROTTLE_CONFIGURE = 11,
|
||||
SEND_UNRELIABLE_FRAGMENT = 12,
|
||||
COUNT = 13,
|
||||
MASK = 0x0F,
|
||||
}
|
||||
|
||||
ProtocolFlag :: enum i32 {
|
||||
COMMAND_ACKNOWLEDGE = 1 << 7,
|
||||
COMMAND_UNSEQUENCED = 1 << 6,
|
||||
HEADER_COMPRESSED = 1 << 14,
|
||||
HEADER_SENT_TIME = 1 << 15,
|
||||
HEADER_MASK = HEADER_COMPRESSED | HEADER_SENT_TIME,
|
||||
HEADER_SESSION_MASK = 3 << 12,
|
||||
HEADER_SESSION_SHIFT = 12,
|
||||
}
|
||||
|
||||
ProtocolHeader :: struct #packed {
|
||||
peerID: u16,
|
||||
sentTime: u16,
|
||||
}
|
||||
|
||||
ProtocolCommandHeader :: struct #packed {
|
||||
command: u8,
|
||||
channelID: u8,
|
||||
reliableSequenceNumber: u16,
|
||||
}
|
||||
|
||||
ProtocolAcknowledge :: struct #packed {
|
||||
header: ProtocolCommandHeader,
|
||||
outgoingPeerID: u16,
|
||||
incomingSessionID: u8,
|
||||
outgoingSessionID: u8,
|
||||
mtu: u32,
|
||||
windowSize: u32,
|
||||
channelCount: u32,
|
||||
incomingBandwidth: u32,
|
||||
outgoingBandwidth: u32,
|
||||
packetThrottleInterval: u32,
|
||||
packetThrottleAcceleration: u32,
|
||||
packetThrottleDeceleration: u32,
|
||||
connectID: u32,
|
||||
data: u32,
|
||||
}
|
||||
|
||||
ProtocolConnect :: struct #packed {
|
||||
header: ProtocolCommandHeader,
|
||||
outgoingPeerID: u16,
|
||||
incomingSessionID: u8,
|
||||
outgoingSessionID: u8,
|
||||
mtu: u32,
|
||||
windowSize: u32,
|
||||
channelCount: u32,
|
||||
incomingBandwidth: u32,
|
||||
outgoingBandwidth: u32,
|
||||
packetThrottleInterval: u32,
|
||||
packetThrottleAcceleration: u32,
|
||||
packetThrottleDeceleration: u32,
|
||||
connectID: u32,
|
||||
data: u32,
|
||||
}
|
||||
|
||||
ProtocolVerifyConnect :: struct #packed {
|
||||
header: ProtocolCommandHeader,
|
||||
outgoingPeerID: u16,
|
||||
incomingSessionID: u8,
|
||||
outgoingSessionID: u8,
|
||||
mtu: u32,
|
||||
windowSize: u32,
|
||||
channelCount: u32,
|
||||
incomingBandwidth: u32,
|
||||
outgoingBandwidth: u32,
|
||||
packetThrottleInterval: u32,
|
||||
packetThrottleAcceleration: u32,
|
||||
packetThrottleDeceleration: u32,
|
||||
connectID: u32,
|
||||
}
|
||||
|
||||
ProtocolBandwidthLimit :: struct #packed {
|
||||
header: ProtocolCommandHeader,
|
||||
incomingBandwidth: u32,
|
||||
outgoingBandwidth: u32,
|
||||
}
|
||||
|
||||
ProtocolThrottleConfigure :: struct #packed {
|
||||
header: ProtocolCommandHeader,
|
||||
packetThrottleInterval: u32,
|
||||
packetThrottleAcceleration: u32,
|
||||
packetThrottleDeceleration: u32,
|
||||
}
|
||||
|
||||
ProtocolDisconnect :: struct #packed {
|
||||
header: ProtocolCommandHeader,
|
||||
data: u32,
|
||||
}
|
||||
|
||||
ProtocolPing :: struct #packed {
|
||||
header: ProtocolCommandHeader,
|
||||
}
|
||||
|
||||
ProtocolSendReliable :: struct #packed {
|
||||
header: ProtocolCommandHeader,
|
||||
dataLength: u16,
|
||||
}
|
||||
|
||||
ProtocolSendUnreliable :: struct #packed {
|
||||
header: ProtocolCommandHeader,
|
||||
unreliableSequenceNumber: u16,
|
||||
dataLength: u16,
|
||||
}
|
||||
|
||||
ProtocolSendUnsequenced :: struct #packed {
|
||||
header: ProtocolCommandHeader,
|
||||
unsequencedGroup: u16,
|
||||
dataLength: u16,
|
||||
}
|
||||
|
||||
ProtocolSendFragment :: struct #packed {
|
||||
header: ProtocolCommandHeader,
|
||||
startSequenceNumber: u16,
|
||||
dataLength: u16,
|
||||
fragmentCount: u32,
|
||||
fragmentNumber: u32,
|
||||
totalLength: u32,
|
||||
fragmentOffset: u32,
|
||||
}
|
||||
|
||||
Protocol :: struct #raw_union {
|
||||
header: ProtocolCommandHeader,
|
||||
acknowledge: ProtocolAcknowledge,
|
||||
connect: ProtocolConnect,
|
||||
verifyConnect: ProtocolVerifyConnect,
|
||||
disconnect: ProtocolDisconnect,
|
||||
ping: ProtocolPing,
|
||||
sendReliable: ProtocolSendReliable,
|
||||
sendUnreliable: ProtocolSendUnreliable,
|
||||
sendUnsequenced: ProtocolSendUnsequenced,
|
||||
sendFragment: ProtocolSendFragment,
|
||||
bandwidthLimit: ProtocolBandwidthLimit,
|
||||
throttleConfigure: ProtocolThrottleConfigure,
|
||||
}
|
||||
Reference in New Issue
Block a user