Example #1
0
        public Int64 ReadInt64()
        {
            LongTypeEnum flag = (LongTypeEnum)_reader.ReadByte();

            if (flag == LongTypeEnum.Zero)
            {
                return(default(Int64));
            }

            Int64 ret;

            if ((flag & LongTypeEnum.ByteVal) == LongTypeEnum.ByteVal)
            {
                ret = _reader.ReadByte();
            }
            else if ((flag & LongTypeEnum.ShortVal) == LongTypeEnum.ShortVal)
            {
                ret = _reader.ReadUInt16();
            }
            else if ((flag & LongTypeEnum.IntVal) == LongTypeEnum.IntVal)
            {
                ret = _reader.ReadUInt32();
            }
            else
            {
                ret = _reader.ReadInt64();
            }
            if ((flag & LongTypeEnum.Minus) == LongTypeEnum.Minus)
            {
                return(-ret);
            }
            return(ret);
        }
Example #2
0
        public Int64 ReadInt64()
        {
            LongTypeEnum flag = (LongTypeEnum)_reader.ReadByte();

            if (flag == LongTypeEnum.Zero)
            {
                return(default(Int64));
            }

            Int64 ret = _reader.ReadInt64();

            if ((flag & LongTypeEnum.Minus) == LongTypeEnum.Minus)
            {
                return(-ret);
            }
            return(ret);
        }
Example #3
0
        public void WriteInt64(Int64 num)
        {
            CheckBufferPoll(9);

            if (num == default(Int64))
            {
                _ms.WriteByte((byte)LongTypeEnum.Zero);
                return;
            }
            LongTypeEnum flag = LongTypeEnum.DEFAULT;

            if (num < 0)
            {
                flag = LongTypeEnum.Minus;
                num  = Math.Abs(num);
            }

            byte[] byts = BitConverter.GetBytes(num);
            _ms.WriteByte((byte)flag);
            _ms.Write(byts, 0, byts.Length);
        }
        public void WriteInt64(Int64 num)
        {
            CheckBufferPoll(9);

            if (num == default(Int64))
            {
                _ms.WriteByte((byte)LongTypeEnum.Zero);
                return;
            }
            LongTypeEnum flag = LongTypeEnum.DEFAULT;

            if (num < 0)
            {
                flag = LongTypeEnum.Minus;
                num  = Math.Abs(num);
            }

            byte[] byts = null;
            if (num <= byte.MaxValue)
            {
                flag |= LongTypeEnum.ByteVal;
                byts  = new byte[] { (byte)num };
            }
            else if (num < short.MaxValue)
            {
                flag |= LongTypeEnum.ShortVal;
                byts  = BitConverter.GetBytes((short)num);
            }
            else if (num < int.MaxValue)
            {
                flag |= LongTypeEnum.IntVal;
                byts  = BitConverter.GetBytes((int)num);
            }
            else
            {
                byts = BitConverter.GetBytes(num);
            }
            _ms.WriteByte((byte)flag);
            _ms.Write(byts, 0, byts.Length);
        }