コード例 #1
0
ファイル: BufferExtension.cs プロジェクト: orf53975/mana
        public static void WriteLongArray(this IWritableBuffer bw, long[] dat)
        {
            var len = dat == null ? 0 : dat.Length;

            bw.WriteUnsignedVarint(len);
            for (var i = 0; i < len; i++)
            {
                bw.WriteLong(dat[i]);
            }
        }
コード例 #2
0
 public void Encode(IWritableBuffer bw)
 {
     this.mask.Encode(bw);
     if (mask.CheckFlag(__FLAG_TYPE))
     {
         bw.WriteByte(_type);
     }
     if (mask.CheckFlag(__FLAG_UUID))
     {
         bw.WriteLong(_uuid);
     }
     if (mask.CheckFlag(__FLAG_UNITS))
     {
         bw.WriteArray(_units);
     }
 }
コード例 #3
0
ファイル: DDField.cs プロジェクト: orf53975/mana
        public void Encode(IWritableBuffer bw)
        {
            switch (Tmpl.token)
            {
            case DDToken.ft_bool:
                if (Tmpl.isArray)
                {
                    bw.WriteBooleanArray((bool[])arrValue);
                }
                else
                {
                    var bv = int32Value != 0 ? true : false;
                    bw.WriteBoolean(bv);
                }
                break;

            case DDToken.ft_byte:
                if (Tmpl.isArray)
                {
                    bw.WriteByteArray((byte[])arrValue);
                }
                else
                {
                    bw.WriteByte((byte)int32Value);
                }
                break;

            case DDToken.ft_int16:
                if (Tmpl.isArray)
                {
                    bw.WriteShortArray((short[])arrValue);
                }
                else
                {
                    bw.WriteShort((short)int32Value);
                }
                break;

            case DDToken.ft_int32:
                if (Tmpl.isArray)
                {
                    bw.WriteIntArray((int[])arrValue);
                }
                else
                {
                    bw.WriteInt(int32Value);
                }
                break;

            case DDToken.ft_int64:
                if (Tmpl.isArray)
                {
                    bw.WriteLongArray((long[])arrValue);
                }
                else
                {
                    bw.WriteLong(int64Value);
                }
                break;

            case DDToken.ft_intXU:
                if (Tmpl.isArray)
                {
                    bw.WriteUnsignedVarintArray((long[])arrValue);
                }
                else
                {
                    bw.WriteUnsignedVarint(int64Value);
                }
                break;

            case DDToken.ft_intX:
                if (Tmpl.isArray)
                {
                    bw.WriteVarintArray((long[])arrValue);
                }
                else
                {
                    bw.WriteVarint(int64Value);
                }
                break;

            case DDToken.ft_float:
                if (Tmpl.isArray)
                {
                    bw.WriteFloatArray((float[])arrValue);
                }
                else
                {
                    bw.WriteFloat(floatValue);
                }
                break;

            case DDToken.ft_float16:
                if (Tmpl.isArray)
                {
                    bw.WriteFloat16Array((float[])arrValue);
                }
                else
                {
                    bw.WriteFloat16(floatValue);
                }
                break;

            case DDToken.ft_str:
                if (Tmpl.isArray)
                {
                    bw.WriteUTF8Array((string[])arrValue);
                }
                else
                {
                    bw.WriteUTF8(strValue);
                }
                break;

            case DDToken.ft_object:
                if (Tmpl.isArray)
                {
                    bw.WriteNodeArray((DDNode[])arrValue, Tmpl);
                }
                else
                {
                    bw.WritNode(objValue, Tmpl);
                }
                break;
            }
        }