public LogPacketAttribute(int packetCode, float version, ePacketDirection direction, string packetDescription)
 {
     m_packetCode = packetCode;
     m_version = version;
     m_direction = direction;
     m_description = packetDescription.ToLower();
 }
Exemplo n.º 2
0
 public LogPacketAttribute(int packetCode, float version, ePacketDirection direction, string packetDescription)
 {
     m_packetCode  = packetCode;
     m_version     = version;
     m_direction   = direction;
     m_description = packetDescription.ToLower();
 }
Exemplo n.º 3
0
 public static string GetDescription(int code, ePacketDirection dir)
 {
     if (dir == ePacketDirection.ClientToServer)
     {
         return(m_ctosDescriptions[code].ToLower());
     }
     return(m_stocDescriptions[code].ToLower());
 }
Exemplo n.º 4
0
        public static int ParseHeader(string line, out int code, out ePacketDirection dir, out ePacketProtocol prot, out TimeSpan time)
        {
            code = Convert.ToInt32(line.Substring(38, 4), 16);

            if (string.Compare(line, 1, "SEND", 0, 4, false) == 0)
            {
                dir = ePacketDirection.ClientToServer;
            }
            else if (string.Compare(line, 1, "RECV", 0, 4, false) == 0)
            {
                dir = ePacketDirection.ServerToClient;
            }
            else
            {
                throw new Exception("unknown packet direction: " + line.Substring(1, 4));
            }

            if (string.Compare(line, 6, "TCP", 0, 3, false) == 0)
            {
                prot = ePacketProtocol.TCP;
            }
            else if (string.Compare(line, 6, "UDP", 0, 3, false) == 0)
            {
                prot = ePacketProtocol.UDP;
            }
            else
            {
                throw new Exception("unknown packet protocol: " + line.Substring(6, 3));
            }

            int hours, minutes, seconds, milliseconds;

            if (Util.ParseDecFast(line, 16, 2, out hours) &&
                Util.ParseDecFast(line, 19, 2, out minutes) &&
                Util.ParseDecFast(line, 22, 2, out seconds) &&
                Util.ParseDecFast(line, 25, 3, out milliseconds))
            {
                time = new TimeSpan(0, hours, minutes, seconds, milliseconds);
            }
            else
            {
                time = TimeSpan.Zero;
                return(-1);
            }

            int pakSize;

            if (!Util.ParseDecFast(line, 48, line.Length - 49, out pakSize))
            {
                return(-1);
            }

            return(pakSize);
        }
        public static string GetPacketDescription(float version, int code, ePacketDirection dir)
        {
            SortedList packets =
                dir == ePacketDirection.ClientToServer
                    ? m_ctosConstrsByCode[code]
                    : m_stocConstrsByCode[code];

            LogPacketData c = (LogPacketData)packets[version];
            if (c == null)
                 return null;
            return c.Attribute.Description;
        }
Exemplo n.º 6
0
 /// <summary>
 /// Copy all data from another packet and init private fields if any
 /// </summary>
 /// <param name="pak"></param>
 /// <returns>The target packet instance (this)</returns>
 public virtual Packet CopyFrom(Packet pak)
 {
     m_code      = pak.m_code;
     m_direction = pak.m_direction;
     m_time      = pak.m_time;
     m_protocol  = pak.m_protocol;
     SetLength(0);
     Position     = 0;
     pak.Position = 0;
     pak.WriteTo(this);
     return(this);
 }
Exemplo n.º 7
0
        public static string GetPacketDescription(float version, int code, ePacketDirection dir)
        {
            SortedList packets =
                dir == ePacketDirection.ClientToServer
                                        ? m_ctosConstrsByCode[code]
                                        : m_stocConstrsByCode[code];

            LogPacketData c = (LogPacketData)packets[version];

            if (c == null)
            {
                return(null);
            }
            return(c.Attribute.Description);
        }
Exemplo n.º 8
0
        private static LogPacketData GetPacketData(float version, byte code, ePacketDirection dir)
        {
            SortedList typesByVersion =
                dir == ePacketDirection.ClientToServer
                                        ? m_ctosConstrsByCode[code]
                                        : m_stocConstrsByCode[code];

            LogPacketData packetData = null;

            foreach (DictionaryEntry entry in typesByVersion)
            {
                float ver = (float)entry.Key;
                if (ver > version)
                {
                    break;
                }
                packetData = (LogPacketData)entry.Value;
            }
            return(packetData);
        }
        public static int ParseHeader(string line, out int code, out ePacketDirection dir, out ePacketProtocol prot, out TimeSpan time)
        {
            code = Convert.ToInt32(line.Substring(38, 4), 16);

            if (string.Compare(line, 1, "SEND", 0, 4, false) == 0)
                dir = ePacketDirection.ClientToServer;
            else if (string.Compare(line, 1, "RECV", 0, 4, false) == 0)
                dir = ePacketDirection.ServerToClient;
            else
                throw new Exception("unknown packet direction: "+line.Substring(1, 4));

            if (string.Compare(line, 6, "TCP", 0, 3, false) == 0)
                prot = ePacketProtocol.TCP;
            else if (string.Compare(line, 6, "UDP", 0, 3, false) == 0)
                prot = ePacketProtocol.UDP;
            else
                throw new Exception("unknown packet protocol: "+line.Substring(6, 3));

            int hours, minutes, seconds, milliseconds;
            if (Util.ParseDecFast(line, 16, 2, out hours)
                && Util.ParseDecFast(line, 19, 2, out minutes)
                && Util.ParseDecFast(line, 22, 2, out seconds)
                && Util.ParseDecFast(line, 25, 3, out milliseconds))
            {
                time = new TimeSpan(0, hours, minutes, seconds, milliseconds);
            }
            else
            {
                time = TimeSpan.Zero;
                return -1;
            }

            int pakSize;
            if (!Util.ParseDecFast(line, 48, line.Length - 49, out pakSize))
                return -1;

            return pakSize;
        }
 public static string GetDescription(int code, ePacketDirection dir)
 {
     if (dir == ePacketDirection.ClientToServer)
         return m_ctosDescriptions[code].ToLower();
     return m_stocDescriptions[code].ToLower();
 }
Exemplo n.º 11
0
 public static int GetPacketTypesCount(int code, ePacketDirection dir)
 {
     return(dir == ePacketDirection.ClientToServer
                         ? m_ctosConstrsByCode[code].Count
                         : m_stocConstrsByCode[code].Count);
 }
 public static Packet CreatePacket(float version, byte code, ePacketDirection dir)
 {
     return CreatePacket(version, code, dir, 0);
 }
 public LogPacketAttribute(int packetCode, float version, ePacketDirection direction)
     : this(packetCode, version, direction, null)
 {
 }
Exemplo n.º 14
0
        public static Packet CreatePacket(float version, byte code, ePacketDirection dir, int capacity)
        {
            LogPacketData packetData = GetPacketData(version, code, dir);

            return(CreatePacket(packetData, capacity));
        }
 public static Packet CreatePacket(float version, byte code, ePacketDirection dir, int capacity)
 {
     LogPacketData packetData = GetPacketData(version, code, dir);
     return CreatePacket(packetData, capacity);
 }
Exemplo n.º 16
0
 public static Packet CreatePacket(float version, byte code, ePacketDirection dir)
 {
     return(CreatePacket(version, code, dir, 0));
 }
 public static int GetPacketTypesCount(int code, ePacketDirection dir)
 {
     return dir == ePacketDirection.ClientToServer
         ? m_ctosConstrsByCode[code].Count
         : m_stocConstrsByCode[code].Count;
 }
        private static LogPacketData GetPacketData(float version, byte code, ePacketDirection dir)
        {
            SortedList typesByVersion =
                dir == ePacketDirection.ClientToServer
                    ? m_ctosConstrsByCode[code]
                    : m_stocConstrsByCode[code];

            LogPacketData packetData = null;
            foreach (DictionaryEntry entry in typesByVersion)
            {
                float ver = (float)entry.Key;
                if (ver > version)
                    break;
                packetData = (LogPacketData)entry.Value;
            }
            return packetData;
        }
Exemplo n.º 19
0
		/// <summary>
		/// Copy all data from another packet and init private fields if any
		/// </summary>
		/// <param name="pak"></param>
		/// <returns>The target packet instance (this)</returns>
		public virtual Packet CopyFrom(Packet pak)
		{
			m_code = pak.m_code;
			m_direction = pak.m_direction;
			m_time = pak.m_time;
			m_protocol = pak.m_protocol;
			SetLength(0);
			Position = 0;
			pak.Position = 0;
			pak.WriteTo(this);
			return this;
		}
Exemplo n.º 20
0
 public LogPacketAttribute(int packetCode, float version, ePacketDirection direction)
     : this(packetCode, version, direction, null)
 {
 }