示例#1
0
文件: PacketData.cs 项目: j0nat/JCIW
        /// <summary>
        /// Creates a <see cref="PacketData"/>.
        /// </summary>
        /// <param name="definition">The <see cref="PacketDefinition"/>.</param>
        /// <param name="packet">The <see cref="Custom"/> packet.</param>
        public PacketData(PacketDefinition definition, Custom packet)
        {
            this.Definition = definition;
            this.items      = new Dictionary <string, object>();

            Load(packet);
        }
示例#2
0
 /// <summary>
 /// Remove <see cref="PacketDefinition"/> to definitions.
 /// </summary>
 /// <param name="definition">The <see cref="PacketDefinition"/>.</param>
 public void UnRegister(PacketDefinition definition)
 {
     lock (definition)
     {
         if (definitions.ContainsKey(definition.Name))
         {
             definitions.Remove(definition.Name);
         }
     }
 }
示例#3
0
        /// <summary>
        /// Receive packet and raise event.
        /// </summary>
        /// <param name="guid">The <see cref="Guid"/>.</param>
        /// <param name="packet">The <see cref="Custom"/> packet data.</param>
        public void Receive(Guid guid, Custom packet)
        {
            if (definitions.ContainsKey(packet.name))
            {
                PacketDefinition definition = definitions[packet.name];

                PacketData data = new PacketData(definition, packet);

                definition.RaiseEvent(guid, data);
            }
        }
示例#4
0
        /// <summary>
        /// Add <see cref="PacketDefinition"/> to definitions.
        /// </summary>
        /// <param name="definition">The <see cref="PacketDefinition"/>.</param>
        public void Register(PacketDefinition definition)
        {
            lock (definition)
            {
                if (definitions.ContainsKey(definition.Name))
                {
                    throw new Exception("Packet definition name already exists.");
                }

                definitions.Add(definition.Name, definition);
            }
        }
示例#5
0
文件: PacketData.cs 项目: j0nat/JCIW
 /// <summary>
 /// Creates a <see cref="PacketData"/>.
 /// </summary>
 /// <param name="definition">The <see cref="PacketDefinition"/>.</param>
 public PacketData(PacketDefinition definition)
 {
     this.Definition = definition;
     this.items      = new Dictionary <string, object>();
 }