libcudf  24.04.00
timezone.hpp
1 /*
2  * Copyright (c) 2023, NVIDIA CORPORATION.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 #pragma once
17 
18 #include <rmm/mr/device/per_device_resource.hpp>
19 
20 #include <memory>
21 #include <optional>
22 #include <string>
23 
24 namespace cudf {
25 class table;
26 
27 // Cycle in which the time offsets repeat in Gregorian calendar
28 static constexpr int32_t solar_cycle_years = 400;
29 // Number of future entries in the timezone transition table:
30 // Two entries per year, over the length of the Gregorian calendar's solar cycle
31 static constexpr uint32_t solar_cycle_entry_count = 2 * solar_cycle_years;
32 
49 std::unique_ptr<table> make_timezone_transition_table(
50  std::optional<std::string_view> tzif_dir,
51  std::string_view timezone_name,
52  rmm::mr::device_memory_resource* mr = rmm::mr::get_current_device_resource());
53 
54 } // namespace cudf
cuDF interfaces
Definition: aggregation.hpp:34
std::unique_ptr< table > make_timezone_transition_table(std::optional< std::string_view > tzif_dir, std::string_view timezone_name, rmm::mr::device_memory_resource *mr=rmm::mr::get_current_device_resource())
Creates a transition table to convert ORC timestamps to UTC.