示例#1
0
 public void Serialize(ref Span <byte> buffer)
 {
     SessionId.Serialize(ref buffer);
     BinSerialize.WritePackedUnsignedInteger(ref buffer, FieldId);
     BinSerialize.WritePackedUnsignedInteger(ref buffer, StartIndex);
     BinSerialize.WritePackedUnsignedInteger(ref buffer, Take);
 }
示例#2
0
 public static void WriteHeader(ref Span <byte> span, ushort methodInterfaceId, ushort methodMethodId,
                                byte requestId)
 {
     BinSerialize.WriteByte(ref span, requestId);
     BinSerialize.WritePackedUnsignedInteger(ref span, methodInterfaceId);
     BinSerialize.WritePackedUnsignedInteger(ref span, methodMethodId);
 }
示例#3
0
        public void Serialize(ref Span <byte> buffer)
        {
            BinSerialize.WritePackedUnsignedInteger(ref buffer, Index);
            BinSerialize.WritePackedUnsignedInteger(ref buffer, (uint)Type.TypeEnum);
            var typeSize  = Type.GetByteSize();
            var valueSize = int.MaxValue; // if value == null, we wouldn't serialize it

            if (Value != null)
            {
                valueSize = Value.GetByteSize();
            }
            if (Value == null || typeSize + valueSize + 1 > PayloadV2Helper.MaxMessageSize)
            {
                // send only type
                BinSerialize.WriteBool(ref buffer, false);
                Type.Serialize(ref buffer);
            }
            else
            {
                // send type + value
                BinSerialize.WriteBool(ref buffer, true);
                Type.Serialize(ref buffer);
                Value.Serialize(ref buffer);
            }
        }
示例#4
0
 public void Serialize(ref Span <byte> buffer)
 {
     BinSerialize.WritePackedUnsignedInteger(ref buffer, (uint)Items.Count);
     foreach (var item in Items)
     {
         Debug.Assert(item != null, nameof(item) + " != null");
         item.Serialize(ref buffer);
     }
 }
示例#5
0
 public override void Serialize(ref Span <byte> buffer)
 {
     base.Serialize(ref buffer);
     BinSerialize.WritePackedUnsignedInteger(ref buffer, (uint)_list.Count);
     foreach (var t in Items)
     {
         BinSerialize.WriteString(ref buffer, t);
     }
 }
示例#6
0
 public void Serialize(ref Span <byte> buffer)
 {
     SessionId.Serialize(ref buffer);
     BinSerialize.WritePackedUnsignedInteger(ref buffer, Counter);
     BinSerialize.WriteByte(ref buffer, (byte)Flags);
     BinSerialize.WriteByte(ref buffer, (byte)Groups.Count);
     foreach (var group in Groups)
     {
         BinSerialize.WriteUShort(ref buffer, group);
     }
 }
示例#7
0
 public void Serialize(ref Span <byte> buffer)
 {
     if (Trigger == null)
     {
         throw new NullReferenceException($"{nameof(Pv2MissionItem)}.{nameof(Trigger)} == null");
     }
     if (Action == null)
     {
         throw new NullReferenceException($"{nameof(Pv2MissionItem)}.{nameof(Action)} == null");
     }
     BinSerialize.WritePackedUnsignedInteger(ref buffer, Index);
     BinSerialize.WritePackedUnsignedInteger(ref buffer, (uint)Trigger.Type);
     BinSerialize.WritePackedUnsignedInteger(ref buffer, (uint)Action.Type);
     Trigger.Serialize(ref buffer);
     Action.Serialize(ref buffer);
 }
示例#8
0
 public void Serialize(ref Span <byte> buffer)
 {
     BinSerialize.WritePackedUnsignedInteger(ref buffer, (uint)FieldType);
     Desc.Serialize(ref buffer);
 }
示例#9
0
 public void Serialize(ref Span <byte> buffer)
 {
     BinSerialize.WritePackedUnsignedInteger(ref buffer, FieldsCount);
     BinSerialize.WritePackedUnsignedInteger(ref buffer, RecordsCount);
     BinSerialize.WriteUInt(ref buffer, DescriptionHash);
 }
示例#10
0
 public override void Serialize(ref Span <byte> buffer)
 {
     base.Serialize(ref buffer);
     BinSerialize.WritePackedUnsignedInteger(ref buffer, (uint)Icon);
 }
示例#11
0
 public void Serialize(ref Span <byte> buffer)
 {
     BinSerialize.WritePackedUnsignedInteger(ref buffer, Count);
     BinSerialize.WritePackedUnsignedInteger(ref buffer, (uint)Data.Length);
     BinSerialize.WriteBlock(ref buffer, new ReadOnlySpan <byte>(Data));
 }
示例#12
0
 public void Serialize(ref Span <byte> buffer)
 {
     BinSerialize.WritePackedUnsignedInteger(ref buffer, SessionCount);
 }
示例#13
0
 public virtual void Serialize(ref Span <byte> buffer)
 {
     BinSerialize.WritePackedUnsignedInteger(ref buffer, Index);
 }
示例#14
0
 public void Serialize(ref Span <byte> buffer)
 {
     Debug.Assert(Value != null, nameof(Value) + " != null");
     BinSerialize.WritePackedUnsignedInteger(ref buffer, (uint)Value.Type);
     Value.Serialize(ref buffer);
 }
示例#15
0
 protected override void SerializeValue(ref Span <byte> buffer, uint value)
 {
     BinSerialize.WritePackedUnsignedInteger(ref buffer, value);
 }
示例#16
0
 public void Serialize(ref Span <byte> buffer)
 {
     BinSerialize.WritePackedUnsignedInteger(ref buffer, Uint1);
     BinSerialize.WriteDouble(ref buffer, Double1);
     BinSerialize.WriteString(ref buffer, String);
 }