timezone.hpp
1 /*
2  * Copyright (c) 2023-2024, 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 
19 #include <cudf/utilities/export.hpp>
21 
22 #include <rmm/cuda_stream_view.hpp>
23 
24 #include <memory>
25 #include <optional>
26 #include <string>
27 
28 namespace CUDF_EXPORT cudf {
29 class table;
30 
31 // Cycle in which the time offsets repeat in Gregorian calendar
32 static constexpr int32_t solar_cycle_years = 400;
33 // Number of future entries in the timezone transition table:
34 // Two entries per year, over the length of the Gregorian calendar's solar cycle
35 static constexpr uint32_t solar_cycle_entry_count = 2 * solar_cycle_years;
36 
54 std::unique_ptr<table> make_timezone_transition_table(
55  std::optional<std::string_view> tzif_dir,
56  std::string_view timezone_name,
59 
60 } // namespace CUDF_EXPORT cudf
rmm::cuda_stream_view const get_default_stream()
Get the current default stream.
rmm::device_async_resource_ref get_current_device_resource_ref()
Get the current device memory resource reference.
cuda::mr::async_resource_ref< cuda::mr::device_accessible > device_async_resource_ref
cuDF interfaces
Definition: aggregation.hpp:35
std::unique_ptr< table > make_timezone_transition_table(std::optional< std::string_view > tzif_dir, std::string_view timezone_name, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
Creates a transition table to convert ORC timestamps to UTC.