| 308 | } |
| 309 | ~MemTableConstructor() override { memtable_->Unref(); } |
| 310 | Status FinishImpl(const Options& options, const KVMap& data) override { |
| 311 | memtable_->Unref(); |
| 312 | memtable_ = new MemTable(internal_comparator_); |
| 313 | memtable_->Ref(); |
| 314 | int seq = 1; |
| 315 | for (const auto& kvp : data) { |
| 316 | memtable_->Add(seq, kTypeValue, kvp.first, kvp.second); |
| 317 | seq++; |
| 318 | } |
| 319 | return Status::OK(); |
| 320 | } |
| 321 | Iterator* NewIterator() const override { |
| 322 | return new KeyConvertingIterator(memtable_->NewIterator()); |
| 323 | } |