MsgPack.MsgPackWriter.WriteLengthHeader C# (CSharp) Method

WriteLengthHeader() private method

private WriteLengthHeader ( int N, int fix_length, byte fix_prefix, byte len16bit_prefix, byte len32bit_prefix ) : void
N int
fix_length int
fix_prefix byte
len16bit_prefix byte
len32bit_prefix byte
return void
        void WriteLengthHeader(int N, int fix_length, byte fix_prefix, byte len16bit_prefix, byte len32bit_prefix)
        {
            if (N < fix_length) {
                _strm.WriteByte ((byte)(fix_prefix | N));
            } else {
                byte[] tmp = _tmp;
                int header_len;
                if (N < 0x10000) {
                    tmp[0] = len16bit_prefix;
                    tmp[1] = (byte)(N >> 8);
                    tmp[2] = (byte)N;
                    header_len = 3;
                } else {
                    tmp[0] = len32bit_prefix;
                    tmp[1] = (byte)(N >> 24);
                    tmp[2] = (byte)(N >> 16);
                    tmp[3] = (byte)(N >>  8);
                    tmp[4] = (byte)N;
                    header_len = 5;
                }
                _strm.Write (tmp, 0, header_len);
            }
        }