2929
3030namespace iceberg {
3131
32- // / \brief Write manifest files to a manifest list file.
33- class ManifestWriterImpl : public ManifestWriter {
34- public:
35- ManifestWriterImpl (std::unique_ptr<Writer> writer,
36- std::unique_ptr<ManifestEntryAdapter> adapter)
37- : writer_(std::move(writer)), adapter_(std::move(adapter)) {}
38-
39- Status Add (const ManifestEntry& entry) override {
40- if (adapter_->size () >= kBatchSize ) {
41- ICEBERG_ASSIGN_OR_RAISE (auto array, adapter_->FinishAppending ());
42- ICEBERG_RETURN_UNEXPECTED (writer_->Write (array));
43- ICEBERG_RETURN_UNEXPECTED (adapter_->StartAppending ());
44- }
45- return adapter_->Append (entry);
32+ Status ManifestWriter::Add (const ManifestEntry& entry) {
33+ if (adapter_->size () >= kBatchSize ) {
34+ ICEBERG_ASSIGN_OR_RAISE (auto array, adapter_->FinishAppending ());
35+ ICEBERG_RETURN_UNEXPECTED (writer_->Write (array));
36+ ICEBERG_RETURN_UNEXPECTED (adapter_->StartAppending ());
4637 }
38+ return adapter_->Append (entry);
39+ }
4740
48- Status AddAll (const std::vector<ManifestEntry>& entries) override {
49- for (const auto & entry : entries) {
50- ICEBERG_RETURN_UNEXPECTED (Add (entry));
51- }
52- return {};
41+ Status ManifestWriter::AddAll (const std::vector<ManifestEntry>& entries) {
42+ for (const auto & entry : entries) {
43+ ICEBERG_RETURN_UNEXPECTED (Add (entry));
5344 }
45+ return {};
46+ }
5447
55- Status Close () override {
56- if (adapter_->size () > 0 ) {
57- ICEBERG_ASSIGN_OR_RAISE (auto array, adapter_->FinishAppending ());
58- ICEBERG_RETURN_UNEXPECTED (writer_->Write (array));
59- }
60- return {};
48+ Status ManifestWriter::Close () {
49+ if (adapter_->size () > 0 ) {
50+ ICEBERG_ASSIGN_OR_RAISE (auto array, adapter_->FinishAppending ());
51+ ICEBERG_RETURN_UNEXPECTED (writer_->Write (array));
6152 }
62-
63- private:
64- static constexpr int64_t kBatchSize = 1024 ;
65- std::unique_ptr<Writer> writer_;
66- std::unique_ptr<ManifestEntryAdapter> adapter_;
67- };
53+ return {};
54+ }
6855
6956Result<std::unique_ptr<Writer>> OpenFileWriter (std::string_view location,
7057 const std::shared_ptr<Schema> schema,
@@ -89,7 +76,7 @@ Result<std::unique_ptr<ManifestWriter>> ManifestWriter::MakeV1Writer(
8976 ICEBERG_ASSIGN_OR_RAISE (auto writer,
9077 OpenFileWriter (manifest_location, schema, std::move (file_io)));
9178 auto adapter = std::make_unique<ManifestEntryAdapterV1>(snapshot_id, std::move (schema));
92- return std::make_unique<ManifestWriterImpl >(std::move (writer), std::move (adapter));
79+ return std::make_unique<ManifestWriter >(std::move (writer), std::move (adapter));
9380}
9481
9582Result<std::unique_ptr<ManifestWriter>> ManifestWriter::MakeV2Writer (
@@ -104,7 +91,7 @@ Result<std::unique_ptr<ManifestWriter>> ManifestWriter::MakeV2Writer(
10491 ICEBERG_ASSIGN_OR_RAISE (auto writer,
10592 OpenFileWriter (manifest_location, schema, std::move (file_io)));
10693 auto adapter = std::make_unique<ManifestEntryAdapterV2>(snapshot_id, std::move (schema));
107- return std::make_unique<ManifestWriterImpl >(std::move (writer), std::move (adapter));
94+ return std::make_unique<ManifestWriter >(std::move (writer), std::move (adapter));
10895}
10996
11097Result<std::unique_ptr<ManifestWriter>> ManifestWriter::MakeV3Writer (
@@ -121,45 +108,32 @@ Result<std::unique_ptr<ManifestWriter>> ManifestWriter::MakeV3Writer(
121108 OpenFileWriter (manifest_location, schema, std::move (file_io)));
122109 auto adapter = std::make_unique<ManifestEntryAdapterV3>(snapshot_id, first_row_id,
123110 std::move (schema));
124- return std::make_unique<ManifestWriterImpl >(std::move (writer), std::move (adapter));
111+ return std::make_unique<ManifestWriter >(std::move (writer), std::move (adapter));
125112}
126113
127- // / \brief Write manifest files to a manifest list file.
128- class ManifestListWriterImpl : public ManifestListWriter {
129- public:
130- ManifestListWriterImpl (std::unique_ptr<Writer> writer,
131- std::unique_ptr<ManifestFileAdapter> adapter)
132- : writer_(std::move(writer)), adapter_(std::move(adapter)) {}
133-
134- Status Add (const ManifestFile& file) override {
135- if (adapter_->size () >= kBatchSize ) {
136- ICEBERG_ASSIGN_OR_RAISE (auto array, adapter_->FinishAppending ());
137- ICEBERG_RETURN_UNEXPECTED (writer_->Write (array));
138- ICEBERG_RETURN_UNEXPECTED (adapter_->StartAppending ());
139- }
140- return adapter_->Append (file);
114+ Status ManifestListWriter::Add (const ManifestFile& file) {
115+ if (adapter_->size () >= kBatchSize ) {
116+ ICEBERG_ASSIGN_OR_RAISE (auto array, adapter_->FinishAppending ());
117+ ICEBERG_RETURN_UNEXPECTED (writer_->Write (array));
118+ ICEBERG_RETURN_UNEXPECTED (adapter_->StartAppending ());
141119 }
120+ return adapter_->Append (file);
121+ }
142122
143- Status AddAll (const std::vector<ManifestFile>& files) override {
144- for (const auto & file : files) {
145- ICEBERG_RETURN_UNEXPECTED (Add (file));
146- }
147- return {};
123+ Status ManifestListWriter::AddAll (const std::vector<ManifestFile>& files) {
124+ for (const auto & file : files) {
125+ ICEBERG_RETURN_UNEXPECTED (Add (file));
148126 }
127+ return {};
128+ }
149129
150- Status Close () override {
151- if (adapter_->size () > 0 ) {
152- ICEBERG_ASSIGN_OR_RAISE (auto array, adapter_->FinishAppending ());
153- ICEBERG_RETURN_UNEXPECTED (writer_->Write (array));
154- }
155- return {};
130+ Status ManifestListWriter::Close () {
131+ if (adapter_->size () > 0 ) {
132+ ICEBERG_ASSIGN_OR_RAISE (auto array, adapter_->FinishAppending ());
133+ ICEBERG_RETURN_UNEXPECTED (writer_->Write (array));
156134 }
157-
158- private:
159- static constexpr int64_t kBatchSize = 1024 ;
160- std::unique_ptr<Writer> writer_;
161- std::unique_ptr<ManifestFileAdapter> adapter_;
162- };
135+ return {};
136+ }
163137
164138Result<std::unique_ptr<ManifestListWriter>> ManifestListWriter::MakeV1Writer (
165139 int64_t snapshot_id, std::optional<int64_t > parent_snapshot_id,
@@ -172,7 +146,7 @@ Result<std::unique_ptr<ManifestListWriter>> ManifestListWriter::MakeV1Writer(
172146 auto writer, OpenFileWriter (manifest_list_location, schema, std::move (file_io)));
173147 auto adapter = std::make_unique<ManifestFileAdapterV1>(snapshot_id, parent_snapshot_id,
174148 std::move (schema));
175- return std::make_unique<ManifestListWriterImpl >(std::move (writer), std::move (adapter));
149+ return std::make_unique<ManifestListWriter >(std::move (writer), std::move (adapter));
176150}
177151
178152Result<std::unique_ptr<ManifestListWriter>> ManifestListWriter::MakeV2Writer (
@@ -187,7 +161,7 @@ Result<std::unique_ptr<ManifestListWriter>> ManifestListWriter::MakeV2Writer(
187161 auto writer, OpenFileWriter (manifest_list_location, schema, std::move (file_io)));
188162 auto adapter = std::make_unique<ManifestFileAdapterV2>(
189163 snapshot_id, parent_snapshot_id, sequence_number, std::move (schema));
190- return std::make_unique<ManifestListWriterImpl >(std::move (writer), std::move (adapter));
164+ return std::make_unique<ManifestListWriter >(std::move (writer), std::move (adapter));
191165}
192166
193167Result<std::unique_ptr<ManifestListWriter>> ManifestListWriter::MakeV3Writer (
@@ -202,7 +176,7 @@ Result<std::unique_ptr<ManifestListWriter>> ManifestListWriter::MakeV3Writer(
202176 auto writer, OpenFileWriter (manifest_list_location, schema, std::move (file_io)));
203177 auto adapter = std::make_unique<ManifestFileAdapterV3>(
204178 snapshot_id, parent_snapshot_id, sequence_number, first_row_id, std::move (schema));
205- return std::make_unique<ManifestListWriterImpl >(std::move (writer), std::move (adapter));
179+ return std::make_unique<ManifestListWriter >(std::move (writer), std::move (adapter));
206180}
207181
208182} // namespace iceberg
0 commit comments