File indexing completed on 2025-08-28 08:27:00
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018 #pragma once
0019
0020 #include <memory>
0021 #include <vector>
0022
0023 #include "arrow/status.h"
0024 #include "arrow/type_fwd.h"
0025 #include "arrow/util/type_fwd.h"
0026 #include "arrow/util/visibility.h"
0027
0028 namespace arrow {
0029 namespace json {
0030
0031 class PromotionGraph;
0032
0033 class ARROW_EXPORT ChunkedArrayBuilder {
0034 public:
0035 virtual ~ChunkedArrayBuilder() = default;
0036
0037
0038 virtual void Insert(int64_t block_index,
0039 const std::shared_ptr<Field>& unconverted_field,
0040 const std::shared_ptr<Array>& unconverted) = 0;
0041
0042
0043
0044 virtual Status Finish(std::shared_ptr<ChunkedArray>* out) = 0;
0045
0046
0047 virtual Status ReplaceTaskGroup(
0048 const std::shared_ptr<arrow::internal::TaskGroup>& task_group) = 0;
0049
0050 protected:
0051 explicit ChunkedArrayBuilder(
0052 const std::shared_ptr<arrow::internal::TaskGroup>& task_group)
0053 : task_group_(task_group) {}
0054
0055 std::shared_ptr<arrow::internal::TaskGroup> task_group_;
0056 };
0057
0058
0059
0060
0061
0062 ARROW_EXPORT Status MakeChunkedArrayBuilder(
0063 const std::shared_ptr<arrow::internal::TaskGroup>& task_group, MemoryPool* pool,
0064 const PromotionGraph* promotion_graph, const std::shared_ptr<DataType>& type,
0065 std::shared_ptr<ChunkedArrayBuilder>* out);
0066
0067 }
0068 }