public PacketHandler(int id, string name, int length, PacketReceiveHandler handler) { this.id = id; this.name = name; this.length = length; this.handler = handler; }
public PacketHandler(int id, string name, int length, PacketReceiveHandler handler) { m_ID = id; m_Name = name; m_Length = length; m_Handler = handler; }
public void UnregisterExtended <T>(int id, int subId, PacketReceiveHandler <T> onRecieve) { for (var i = 0; i < _extendedHandlers[id].Length; i++) { for (var j = 0; j < _extendedHandlers[id][i].Count; j++) { var handler = _extendedHandlers[id][i][j] as PacketHandler <T>; if (handler != null) { var receiveHandler = handler.GetHandler(); if (receiveHandler != null && receiveHandler.Method.Equals(onRecieve.Method)) { _extendedHandlers[id][i].RemoveAt(j); break; } } else { Tracer.Critical("Unable to unregister this onReceive method."); } } } }
public void Register <T>(int id, string name, int length, PacketReceiveHandler <T> onReceive) where T : IRecvPacket { var type = typeof(T); var ctors = type.GetConstructors(); var valid = false; for (var i = 0; i < ctors.Length && !valid; i++) { var parameters = ctors[i].GetParameters(); valid = (parameters.Length == 1 && parameters[0].ParameterType == typeof(PacketReader)); } if (!valid) { throw new NetworkException(string.Format("Unable to register packet type {0} without a public constructor with a {1} parameter", type, typeof(PacketReader))); } if (id > byte.MaxValue) { throw new NetworkException(string.Format("Unable to register packet id {0:X2} because it is greater than byte.MaxValue", id)); } var handler = new PacketHandler <T>(id, name, length, onReceive); _handlers[id].Add(handler); }
public void Unregister <T>(int id, PacketReceiveHandler <T> onRecieve) { for (var i = 0; i < _handlers[id].Count; i++) { var handler = _handlers[id][i] as PacketHandler <T>; if (handler != null) { var receiveHandler = handler.GetHandler(); if (receiveHandler != null && receiveHandler.Method.Equals(onRecieve.Method)) { _handlers[id].RemoveAt(i); break; } } else { Tracer.Critical("Unable to unregister this onReceive method."); } } }
public void AddHandler(PacketType packetType, PacketReceiveHandler handler) { packetHandlers.Add(packetType, handler); }
public void RegisterExtended <T>(int extendedId, int subId, string name, int length, PacketReceiveHandler <T> onReceive) where T : IRecvPacket { var type = typeof(T); var ctors = type.GetConstructors(); var valid = false; for (var i = 0; i < ctors.Length && !valid; i++) { var parameters = ctors[i].GetParameters(); valid = (parameters.Length == 1 && parameters[0].ParameterType == typeof(PacketReader)); } if (!valid) { throw new NetworkException(string.Format("Unable to register packet type {0} without a public constructor with a {1} parameter", type, typeof(PacketReader))); } if (extendedId > byte.MaxValue) { throw new NetworkException(string.Format("Unable to register packet extendedId {0:X2} because it is greater than byte.MaxValue", extendedId)); } if (subId > byte.MaxValue) { throw new NetworkException(string.Format("Unable to register packet subId {0:X2} because it is greater than byte.MaxValue", subId)); } if (_extendedHandlers[extendedId] == null) { _extendedHandlers[extendedId] = new List <PacketHandler> [0x100]; for (var i = 0; i < _extendedHandlers[extendedId].Length; i++) { _extendedHandlers[extendedId][i] = new List <PacketHandler>(); } } Tracer.Debug("Registering Extended Command: Id: 0x{0:X2} SubCommand: 0x{1:X2} Name: {2} Length: {3}", extendedId, subId, name, length); var handler = new PacketHandler <T>(subId, name, length, onReceive); _extendedHandlers[extendedId][subId].Add(handler); }