Exemplo n.º 1
0
        /// <summary>
        /// Creates and routes a packet with data from a binary stream.
        /// </summary>
        public void DeserializeAndRoutePacket(int nodeId, NodePacketType packetType, ITranslator translator)
        {
            // PERF: Not using VerifyThrow to avoid boxing of packetType in the non-error case
            if (!_packetFactories.ContainsKey(packetType))
            {
                ErrorUtilities.ThrowInternalError("No packet handler for type {0}", packetType);
            }

            PacketFactoryRecord record = _packetFactories[packetType];

            record.DeserializeAndRoutePacket(nodeId, translator);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Routes the specified packet.
        /// </summary>
        public void RoutePacket(int nodeId, INodePacket packet)
        {
            PacketFactoryRecord record = _packetFactories[packet.Type];

            record.RoutePacket(nodeId, packet);
        }
Exemplo n.º 3
0
 /// <summary>
 /// Registers a packet handler
 /// </summary>
 public void RegisterPacketHandler(NodePacketType packetType, NodePacketFactoryMethod factory, INodePacketHandler handler)
 {
     _packetFactories[packetType] = new PacketFactoryRecord(handler, factory);
 }
Exemplo n.º 4
0
 /// <summary>
 /// Registers a packet handler
 /// </summary>
 public void RegisterPacketHandler(NodePacketType packetType, NodePacketFactoryMethod factory, INodePacketHandler handler)
 {
     _packetFactories[packetType] = new PacketFactoryRecord(handler, factory);
 }