| 44 | builder_->Add(key, val); |
| 45 | } |
| 46 | Status Finish(int64* file_size) override { |
| 47 | *file_size = -1; |
| 48 | Status s = builder_->Finish(); |
| 49 | if (s.ok()) { |
| 50 | s = file_->Close(); |
| 51 | if (s.ok()) { |
| 52 | *file_size = builder_->FileSize(); |
| 53 | } |
| 54 | } |
| 55 | if (!s.ok()) { |
| 56 | s = errors::Internal("Error writing (tmp) checkpoint file: ", name_, ": ", |
| 57 | s.ToString()); |
| 58 | } |
| 59 | builder_.reset(); |
| 60 | file_.reset(); |
| 61 | return s; |
| 62 | } |
| 63 | |
| 64 | private: |
| 65 | string name_; |