context.hpp
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION.
3  * SPDX-License-Identifier: Apache-2.0
4  */
5 
6 #pragma once
7 
8 #include <cudf/utilities/export.hpp>
9 
10 #include <cstdint>
11 #include <type_traits>
12 
13 namespace CUDF_EXPORT cudf {
14 
16 enum class init_flags : std::uint32_t {
18  NONE = 0,
20  LOAD_NVCOMP = 1 << 0,
22  INIT_JIT_CACHE = 1 << 1,
25 };
26 
31 constexpr init_flags operator|(init_flags lhs, init_flags rhs) noexcept
32 {
33  using underlying_t = std::underlying_type_t<init_flags>;
34  return static_cast<init_flags>(static_cast<underlying_t>(lhs) | static_cast<underlying_t>(rhs));
35 }
36 
41 constexpr init_flags operator&(init_flags lhs, init_flags rhs) noexcept
42 {
43  using underlying_t = std::underlying_type_t<init_flags>;
44  return static_cast<init_flags>(static_cast<underlying_t>(lhs) & static_cast<underlying_t>(rhs));
45 }
46 
51 constexpr init_flags operator~(init_flags flags) noexcept
52 {
53  using underlying_t = std::underlying_type_t<init_flags>;
54  return static_cast<init_flags>(static_cast<underlying_t>(init_flags::ALL) &
55  ~static_cast<underlying_t>(flags));
56 }
57 
62 constexpr bool has_flag(init_flags flags, init_flags flag) noexcept
63 {
64  return (flags | flag) == flags;
65 }
66 
71 void initialize(init_flags flags = init_flags::INIT_JIT_CACHE);
72 
75 void deinitialize();
76 
77 } // namespace CUDF_EXPORT cudf
constexpr string_character_types operator|(string_character_types lhs, string_character_types rhs)
OR operator for combining string_character_types.
cuDF interfaces
Definition: host_udf.hpp:26
constexpr bool has_flag(init_flags flags, init_flags flag) noexcept
Check if a flag is set.
Definition: context.hpp:62
constexpr init_flags operator~(init_flags flags) noexcept
Bitwise NOT operator for init_flags.
Definition: context.hpp:51
constexpr init_flags operator&(init_flags lhs, init_flags rhs) noexcept
Bitwise AND operator for init_flags.
Definition: context.hpp:41
void deinitialize()
de-initialize the cudf global context
void initialize(init_flags flags=init_flags::INIT_JIT_CACHE)
Initialize the cudf global context.
init_flags
Flags for controlling initialization steps.
Definition: context.hpp:16
@ ALL
All initialization steps (default behavior)
@ INIT_JIT_CACHE
Initialize the JIT program cache during initialization.
@ LOAD_NVCOMP
Load the nvCOMP library during initialization.