Current section
Files
Jump to
Current section
Files
src/enet_protocol.hrl
%%%
%%% Command labels
%%%
-define(COMMAND_ACKNOWLEDGE, 1).
-define(COMMAND_CONNECT, 2).
-define(COMMAND_VERIFY_CONNECT, 3).
-define(COMMAND_DISCONNECT, 4).
-define(COMMAND_PING, 5).
-define(COMMAND_SEND_RELIABLE, 6).
-define(COMMAND_SEND_UNRELIABLE, 7).
-define(COMMAND_SEND_FRAGMENT, 8).
-define(COMMAND_SEND_UNSEQUENCED, 9).
-define(COMMAND_BANDWIDTH_LIMIT, 10).
-define(COMMAND_THROTTLE_CONFIGURE, 11).
-define(COMMAND_SEND_UNRELIABLE_FRAGMENT, 12).
%%
%% Protocol Header
%%
-define(PROTOCOL_HEADER(SentTimeIncluded, Compressed, SessionID, PeerID,
Rest),
<<
(SentTimeIncluded) :1,
(Compressed) :1,
(SessionID) :2,
(PeerID) :12,
(Rest) /binary
>>
).
%%
%% Command Header
%%
-define(COMMAND_HEADER(Ack, IsUnsequenced, CommandType, ChannelID,
ReliableSequenceNumber, Command),
<<
(Ack) :1,
(IsUnsequenced) :1,
(CommandType) :6,
(ChannelID) :8,
(ReliableSequenceNumber) :16,
(Command) /binary
>>
).
%%
%% Acknowledge Command
%%
-define(ACKNOWLEDGE(ReceivedReliableSequenceNumber, ReceivedSentTime, Rest),
<<
(ReceivedReliableSequenceNumber) :16,
(ReceivedSentTime) :16,
(Rest) /binary
>>
).
%%
%% Connect Command
%%
-define(CONNECT(OutgoingPeerID, IncomingSessionID, OutgoingSessionID, MTU,
WindowSize, ChannelCount, IncomingBandwidth, OutgoingBandwidth,
PacketThrottleInterval, PacketThrottleAcceleration,
PacketThrottleDeceleration, ConnectID, Data, Rest),
<<
(OutgoingPeerID) :16,
(IncomingSessionID) :8,
(OutgoingSessionID) :8,
(MTU) :32,
(WindowSize) :32,
(ChannelCount) :32,
(IncomingBandwidth) :32,
(OutgoingBandwidth) :32,
(PacketThrottleInterval) :32,
(PacketThrottleAcceleration) :32,
(PacketThrottleDeceleration) :32,
(ConnectID) :32,
(Data) :32,
(Rest) /binary
>>
).
%%
%% Verify Connect Command
%%
-define(VERIFY_CONNECT(OutgoingPeerID, IncomingSessionID, OutgoingSessionID,
MTU, WindowSize, ChannelCount, IncomingBandwidth,
OutgoingBandwidth, PacketThrottleInterval,
PacketThrottleAcceleration, PacketThrottleDeceleration,
ConnectID, Rest),
<<
(OutgoingPeerID) :16,
(IncomingSessionID) :8,
(OutgoingSessionID) :8,
(MTU) :32,
(WindowSize) :32,
(ChannelCount) :32,
(IncomingBandwidth) :32,
(OutgoingBandwidth) :32,
(PacketThrottleInterval) :32,
(PacketThrottleAcceleration) :32,
(PacketThrottleDeceleration) :32,
(ConnectID) :32,
(Rest) /binary
>>
).
%%
%% Disconnect Command
%%
-define(DISCONNECT(Data, Rest),
<<
(Data) :32,
(Rest) /binary
>>
).
%%
%% Ping Command
%%
-define(PING(Rest),
<<
(Rest) /binary
>>
).
%%
%% Send Reliable Command
%%
-define(SEND_RELIABLE(DataLength, Data),
<<
(DataLength) :16,
(Data) /binary
>>
).
%%
%% Send Unreliable Command
%%
-define(SEND_UNRELIABLE(UnreliableSequenceNumber, DataLength, Data),
<<
(UnreliableSequenceNumber) :16,
(DataLength) :16,
(Data) /binary
>>
).
%%
%% Send Unsequenced Command
%%
-define(SEND_UNSEQUENCED(UnsequencedGroup, DataLength, Data),
<<
(UnsequencedGroup) :16,
(DataLength) :16,
(Data) /binary
>>
).
%%
%% Send Fragment Command
%%
-define(SEND_FRAGMENT(StartSequenceNumber, DataLength, FragmentCount,
FragmentNumber, TotalLength, FragmentOffset, Data),
<<
(StartSequenceNumber) :16,
(DataLength) :16,
(FragmentCount) :32,
(FragmentNumber) :32,
(TotalLength) :32,
(FragmentOffset) :32,
(Data) /binary
>>
).
%%
%% Bandwidth Limit Command
%%
-define(BANDWIDTH_LIMIT(IncomingBandwidth, OutgoingBandwidth, Rest),
<<
(IncomingBandwidth) :32,
(OutgoingBandwidth) :32,
(Rest) /binary
>>
).
%%
%% Throttle Configure Command
%%
-define(THROTTLE_CONFIGURE(PacketThrottleInterval, PacketThrottleAcceleration,
PacketThrottleDeceleration, Rest),
<<
(PacketThrottleInterval) :32,
(PacketThrottleAcceleration) :32,
(PacketThrottleDeceleration) :32,
(Rest) /binary
>>
).