Beispiel #1
0
        public Packet GetPacketInstance(PacketHeader header)
        {
            Packet packet;

            switch (header)
            {
            case PacketHeader.BoardPacket:
                packet = new BoardPacket();
                break;

            case PacketHeader.PlayerReady:
                packet = new PlayerReadyPacket();
                break;

            case PacketHeader.AttemptMovePacket:
                packet = new AttemptMovePacket();
                break;

            case PacketHeader.ServerToClientGameStatusUpdatePacket:
                packet = new ServerToClientGameStatusUpdatePacket();
                break;

            default:
                throw new NotImplementedException(String.Format("Unhandled PacketHeader @ StaticPacketFactory {0}", header.ToString()));
            }

            return(packet);
        }
Beispiel #2
0
        public Packet GetPacketInstance(PacketHeader header)
        {
            Packet packet = null;

            if (this.flywheel.ContainsKey(header))
            {
                packet = this.flywheel[header];
                packet.Recycle();
                return(packet);
            }
            else
            {
                switch (header)
                {
                case PacketHeader.BoardPacket:
                    packet = new BoardPacket();
                    break;

                case PacketHeader.PlayerReady:
                    packet = new PlayerReadyPacket();
                    break;

                case PacketHeader.AttemptMovePacket:
                    packet = new AttemptMovePacket();
                    break;

                case PacketHeader.ServerToClientGameStatusUpdatePacket:
                    packet = new ServerToClientGameStatusUpdatePacket();
                    break;

                default:
                    throw new NotImplementedException(String.Format("Unhandled PacketHeader @ PacketFactoryFlyWheel {0}", header.ToString()));
                }

                this.flywheel[header] = packet;
                return(packet);
            }
        }