10 if (port::kLittleEndian) {
11 memcpy(buf, &value,
sizeof(value));
13 buf[0] = value & 0xff;
14 buf[1] = (value >> 8) & 0xff;
15 buf[2] = (value >> 16) & 0xff;
16 buf[3] = (value >> 24) & 0xff;
21 if (port::kLittleEndian) {
22 memcpy(buf, &value,
sizeof(value));
24 buf[0] = value & 0xff;
25 buf[1] = (value >> 8) & 0xff;
26 buf[2] = (value >> 16) & 0xff;
27 buf[3] = (value >> 24) & 0xff;
28 buf[4] = (value >> 32) & 0xff;
29 buf[5] = (value >> 40) & 0xff;
30 buf[6] = (value >> 48) & 0xff;
31 buf[7] = (value >> 56) & 0xff;
36 char buf[
sizeof(
value)];
38 dst->append(buf,
sizeof(buf));
42 char buf[
sizeof(
value)];
44 dst->append(buf,
sizeof(buf));
49 unsigned char* ptr =
reinterpret_cast<unsigned char*
>(dst);
50 static const int B = 128;
53 }
else if (v < (1<<14)) {
56 }
else if (v < (1<<21)) {
58 *(ptr++) = (v>>7) | B;
60 }
else if (v < (1<<28)) {
62 *(ptr++) = (v>>7) | B;
63 *(ptr++) = (v>>14) | B;
67 *(ptr++) = (v>>7) | B;
68 *(ptr++) = (v>>14) | B;
69 *(ptr++) = (v>>21) | B;
72 return reinterpret_cast<char*
>(ptr);
78 dst->append(buf, ptr - buf);
82 static const int B = 128;
83 unsigned char* ptr =
reinterpret_cast<unsigned char*
>(dst);
85 *(ptr++) = (v & (B-1)) | B;
88 *(ptr++) = static_cast<unsigned char>(v);
89 return reinterpret_cast<char*
>(ptr);
95 dst->append(buf, ptr - buf);
100 dst->append(value.
data(), value.
size());
116 for (
uint32_t shift = 0; shift <= 28 && p < limit; shift += 7) {
117 uint32_t byte = *(
reinterpret_cast<const unsigned char*
>(p));
121 result |= ((byte & 127) << shift);
123 result |= (byte << shift);
125 return reinterpret_cast<const char*
>(p);
132 const char* p = input->
data();
133 const char* limit = p + input->
size();
138 *input =
Slice(q, limit - q);
145 for (
uint32_t shift = 0; shift <= 63 && p < limit; shift += 7) {
146 uint64_t byte = *(
reinterpret_cast<const unsigned char*
>(p));
150 result |= ((byte & 127) << shift);
152 result |= (byte << shift);
154 return reinterpret_cast<const char*
>(p);
161 const char* p = input->
data();
162 const char* limit = p + input->
size();
167 *input =
Slice(q, limit - q);
176 if (p == NULL)
return NULL;
177 if (p + len > limit)
return NULL;
178 *result =
Slice(p, len);
185 input->
size() >= len) {
void PutFixed32(std::string *dst, uint32_t value)
const char * data() const
const char * GetVarint32Ptr(const char *p, const char *limit, uint32_t *v)
void PutVarint64(std::string *dst, uint64_t v)
void EncodeFixed32(char *buf, uint32_t value)
char * EncodeVarint32(char *dst, uint32_t v)
void remove_prefix(size_t n)
void EncodeFixed64(char *buf, uint64_t value)
void PutFixed64(std::string *dst, uint64_t value)
void PutLengthPrefixedSlice(std::string *dst, const Slice &value)
unsigned long long uint64_t
const char * GetVarint64Ptr(const char *p, const char *limit, uint64_t *value)
int VarintLength(uint64_t v)
bool GetVarint64(Slice *input, uint64_t *value)
bool GetVarint32(Slice *input, uint32_t *value)
char * EncodeVarint64(char *dst, uint64_t v)
const char * GetLengthPrefixedSlice(const char *p, const char *limit, Slice *result)
const char * GetVarint32PtrFallback(const char *p, const char *limit, uint32_t *value)
void PutVarint32(std::string *dst, uint32_t v)