コード例 #1
0
ファイル: St.cs プロジェクト: Ibasa/Ripple
        void WriteFieldId(StTypeCode typeCode, uint fieldCode)
        {
            var iTypeCode = (uint)typeCode;

            if (iTypeCode < 16 && fieldCode < 16)
            {
                var span = bufferWriter.GetSpan(1);
                span[0] = (byte)(iTypeCode << 4 | fieldCode);
                bufferWriter.Advance(1);
            }
            else if (iTypeCode < 16 && fieldCode >= 16)
            {
                var span = bufferWriter.GetSpan(2);
                span[0] = (byte)(iTypeCode << 4);
                span[1] = (byte)fieldCode;
                bufferWriter.Advance(2);
            }
            else if (iTypeCode >= 16 && fieldCode < 16)
            {
                var span = bufferWriter.GetSpan(2);
                span[0] = (byte)fieldCode;
                span[1] = (byte)typeCode;
                bufferWriter.Advance(2);
            }
            else // typeCode >= 16 && fieldCode >= 16
            {
                var span = bufferWriter.GetSpan(3);
                span[0] = 0;
                span[1] = (byte)typeCode;
                span[2] = (byte)fieldCode;
                bufferWriter.Advance(3);
            }
        }
コード例 #2
0
ファイル: St.cs プロジェクト: Ibasa/Ripple
 public StFieldId(StTypeCode typeCode, uint fieldCode)
 {
     TypeCode  = typeCode;
     FieldCode = fieldCode;
 }