ThreadSchedule 1.0.0
Modern C++ thread management library
Loading...
Searching...
No Matches
threadschedule::ThreadWrapper Class Reference

Enhanced std::thread wrapper. More...

#include <thread_wrapper.hpp>

Inheritance diagram for threadschedule::ThreadWrapper:
[legend]
Collaboration diagram for threadschedule::ThreadWrapper:
[legend]

Public Member Functions

 ThreadWrapper (std::thread &&t) noexcept
template<typename F, typename... Args>
 ThreadWrapper (F &&f, Args &&... args)
 ThreadWrapper (ThreadWrapper const &)=delete
auto operator= (ThreadWrapper const &) -> ThreadWrapper &=delete
 ThreadWrapper (ThreadWrapper &&other) noexcept
auto operator= (ThreadWrapper &&other) noexcept -> ThreadWrapper &
auto release () noexcept -> std::thread
 operator std::thread () &&noexcept
Public Member Functions inherited from threadschedule::BaseThreadWrapper< std::thread, detail::OwningTag >
void join ()
void detach ()
auto joinable () const noexcept -> bool
auto get_id () const noexcept -> id
auto native_handle () noexcept -> native_handle_type
auto set_name (std::string const &name) -> expected< void, std::error_code >
auto get_name () const -> std::optional< std::string >
auto set_priority (ThreadPriority priority) -> expected< void, std::error_code >
auto set_scheduling_policy (SchedulingPolicy policy, ThreadPriority priority) -> expected< void, std::error_code >
auto set_affinity (ThreadAffinity const &affinity) -> expected< void, std::error_code >
auto get_affinity () const -> std::optional< ThreadAffinity >

Static Public Member Functions

template<typename F, typename... Args>
static auto create_with_config (std::string const &name, SchedulingPolicy policy, ThreadPriority priority, F &&f, Args &&... args) -> ThreadWrapper
Static Public Member Functions inherited from threadschedule::BaseThreadWrapper< std::thread, detail::OwningTag >
static auto set_nice_value (int nice_value) -> bool
static auto get_nice_value () -> std::optional< int >

Additional Inherited Members

Public Types inherited from threadschedule::BaseThreadWrapper< std::thread, detail::OwningTag >
using native_handle_type
using id

Detailed Description

Enhanced std::thread wrapper.

Definition at line 433 of file thread_wrapper.hpp.

Constructor & Destructor Documentation

◆ ThreadWrapper() [1/3]

threadschedule::ThreadWrapper::ThreadWrapper ( std::thread && t)
inlinenoexcept

Definition at line 439 of file thread_wrapper.hpp.

◆ ThreadWrapper() [2/3]

template<typename F, typename... Args>
threadschedule::ThreadWrapper::ThreadWrapper ( F && f,
Args &&... args )
inlineexplicit

Definition at line 445 of file thread_wrapper.hpp.

◆ ThreadWrapper() [3/3]

threadschedule::ThreadWrapper::ThreadWrapper ( ThreadWrapper && other)
inlinenoexcept

Definition at line 453 of file thread_wrapper.hpp.

◆ ~ThreadWrapper()

threadschedule::ThreadWrapper::~ThreadWrapper ( )
inlineoverride

Definition at line 471 of file thread_wrapper.hpp.

Member Function Documentation

◆ create_with_config()

template<typename F, typename... Args>
auto threadschedule::ThreadWrapper::create_with_config ( std::string const & name,
SchedulingPolicy policy,
ThreadPriority priority,
F && f,
Args &&... args ) -> ThreadWrapper
inlinestatic

Definition at line 492 of file thread_wrapper.hpp.

◆ operator std::thread()

threadschedule::ThreadWrapper::operator std::thread ( ) &&
inlineexplicitnoexcept

Definition at line 485 of file thread_wrapper.hpp.

◆ operator=()

auto threadschedule::ThreadWrapper::operator= ( ThreadWrapper && other) -> ThreadWrapper&
inlinenoexcept

Definition at line 458 of file thread_wrapper.hpp.

◆ release()

auto threadschedule::ThreadWrapper::release ( ) -> std::thread
inlinenoexcept

Definition at line 480 of file thread_wrapper.hpp.


The documentation for this class was generated from the following file: