10#ifndef NUMAPP_NUMAPOLICIES_HPP_
11#define NUMAPP_NUMAPOLICIES_HPP_
41std::error_code
Apply(NumaPolicies
const& policies)
noexcept;
53 NumaPolicies()
noexcept =
default;
54 NumaPolicies(
MemPolicy const& policy) : m_mempolicy(policy) {};
55 NumaPolicies(
CpuAffinity const& policy) : m_affinity(policy) {};
56 NumaPolicies(
Scheduler const& policy) : m_scheduler(policy) {};
57 NumaPolicies(NumaPolicies&&)
noexcept =
default;
58 NumaPolicies& operator=(NumaPolicies&&)
noexcept =
default;
60 NumaPolicies(NumaPolicies
const& rhs) =
default;
61 NumaPolicies& operator=(NumaPolicies
const& rhs)
noexcept =
default;
66 inline void SetCpuAffinity(std::optional<CpuAffinity> affinity)
noexcept;
76 inline void SwapCpuAffinity(std::optional<CpuAffinity>& affinity)
noexcept;
81 inline void SetScheduler(std::optional<Scheduler> scheduler)
noexcept;
86 inline std::optional<Scheduler>
GetScheduler()
const noexcept;
91 inline void SwapScheduler(std::optional<Scheduler>& scheduler)
noexcept;
96 inline void SetMemPolicy(std::optional<MemPolicy> policy)
noexcept;
102 inline std::optional<MemPolicy>
GetMemPolicy()
const noexcept;
107 inline void SwapMemPolicy(std::optional<MemPolicy>& mempol) noexcept ;
110 std::optional<CpuAffinity> m_affinity;
111 std::optional<MemPolicy> m_mempolicy;
112 std::optional<Scheduler> m_scheduler;
117 m_affinity.swap(affinity);
125 m_affinity.swap(affinity);
129 m_scheduler.swap(scheduler);
137 m_scheduler.swap(scheduler);
141 m_mempolicy.swap(policy);
149 m_mempolicy.swap(mempol);
159std::ostream& operator<<(std::ostream& os,
NumaPolicies const& policies);
Create CPU affinity and apply to current thread.
Class representing a memory policy that can be modified and used to apply to the current thread or a ...
Combines the the available NUMA policy types in one object.
void SwapScheduler(std::optional< Scheduler > &scheduler) noexcept
Swap scheduler.
void SwapMemPolicy(std::optional< MemPolicy > &mempol) noexcept
Swap memory policy.
void SetCpuAffinity(std::optional< CpuAffinity > affinity) noexcept
Set CPU affinity.
std::optional< MemPolicy > GetMemPolicy() const noexcept
Get memory policy.
std::optional< Scheduler > GetScheduler() const noexcept
Get scheduler.
std::optional< CpuAffinity > GetCpuAffinity() const noexcept
Get CPU affinity.
void SwapCpuAffinity(std::optional< CpuAffinity > &affinity) noexcept
Swap CPU affinity.
void SetMemPolicy(std::optional< MemPolicy > policy) noexcept
Set memory policy.
void SetScheduler(std::optional< Scheduler > scheduler) noexcept
Set scheduler.
A sum-type of all supported schedulers.
Contains declarations for CpuAffinity.
std::error_code Apply(CpuAffinity const &affinity) noexcept
Apply policy to calling thread.
Contains declarations for numapp::MemPolicy.
Contains scheduler declarations.