示例#1
0
        static IInBitStream SetupIn(OctetWriter writer)
        {
            var octetReader = new OctetReader(writer.Octets);
            var bitStream   = new InBitStream(null, octetReader, writer.Octets.Length * 8);

            return(bitStream);
        }
示例#2
0
        void InternalPacket(HastyPacket packet)
        {
            log.Debug("Received internal packet: {0}", packet);
            var octetReader = new OctetReader(packet.Octets, log);

            octetReader.ReadUint8();
            var streamReader = new StreamReader(octetReader, log);

            switch (packet.Command)
            {
            case Commands.ConnectResult:
                ConnectResult(streamReader);
                break;

            case Commands.LoginResult:
                LoginResult(streamReader);
                break;

            case Commands.StreamData:
                StreamData(streamReader);
                break;

            case Commands.Ping:
                Ping(streamReader);
                break;

            case Commands.Pong:
                Pong(streamReader);
                break;

            default:
                throw new Exception(string.Format("Unknown internal command {0}", packet.Command));
            }
        }
示例#3
0
        static IInBitStream Setup(byte[] octets)
        {
            var octetReader = new OctetReader(octets);
            var bitStream   = new InBitStream(null, octetReader, octets.Length * 8);

            return(bitStream);
        }
        private void ProcessPacket(HastyPacket packet)
        {
            var commandTarget = targetCreator.FindCommandTarget(packet.Command, 1);

            if (commandTarget == null)
            {
                var e = new Exception(string.Format("Couldn't find command {0}", packet.Command));
                log.Exception(e);
                throw e;
            }
            var octetReader = new OctetReader(packet.Octets, log);

            octetReader.ReadUint8();
            var stream = new StreamReader(octetReader, log);

            commandTarget.Execute(stream);
        }