/// <summary> /// Constructor, initializes required objects and subscribes to events of the server. /// </summary> public CinaRATServer() : base() { base.Serializer = new Serializer(PacketRegistery.GetPacketTypes()); base.ClientState += OnClientState; base.ClientRead += OnClientRead; }
public void AreAllPacketsRegistered() { var asm = Assembly.Load("Quasar"); var expectedPacketTypes = asm.GetTypes().Where(t => t.GetInterfaces().Contains(typeof(IPacket)) && t.GetCustomAttributes(typeof(SerializableAttribute), false).Any()).ToArray(); var registeredPackets = PacketRegistery.GetPacketTypes(); CollectionAssert.AreEquivalent(expectedPacketTypes, registeredPackets); }
private void ConnectionHandeler_packetArrival(ServerIncomingPacket packet) { PacketRegistery <ServerOpCode, ServerIncomingPacket> .handlePacket handeler = packetRegister.getHandeler(packet.Opcode); if (handeler != null) { handeler.Invoke(packet); } }
public QuasarClient(HostsManager hostsManager) : base() { this._hosts = hostsManager; base.Serializer = new Serializer(PacketRegistery.GetPacketTypes()); base.ClientState += OnClientState; base.ClientRead += OnClientRead; base.ClientFail += OnClientFail; }
public ConnectionHandeler(ConnectionManager.ConnectionInformation connection) { this.connection = connection; this.packetRegister = new PacketRegistery <ServerOpCode, ServerIncomingPacket>(); packetRegister.registerPacket(ServerOpCode.Core_client_sends_version, ServerReceivedVersion); connection.sendData(new SharedPacketLib.DataPackets.ServerOutgoingPacket(ClientOpCode.Core_send_version)); this.connection.connectionChanged += connection_connectionChanged; (this.connection.parser as GamePacketParser).packetArrival += ConnectionHandeler_packetArrival; }
public ConnectionHandeler(ConnectionManager.ConnectionInformation connection) { this.connection = connection; this.packetRegister = new PacketRegistery<ServerOpCode, ServerIncomingPacket>(); packetRegister.registerPacket(ServerOpCode.Core_client_sends_version, ServerReceivedVersion); connection.sendData(new SharedPacketLib.DataPackets.ServerOutgoingPacket(ClientOpCode.Core_send_version)); this.connection.connectionChanged += connection_connectionChanged; (this.connection.parser as GamePacketParser).packetArrival += ConnectionHandeler_packetArrival; }
/// <summary> /// registers a packet /// </summary> /// <param name="opCode">Server opcode</param> /// <param name="handeler">Handeler</param> public void registerPacket(ClientOpCode opCode, PacketRegistery<ClientOpCode, ClientIncomingPacket>.handlePacket handeler, bool handleImmidiate = false) { if (handleImmidiate) { immidiateHandeler.registerPacket(opCode, handeler); } else { this.queueHandeler.registerPacket(opCode, handeler); } }
/// <summary> /// Adds or replaces a packet handeler /// </summary> /// <param name="code">The Client code</param> /// <param name="packetFunction">The packet function which can handle a packet</param> public void registerPacket(ClientOpCode code, PacketRegistery<ClientOpCode, ClientIncomingPacket>.handlePacket packetFunction, bool handleImmidiate = false) { this.processor.registerPacket(code, packetFunction, handleImmidiate); }
/// <summary> /// Creates a new packet processor /// </summary> public PacketProcessor() { this.immidiateHandeler = new PacketRegistery<ClientOpCode, ClientIncomingPacket>(); this.queueHandeler = new PacketRegistery<ClientOpCode, ClientIncomingPacket>(); packetQueue = new Queue(); }