]> git.proxmox.com Git - ceph.git/blame - ceph/src/arrow/cpp/src/arrow/visitor.h
import quincy 17.2.0
[ceph.git] / ceph / src / arrow / cpp / src / arrow / visitor.h
CommitLineData
1d09f67e
TL
1// Licensed to the Apache Software Foundation (ASF) under one
2// or more contributor license agreements. See the NOTICE file
3// distributed with this work for additional information
4// regarding copyright ownership. The ASF licenses this file
5// to you under the Apache License, Version 2.0 (the
6// "License"); you may not use this file except in compliance
7// with the License. You may obtain a copy of the License at
8//
9// http://www.apache.org/licenses/LICENSE-2.0
10//
11// Unless required by applicable law or agreed to in writing,
12// software distributed under the License is distributed on an
13// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14// KIND, either express or implied. See the License for the
15// specific language governing permissions and limitations
16// under the License.
17
18#pragma once
19
20#include "arrow/status.h"
21#include "arrow/type_fwd.h"
22#include "arrow/util/visibility.h"
23
24namespace arrow {
25
26class ARROW_EXPORT ArrayVisitor {
27 public:
28 virtual ~ArrayVisitor() = default;
29
30 virtual Status Visit(const NullArray& array);
31 virtual Status Visit(const BooleanArray& array);
32 virtual Status Visit(const Int8Array& array);
33 virtual Status Visit(const Int16Array& array);
34 virtual Status Visit(const Int32Array& array);
35 virtual Status Visit(const Int64Array& array);
36 virtual Status Visit(const UInt8Array& array);
37 virtual Status Visit(const UInt16Array& array);
38 virtual Status Visit(const UInt32Array& array);
39 virtual Status Visit(const UInt64Array& array);
40 virtual Status Visit(const HalfFloatArray& array);
41 virtual Status Visit(const FloatArray& array);
42 virtual Status Visit(const DoubleArray& array);
43 virtual Status Visit(const StringArray& array);
44 virtual Status Visit(const BinaryArray& array);
45 virtual Status Visit(const LargeStringArray& array);
46 virtual Status Visit(const LargeBinaryArray& array);
47 virtual Status Visit(const FixedSizeBinaryArray& array);
48 virtual Status Visit(const Date32Array& array);
49 virtual Status Visit(const Date64Array& array);
50 virtual Status Visit(const Time32Array& array);
51 virtual Status Visit(const Time64Array& array);
52 virtual Status Visit(const TimestampArray& array);
53 virtual Status Visit(const DayTimeIntervalArray& array);
54 virtual Status Visit(const MonthDayNanoIntervalArray& array);
55 virtual Status Visit(const MonthIntervalArray& array);
56 virtual Status Visit(const DurationArray& array);
57 virtual Status Visit(const Decimal128Array& array);
58 virtual Status Visit(const Decimal256Array& array);
59 virtual Status Visit(const ListArray& array);
60 virtual Status Visit(const LargeListArray& array);
61 virtual Status Visit(const MapArray& array);
62 virtual Status Visit(const FixedSizeListArray& array);
63 virtual Status Visit(const StructArray& array);
64 virtual Status Visit(const SparseUnionArray& array);
65 virtual Status Visit(const DenseUnionArray& array);
66 virtual Status Visit(const DictionaryArray& array);
67 virtual Status Visit(const ExtensionArray& array);
68};
69
70class ARROW_EXPORT TypeVisitor {
71 public:
72 virtual ~TypeVisitor() = default;
73
74 virtual Status Visit(const NullType& type);
75 virtual Status Visit(const BooleanType& type);
76 virtual Status Visit(const Int8Type& type);
77 virtual Status Visit(const Int16Type& type);
78 virtual Status Visit(const Int32Type& type);
79 virtual Status Visit(const Int64Type& type);
80 virtual Status Visit(const UInt8Type& type);
81 virtual Status Visit(const UInt16Type& type);
82 virtual Status Visit(const UInt32Type& type);
83 virtual Status Visit(const UInt64Type& type);
84 virtual Status Visit(const HalfFloatType& type);
85 virtual Status Visit(const FloatType& type);
86 virtual Status Visit(const DoubleType& type);
87 virtual Status Visit(const StringType& type);
88 virtual Status Visit(const BinaryType& type);
89 virtual Status Visit(const LargeStringType& type);
90 virtual Status Visit(const LargeBinaryType& type);
91 virtual Status Visit(const FixedSizeBinaryType& type);
92 virtual Status Visit(const Date64Type& type);
93 virtual Status Visit(const Date32Type& type);
94 virtual Status Visit(const Time32Type& type);
95 virtual Status Visit(const Time64Type& type);
96 virtual Status Visit(const TimestampType& type);
97 virtual Status Visit(const MonthDayNanoIntervalType& type);
98 virtual Status Visit(const MonthIntervalType& type);
99 virtual Status Visit(const DayTimeIntervalType& type);
100 virtual Status Visit(const DurationType& type);
101 virtual Status Visit(const Decimal128Type& type);
102 virtual Status Visit(const Decimal256Type& type);
103 virtual Status Visit(const ListType& type);
104 virtual Status Visit(const LargeListType& type);
105 virtual Status Visit(const MapType& type);
106 virtual Status Visit(const FixedSizeListType& type);
107 virtual Status Visit(const StructType& type);
108 virtual Status Visit(const SparseUnionType& type);
109 virtual Status Visit(const DenseUnionType& type);
110 virtual Status Visit(const DictionaryType& type);
111 virtual Status Visit(const ExtensionType& type);
112};
113
114class ARROW_EXPORT ScalarVisitor {
115 public:
116 virtual ~ScalarVisitor() = default;
117
118 virtual Status Visit(const NullScalar& scalar);
119 virtual Status Visit(const BooleanScalar& scalar);
120 virtual Status Visit(const Int8Scalar& scalar);
121 virtual Status Visit(const Int16Scalar& scalar);
122 virtual Status Visit(const Int32Scalar& scalar);
123 virtual Status Visit(const Int64Scalar& scalar);
124 virtual Status Visit(const UInt8Scalar& scalar);
125 virtual Status Visit(const UInt16Scalar& scalar);
126 virtual Status Visit(const UInt32Scalar& scalar);
127 virtual Status Visit(const UInt64Scalar& scalar);
128 virtual Status Visit(const HalfFloatScalar& scalar);
129 virtual Status Visit(const FloatScalar& scalar);
130 virtual Status Visit(const DoubleScalar& scalar);
131 virtual Status Visit(const StringScalar& scalar);
132 virtual Status Visit(const BinaryScalar& scalar);
133 virtual Status Visit(const LargeStringScalar& scalar);
134 virtual Status Visit(const LargeBinaryScalar& scalar);
135 virtual Status Visit(const FixedSizeBinaryScalar& scalar);
136 virtual Status Visit(const Date64Scalar& scalar);
137 virtual Status Visit(const Date32Scalar& scalar);
138 virtual Status Visit(const Time32Scalar& scalar);
139 virtual Status Visit(const Time64Scalar& scalar);
140 virtual Status Visit(const TimestampScalar& scalar);
141 virtual Status Visit(const DayTimeIntervalScalar& scalar);
142 virtual Status Visit(const MonthDayNanoIntervalScalar& type);
143 virtual Status Visit(const MonthIntervalScalar& scalar);
144 virtual Status Visit(const DurationScalar& scalar);
145 virtual Status Visit(const Decimal128Scalar& scalar);
146 virtual Status Visit(const Decimal256Scalar& scalar);
147 virtual Status Visit(const ListScalar& scalar);
148 virtual Status Visit(const LargeListScalar& scalar);
149 virtual Status Visit(const MapScalar& scalar);
150 virtual Status Visit(const FixedSizeListScalar& scalar);
151 virtual Status Visit(const StructScalar& scalar);
152 virtual Status Visit(const DictionaryScalar& scalar);
153};
154
155} // namespace arrow