Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-08-28 08:26:55

0001 // Licensed to the Apache Software Foundation (ASF) under one
0002 // or more contributor license agreements.  See the NOTICE file
0003 // distributed with this work for additional information
0004 // regarding copyright ownership.  The ASF licenses this file
0005 // to you under the Apache License, Version 2.0 (the
0006 // "License"); you may not use this file except in compliance
0007 // with the License.  You may obtain a copy of the License at
0008 //
0009 //   http://www.apache.org/licenses/LICENSE-2.0
0010 //
0011 // Unless required by applicable law or agreed to in writing,
0012 // software distributed under the License is distributed on an
0013 // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
0014 // KIND, either express or implied.  See the License for the
0015 // specific language governing permissions and limitations
0016 // under the License.
0017 
0018 // Contains declarations of time related Arrow builder types.
0019 
0020 #pragma once
0021 
0022 #include <memory>
0023 
0024 #include "arrow/array/builder_base.h"
0025 #include "arrow/array/builder_primitive.h"
0026 
0027 namespace arrow {
0028 
0029 /// \addtogroup temporal-builders
0030 ///
0031 /// @{
0032 
0033 // TODO(ARROW-7938): this class is untested
0034 
0035 class ARROW_EXPORT DayTimeIntervalBuilder : public NumericBuilder<DayTimeIntervalType> {
0036  public:
0037   using DayMilliseconds = DayTimeIntervalType::DayMilliseconds;
0038 
0039   explicit DayTimeIntervalBuilder(MemoryPool* pool = default_memory_pool(),
0040                                   int64_t alignment = kDefaultBufferAlignment)
0041       : DayTimeIntervalBuilder(day_time_interval(), pool, alignment) {}
0042 
0043   explicit DayTimeIntervalBuilder(std::shared_ptr<DataType> type,
0044                                   MemoryPool* pool = default_memory_pool(),
0045                                   int64_t alignment = kDefaultBufferAlignment)
0046       : NumericBuilder<DayTimeIntervalType>(type, pool, alignment) {}
0047 };
0048 
0049 class ARROW_EXPORT MonthDayNanoIntervalBuilder
0050     : public NumericBuilder<MonthDayNanoIntervalType> {
0051  public:
0052   using MonthDayNanos = MonthDayNanoIntervalType::MonthDayNanos;
0053 
0054   explicit MonthDayNanoIntervalBuilder(MemoryPool* pool = default_memory_pool(),
0055                                        int64_t alignment = kDefaultBufferAlignment)
0056       : MonthDayNanoIntervalBuilder(month_day_nano_interval(), pool, alignment) {}
0057 
0058   explicit MonthDayNanoIntervalBuilder(std::shared_ptr<DataType> type,
0059                                        MemoryPool* pool = default_memory_pool(),
0060                                        int64_t alignment = kDefaultBufferAlignment)
0061       : NumericBuilder<MonthDayNanoIntervalType>(type, pool, alignment) {}
0062 };
0063 
0064 /// @}
0065 
0066 }  // namespace arrow