ThreadSchedule 3.0.0
Modern C++ thread management library
Loading...
Searching...
No Matches
threadschedule::detail::submitting_pool_facade< Backend > Class Template Reference

#include <facade.hpp>

Inheritance diagram for threadschedule::detail::submitting_pool_facade< Backend >:
[legend]

Public Member Functions

 submitting_pool_facade (worker_count count, worker_registration registration)
 
 submitting_pool_facade (submitting_pool_facade const &)=delete
 
auto operator= (submitting_pool_facade const &) -> submitting_pool_facade &=delete
 
 submitting_pool_facade (submitting_pool_facade &&other) noexcept
 
auto operator= (submitting_pool_facade &&other) noexcept -> submitting_pool_facade &
 
template<typename F , typename... Args>
auto submit (F &&function, Args &&... args) -> result< std::future< bind_result_t< F, Args... > > >
 
template<typename F , typename... Args>
auto submit_or_throw (F &&function, Args &&... args) -> std::future< bind_result_t< F, Args... > >
 
template<typename F , typename... Args>
auto post (F &&function, Args &&... args) -> result< void >
 
template<typename F , typename... Args>
void post_or_throw (F &&function, Args &&... args)
 
template<typename Iterator >
auto submit_batch (Iterator begin, Iterator end) -> result< std::vector< std::future< void > > >
 
template<typename Iterator >
auto submit_batch_or_throw (Iterator begin, Iterator end) -> std::vector< std::future< void > >
 
template<typename Iterator , typename Function >
auto parallel_for_each (Iterator begin, Iterator end, Function &&function) -> result< void >
 
auto wait () -> result< void >
 
auto configure_workers (thread_config const &config) -> result< void >
 
auto distribute_workers () -> result< void >
 
auto shutdown (shutdown_policy policy=shutdown_policy::drain) -> result< void >
 
auto shutdown_for (std::chrono::milliseconds timeout) -> result< bool >
 
auto size () const noexcept -> std::size_t
 
auto pending_tasks () const -> std::size_t
 
auto is_current_worker () const noexcept -> bool
 
auto get_statistics () const -> pool_statistics
 

Protected Member Functions

 ~submitting_pool_facade ()
 

Detailed Description

template<typename Backend>
class threadschedule::detail::submitting_pool_facade< Backend >

Definition at line 96 of file pool/facade.hpp.

Constructor & Destructor Documentation

◆ submitting_pool_facade() [1/3]

template<typename Backend >
threadschedule::detail::submitting_pool_facade< Backend >::submitting_pool_facade ( worker_count  count,
worker_registration  registration 
)
inlineexplicit

Definition at line 99 of file pool/facade.hpp.

◆ submitting_pool_facade() [2/3]

template<typename Backend >
threadschedule::detail::submitting_pool_facade< Backend >::submitting_pool_facade ( submitting_pool_facade< Backend > const &  )
delete

◆ submitting_pool_facade() [3/3]

template<typename Backend >
threadschedule::detail::submitting_pool_facade< Backend >::submitting_pool_facade ( submitting_pool_facade< Backend > &&  other)
inlinenoexcept

Definition at line 106 of file pool/facade.hpp.

◆ ~submitting_pool_facade()

template<typename Backend >
threadschedule::detail::submitting_pool_facade< Backend >::~submitting_pool_facade ( )
inlineprotected

Definition at line 274 of file pool/facade.hpp.

References threadschedule::detail::dispose_pool_backend().

Member Function Documentation

◆ configure_workers()

template<typename Backend >
auto threadschedule::detail::submitting_pool_facade< Backend >::configure_workers ( thread_config const &  config) -> result<void>
inline

◆ distribute_workers()

template<typename Backend >
auto threadschedule::detail::submitting_pool_facade< Backend >::distribute_workers ( ) -> result<void>
inline

Definition at line 212 of file pool/facade.hpp.

References threadschedule::detail::try_result().

◆ get_statistics()

template<typename Backend >
auto threadschedule::detail::submitting_pool_facade< Backend >::get_statistics ( ) const -> pool_statistics
inline

Definition at line 259 of file pool/facade.hpp.

References threadschedule::pool_statistics::total_threads.

◆ is_current_worker()

template<typename Backend >
auto threadschedule::detail::submitting_pool_facade< Backend >::is_current_worker ( ) const -> bool
inlinenoexcept

Definition at line 253 of file pool/facade.hpp.

◆ operator=() [1/2]

template<typename Backend >
auto threadschedule::detail::submitting_pool_facade< Backend >::operator= ( submitting_pool_facade< Backend > &&  other) -> submitting_pool_facade&
inlinenoexcept

◆ operator=() [2/2]

template<typename Backend >
auto threadschedule::detail::submitting_pool_facade< Backend >::operator= ( submitting_pool_facade< Backend > const &  ) -> submitting_pool_facade &=delete
delete

◆ parallel_for_each()

template<typename Backend >
template<typename Iterator , typename Function >
auto threadschedule::detail::submitting_pool_facade< Backend >::parallel_for_each ( Iterator  begin,
Iterator  end,
Function &&  function 
) -> result<void>
inline

Definition at line 178 of file pool/facade.hpp.

References threadschedule::detail::try_result().

◆ pending_tasks()

template<typename Backend >
auto threadschedule::detail::submitting_pool_facade< Backend >::pending_tasks ( ) const -> std::size_t
inline

Definition at line 247 of file pool/facade.hpp.

◆ post()

template<typename Backend >
template<typename F , typename... Args>
auto threadschedule::detail::submitting_pool_facade< Backend >::post ( F &&  function,
Args &&...  args 
) -> result<void>
inline

◆ post_or_throw()

template<typename Backend >
template<typename F , typename... Args>
void threadschedule::detail::submitting_pool_facade< Backend >::post_or_throw ( F &&  function,
Args &&...  args 
)
inline

◆ shutdown()

template<typename Backend >
auto threadschedule::detail::submitting_pool_facade< Backend >::shutdown ( shutdown_policy  policy = shutdown_policy::drain) -> result<void>
inline

◆ shutdown_for()

template<typename Backend >
auto threadschedule::detail::submitting_pool_facade< Backend >::shutdown_for ( std::chrono::milliseconds  timeout) -> result<bool>
inline

Definition at line 233 of file pool/facade.hpp.

References threadschedule::detail::try_result().

◆ size()

template<typename Backend >
auto threadschedule::detail::submitting_pool_facade< Backend >::size ( ) const -> std::size_t
inlinenoexcept

Definition at line 241 of file pool/facade.hpp.

◆ submit()

template<typename Backend >
template<typename F , typename... Args>
auto threadschedule::detail::submitting_pool_facade< Backend >::submit ( F &&  function,
Args &&...  args 
) -> result<std::future<bind_result_t<F, Args...>>>
inline

◆ submit_batch()

template<typename Backend >
template<typename Iterator >
auto threadschedule::detail::submitting_pool_facade< Backend >::submit_batch ( Iterator  begin,
Iterator  end 
) -> result<std::vector<std::future<void>>>
inline

◆ submit_batch_or_throw()

template<typename Backend >
template<typename Iterator >
auto threadschedule::detail::submitting_pool_facade< Backend >::submit_batch_or_throw ( Iterator  begin,
Iterator  end 
) -> std::vector<std::future<void>>
inline

◆ submit_or_throw()

template<typename Backend >
template<typename F , typename... Args>
auto threadschedule::detail::submitting_pool_facade< Backend >::submit_or_throw ( F &&  function,
Args &&...  args 
) -> std::future<bind_result_t<F, Args...>>
inline

◆ wait()

template<typename Backend >
auto threadschedule::detail::submitting_pool_facade< Backend >::wait ( ) -> result<void>
inline

Definition at line 191 of file pool/facade.hpp.

References threadschedule::detail::try_result().


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