8#ifndef NUMAPP_NUMAPOLICIES_HPP_
9#define NUMAPP_NUMAPOLICIES_HPP_
39std::error_code
Apply(NumaPolicies
const& policies)
noexcept;
51 NumaPolicies()
noexcept =
default;
52 NumaPolicies(
MemPolicy const& policy) : m_mempolicy(policy) {};
53 NumaPolicies(
CpuAffinity const& policy) : m_affinity(policy) {};
54 NumaPolicies(
Scheduler const& policy) : m_scheduler(policy) {};
55 NumaPolicies(NumaPolicies&&)
noexcept =
default;
56 NumaPolicies& operator=(NumaPolicies&&)
noexcept =
default;
58 NumaPolicies(NumaPolicies
const& rhs) =
default;
59 NumaPolicies& operator=(NumaPolicies
const& rhs)
noexcept =
default;
64 inline void SetCpuAffinity(std::optional<CpuAffinity> affinity)
noexcept;
74 inline void SwapCpuAffinity(std::optional<CpuAffinity>& affinity)
noexcept;
79 inline void SetScheduler(std::optional<Scheduler> scheduler)
noexcept;
84 inline std::optional<Scheduler>
GetScheduler()
const noexcept;
89 inline void SwapScheduler(std::optional<Scheduler>& scheduler)
noexcept;
94 inline void SetMemPolicy(std::optional<MemPolicy> policy)
noexcept;
100 inline std::optional<MemPolicy>
GetMemPolicy()
const noexcept;
105 inline void SwapMemPolicy(std::optional<MemPolicy>& mempol) noexcept ;
108 std::optional<CpuAffinity> m_affinity;
109 std::optional<MemPolicy> m_mempolicy;
110 std::optional<Scheduler> m_scheduler;
115 m_affinity.swap(affinity);
123 m_affinity.swap(affinity);
127 m_scheduler.swap(scheduler);
135 m_scheduler.swap(scheduler);
139 m_mempolicy.swap(policy);
147 m_mempolicy.swap(mempol);
157std::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.