94 lines
2.7 KiB
C#
94 lines
2.7 KiB
C#
using System;
|
|
using ENet;
|
|
|
|
namespace IgnoranceTransport
|
|
{
|
|
// Snipped from the transport files, as this will help
|
|
// me keep things up to date.
|
|
[Serializable]
|
|
public enum IgnoranceChannelTypes
|
|
{
|
|
Reliable = PacketFlags.Reliable, // TCP Emulation.
|
|
ReliableUnsequenced = PacketFlags.Reliable | PacketFlags.Unsequenced, // TCP Emulation, but no sequencing.
|
|
Unreliable = PacketFlags.Unsequenced, // Pure UDP.
|
|
UnreliableFragmented = PacketFlags.UnreliableFragmented, // Pure UDP, but fragmented.
|
|
UnreliableSequenced = PacketFlags.None, // Pure UDP, but sequenced.
|
|
Unthrottled = PacketFlags.Unthrottled, // Apparently ENet's version of Taco Bell.
|
|
}
|
|
|
|
public class IgnoranceInternals
|
|
{
|
|
public const string Version = "1.4.0b6";
|
|
public const string Scheme = "enet";
|
|
public const string BindAllIPv4 = "0.0.0.0";
|
|
public const string BindAllMacs = "::0";
|
|
}
|
|
|
|
public enum IgnoranceLogType
|
|
{
|
|
Nothing,
|
|
Standard,
|
|
Verbose
|
|
}
|
|
|
|
// Struct optimized for cache efficiency. (Thanks Vincenzo!)
|
|
public struct IgnoranceIncomingPacket
|
|
{
|
|
public byte Channel;
|
|
public uint NativePeerId;
|
|
public Packet Payload;
|
|
}
|
|
|
|
// Struct optimized for cache efficiency. (Thanks Vincenzo!)
|
|
public struct IgnoranceOutgoingPacket
|
|
{
|
|
public byte Channel;
|
|
public uint NativePeerId;
|
|
public Packet Payload;
|
|
}
|
|
|
|
// Struct optimized for cache efficiency. (Thanks Vincenzo!)
|
|
public struct IgnoranceConnectionEvent
|
|
{
|
|
public bool WasDisconnect;
|
|
public ushort Port;
|
|
public uint NativePeerId;
|
|
public string IP;
|
|
}
|
|
|
|
public struct IgnoranceCommandPacket
|
|
{
|
|
public IgnoranceCommandType Type;
|
|
public uint PeerId;
|
|
}
|
|
|
|
public struct IgnoranceClientStats
|
|
{
|
|
// Stats only - may not always be used!
|
|
public uint RTT;
|
|
public ulong BytesReceived;
|
|
public ulong BytesSent;
|
|
public ulong PacketsReceived;
|
|
public ulong PacketsSent;
|
|
public ulong PacketsLost;
|
|
}
|
|
|
|
public enum IgnoranceCommandType
|
|
{
|
|
// Client
|
|
ClientWantsToStop,
|
|
ClientRequestsStatusUpdate,
|
|
// ENet internal
|
|
ResponseToClientStatusRequest,
|
|
// Server
|
|
ServerKickPeer
|
|
}
|
|
|
|
// TODO: Optimize struct for Cache performance.
|
|
public struct PeerConnectionData
|
|
{
|
|
public ushort Port;
|
|
public uint NativePeerId;
|
|
public string IP;
|
|
}
|
|
}
|