K2Informatics.Erlnet.OtpInputStream.read_bitstr C# (CSharp) Метод

read_bitstr() публичный Метод

public read_bitstr ( int &pad_bits ) : byte[]
pad_bits int
Результат byte[]
        public byte[] read_bitstr(out int pad_bits)
        {
            int tag;
            int len;
            byte[] bin;

            tag = read1skip_version();

            if (tag != OtpExternal.bitBinTag)
            {
                throw new OtpErlangDecodeException("Wrong tag encountered, expected " + OtpExternal.bitBinTag
                                   + ", got " + tag);
            }

            len = read4BE();
            bin = new byte[len];
            int tail_bits = read1();
            if (tail_bits < 0 || 7 < tail_bits)
            {
                throw new OtpErlangDecodeException("Wrong tail bit count in bitstr: " + tail_bits);
            }
            if (len == 0 && tail_bits != 0)
            {
                throw new OtpErlangDecodeException("Length 0 on bitstr with tail bit count: " + tail_bits);
            }
            this.readN(bin);

            pad_bits = 8 - tail_bits;
            return bin;
        }

Usage Example

Пример #1
0
        /**
         * Create a bitstr from a stream containing a bitstr encoded in Erlang
         * external format.
         *
         * @param buf
         *                the stream containing the encoded bitstr.
         *
         * @exception OtpErlangDecodeException
         *                    if the buffer does not contain a valid external
         *                    representation of an Erlang bitstr.
         */
        public OtpErlangBitstr(OtpInputStream buf)
        {
            bin = buf.read_bitstr(out pad_bits);

            check_bitstr(bin, pad_bits);
        }