Lawo.EmberPlusSharp.Ember.EmberReader.ReadLength C# (CSharp) Méthode

ReadLength() private static méthode

See "X.690"X.690, chapter 8.1.3.
private static ReadLength ( ReadBuffer readBuffer ) : int?
readBuffer ReadBuffer
Résultat int?
        private static int? ReadLength(ReadBuffer readBuffer)
        {
            var position = readBuffer.Position;
            readBuffer.Fill(1);
            var leadingOctet = readBuffer[readBuffer.Index++];

            if ((leadingOctet & 0x80) > 0)
            {
                var length = leadingOctet & 0x7F;

                if (length == 0)
                {
                    return null;
                }

                readBuffer.Fill(length);
                var result = Read8Bit(readBuffer, length, false);

                if (result > int.MaxValue)
                {
                    throw CreateEmberException("The length at position {0} exceeds the expected range.", position);
                }

                return (int)result;
            }
            else
            {
                return leadingOctet;
            }
        }