17 assert(
offset_ != ~static_cast<uint64_t>(0));
18 assert(
size_ != ~static_cast<uint64_t>(0));
34 const size_t original_size = dst->size();
39 PutFixed32(dst, static_cast<uint32_t>(kTableMagicNumber & 0xffffffffu));
40 PutFixed32(dst, static_cast<uint32_t>(kTableMagicNumber >> 32));
50 if (magic != kTableMagicNumber) {
60 const char* end = magic_ptr + 8;
76 size_t n =
static_cast<size_t>(handle.
size());
77 char* buf =
new char[n + kBlockTrailerSize];
79 Status s = file->
Read(handle.
offset(), n + kBlockTrailerSize, &contents, buf);
84 if (contents.size() != n + kBlockTrailerSize) {
90 const char* data = contents.data();
125 char* ubuf =
new char[ulength];
void PutFixed32(std::string *dst, uint32_t value)
virtual Status Read(uint64_t offset, size_t n, Slice *result, char *scratch) const =0
bool Snappy_Uncompress(const char *input_data, size_t input_length, char *output)
const char * data() const
void PutVarint64(std::string *dst, uint64_t v)
Status DecodeFrom(Slice *input)
static Status Corruption(const Slice &msg, const Slice &msg2=Slice())
uint32_t DecodeFixed32(const char *ptr)
uint32_t Unmask(uint32_t masked_crc)
bool Snappy_GetUncompressedLength(const char *input, size_t length, size_t *result)
static Status InvalidArgument(const Slice &msg, const Slice &msg2=Slice())
void EncodeTo(std::string *dst) const
unsigned long long uint64_t
uint32_t Value(const char *data, size_t n)
bool GetVarint64(Slice *input, uint64_t *value)
Status ReadBlock(RandomAccessFile *file, const ReadOptions &options, const BlockHandle &handle, BlockContents *result)