49 index_block_options(opt),
53 index_block(&index_block_options),
56 filter_block(opt.filter_policy == NULL ? NULL
58 pending_index_entry(false) {
64 :
rep_(new
Rep(options, file)) {
103 std::string handle_encoding;
148 Slice block_contents;
153 block_contents = raw;
158 if (port::Snappy_Compress(raw.
data(), raw.
size(), compressed) &&
159 compressed->size() < raw.
size() - (raw.
size() / 8u)) {
160 block_contents = *compressed;
164 block_contents = raw;
205 BlockHandle filter_block_handle, metaindex_block_handle, index_block_handle;
210 &filter_block_handle);
218 std::string key =
"filter.";
220 std::string handle_encoding;
221 filter_block_handle.
EncodeTo(&handle_encoding);
222 meta_index_block.
Add(key, handle_encoding);
226 WriteBlock(&meta_index_block, &metaindex_block_handle);
233 std::string handle_encoding;
246 std::string footer_encoding;
250 r->
offset += footer_encoding.size();
Status ChangeOptions(const Options &options)
void StartBlock(uint64_t block_offset)
void WriteRawBlock(const Slice &data, CompressionType, BlockHandle *handle)
void set_size(uint64_t size)
FilterBlockBuilder * filter_block
TableBuilder(const Options &options, WritableFile *file)
virtual void FindShortestSeparator(std::string *start, const Slice &limit) const =0
void EncodeFixed32(char *buf, uint32_t value)
void WriteBlock(BlockBuilder *block, BlockHandle *handle)
BlockHandle pending_handle
uint32_t Mask(uint32_t crc)
virtual const char * Name() const =0
int block_restart_interval
void EncodeTo(std::string *dst) const
uint64_t FileSize() const
size_t CurrentSizeEstimate() const
uint64_t NumEntries() const
virtual void FindShortSuccessor(std::string *key) const =0
void AddKey(const Slice &key)
std::string compressed_output
uint32_t Value(const char *data, size_t n)
const FilterPolicy * filter_policy
const Comparator * comparator
static Status InvalidArgument(const Slice &msg, const Slice &msg2=Slice())
void set_offset(uint64_t offset)
virtual Status Append(const Slice &data)=0
virtual int Compare(const Slice &a, const Slice &b) const =0
void Add(const Slice &key, const Slice &value)
const char * data() const
static const size_t kBlockTrailerSize
Rep(const Options &opt, WritableFile *f)
Options index_block_options
uint32_t Extend(uint32_t crc, const char *buf, size_t size)
void Add(const Slice &key, const Slice &value)
CompressionType compression