Decode() public static méthode

public static Decode ( G2Header root ) : GenericPacket
root G2Header
Résultat GenericPacket
Exemple #1
0
        public static void Test()
        {
            // create
            var packet = new GenericPacket("name");

            packet.Data = new Dictionary <string, string>()
            {
                { "test1", "val1" },
                { "test2", "val2" }
            };

            // send
            var protocol = new G2Protocol();
            var encoded  = packet.Encode(protocol);

            // recv
            var recvPacket   = new G2Header(encoded);
            int start        = 0;
            int size         = encoded.Length;
            var streamStatus = G2Protocol.ReadNextPacket(recvPacket, ref start, ref size);

            // decode
            var check = GenericPacket.Decode(recvPacket);

            Debug.Assert(check.Data["test1"] == "val1");
            Debug.Assert(check.Data["test2"] == "val2");
        }
Exemple #2
0
        internal void IncomingPacket(XConnection connection, G2ReceivedPacket packet)
        {
            if (XRay.IsInvokeRequired())
            {
                XRay.RunInCoreAsync(() => IncomingPacket(connection, packet));
                return;
            }

            switch (packet.Root.Name)
            {
            case PacketType.Padding:
                //Log("Crypt Padding Received");
                break;

            case PacketType.Generic:

                var generic = GenericPacket.Decode(packet.Root);

                Log("Generic Packet Received: " + generic.Name);

                if (RouteGeneric.ContainsKey(generic.Name))
                {
                    RouteGeneric[generic.Name](connection, generic);
                }
                else
                {
                    Log("Unknown generic packet: " + generic.Name);
                }

                break;

            case PacketType.Dat:
                Receive_DatPacket(connection, packet);
                break;

            case PacketType.Sync:
                Receive_Sync(connection, packet);
                break;

            case PacketType.Instance:
                Receive_Instance(connection, packet);
                break;

            default:
                Log("Unknown Packet Type: " + packet.Root.Name.ToString());
                break;
            }
        }