mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-20 08:40:50 +00:00
Addition to prev. revision [#METR-22173].
This commit is contained in:
parent
f638ebbbf5
commit
091e4a53ab
@ -103,23 +103,6 @@ inline void readVarInt(Int16 & x, ReadBuffer & istr)
|
||||
}
|
||||
|
||||
|
||||
inline void writeVarUInt(UInt64 x, std::ostream & ostr)
|
||||
{
|
||||
for (size_t i = 0; i < 9; ++i)
|
||||
{
|
||||
uint8_t byte = x & 0x7F;
|
||||
if (byte > 0x7F)
|
||||
x |= 0x80;
|
||||
|
||||
ostr.put(x);
|
||||
|
||||
x >>= 7;
|
||||
if (!x)
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
inline void throwReadAfterEOF()
|
||||
{
|
||||
throw Exception("Attempt to read after eof", ErrorCodes::ATTEMPT_TO_READ_AFTER_EOF);
|
||||
@ -156,46 +139,6 @@ inline void readVarUInt(UInt64 & x, std::istream & istr)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
inline void writeVarUInt(UInt64 x, WriteBuffer & ostr)
|
||||
{
|
||||
for (size_t i = 0; i < 9; ++i)
|
||||
{
|
||||
uint8_t byte = x & 0x7F;
|
||||
if (byte > 0x7F)
|
||||
x |= 0x80;
|
||||
|
||||
ostr.nextIfAtEnd();
|
||||
*ostr.position() = x;
|
||||
++ostr.position();
|
||||
|
||||
x >>= 7;
|
||||
if (!x)
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
inline char * writeVarUInt(UInt64 x, char * ostr)
|
||||
{
|
||||
for (size_t i = 0; i < 9; ++i)
|
||||
{
|
||||
uint8_t byte = x & 0x7F;
|
||||
if (byte > 0x7F)
|
||||
x |= 0x80;
|
||||
|
||||
*ostr = x;
|
||||
++ostr;
|
||||
|
||||
x >>= 7;
|
||||
if (!x)
|
||||
return ostr;
|
||||
}
|
||||
|
||||
return ostr;
|
||||
}
|
||||
|
||||
|
||||
inline const char * readVarUInt(UInt64 & x, const char * istr, size_t size)
|
||||
{
|
||||
const char * end = istr + size;
|
||||
@ -218,6 +161,62 @@ inline const char * readVarUInt(UInt64 & x, const char * istr, size_t size)
|
||||
}
|
||||
|
||||
|
||||
inline void writeVarUInt(UInt64 x, WriteBuffer & ostr)
|
||||
{
|
||||
for (size_t i = 0; i < 9; ++i)
|
||||
{
|
||||
uint8_t byte = x & 0x7F;
|
||||
if (x > 0x7F)
|
||||
byte |= 0x80;
|
||||
|
||||
ostr.nextIfAtEnd();
|
||||
*ostr.position() = byte;
|
||||
++ostr.position();
|
||||
|
||||
x >>= 7;
|
||||
if (!x)
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
inline void writeVarUInt(UInt64 x, std::ostream & ostr)
|
||||
{
|
||||
for (size_t i = 0; i < 9; ++i)
|
||||
{
|
||||
uint8_t byte = x & 0x7F;
|
||||
if (x > 0x7F)
|
||||
byte |= 0x80;
|
||||
|
||||
ostr.put(byte);
|
||||
|
||||
x >>= 7;
|
||||
if (!x)
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
inline char * writeVarUInt(UInt64 x, char * ostr)
|
||||
{
|
||||
for (size_t i = 0; i < 9; ++i)
|
||||
{
|
||||
uint8_t byte = x & 0x7F;
|
||||
if (x > 0x7F)
|
||||
byte |= 0x80;
|
||||
|
||||
*ostr = byte;
|
||||
++ostr;
|
||||
|
||||
x >>= 7;
|
||||
if (!x)
|
||||
return ostr;
|
||||
}
|
||||
|
||||
return ostr;
|
||||
}
|
||||
|
||||
|
||||
inline size_t getLengthOfVarUInt(UInt64 x)
|
||||
{
|
||||
return x < (1ULL << 7) ? 1
|
||||
|
Loading…
Reference in New Issue
Block a user