作者: 韩晨旭@ArcueidType(Arcueid) 10225101440 李畅@wesley 10225102463 设计文档为PLAN.md,md版本报告为README.md,pdf版本报告为Report.pdf
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
 
 

36 wiersze
789 B

#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