Exemple #1
0
        public static int ComputeSkipLengthForExtensionTag(PlainBufferExtension extension)
        {
            int size = 0;

            if (extension.HasSeq())
            {
                size += 1 + PlainBufferOutputStream.LITTLE_ENDIAN_32_SIZE; //TAG_SEQ_ING + length
                size += ComputeSkipLengthForSequenceInfo();
            }

            return(size);
        }
Exemple #2
0
        public static int ComputePlainBufferExtension(PlainBufferExtension extension)
        {
            int size = 1;                                          //TAG_EXTENSION

            size += PlainBufferOutputStream.LITTLE_ENDIAN_32_SIZE; // Length
            if (extension.HasSeq())
            {
                size += ComputePlainBufferSequenceInfo();
            }

            return(size);
        }
        public void WriteExtension(PlainBufferExtension extension)
        {
            WriteTag(PlainBufferConsts.TAG_EXTENSION);
            output.WriteRawLittleEndian32(PlainBufferBuilder.ComputeSkipLengthForExtensionTag(extension));
            int extensionCount = 0;

            if (extension.HasSeq())
            {
                WriteSequenceInfo(extension.GetSequenceInfo());
                extensionCount++;
            }

            if (extensionCount == 0)
            {
                throw new IOException("no extension tag is Writen.");
            }
        }
Exemple #4
0
 public bool HasExtension()
 {
     return(extension.HasSeq());
 }