#include "table/vtable_builder.h" #include "leveldb/env.h" namespace leveldb { VTableBuilder::VTableBuilder(const Options& options, WritableFile* file) : file_(file), encoder_() {} void VTableBuilder::Add(const VTableRecord& record, VTableHandle* handle) { if (!ok()) return; encoder_.Encode(record); handle->offset = file_size_; handle->size = encoder_.GetEncodedSize(); file_size_ += encoder_.GetEncodedSize(); status_ = file_->Append(encoder_.GetHeader().ToString() + encoder_.GetRecord().ToString()); assert(ok()); //TODO: meta info support in the future } Status VTableBuilder::Finish() { if (!ok()) return status(); status_ = file_->Flush(); return status(); } void VTableBuilder::Abandon() { } } // namespace leveldb