SObjectizer-5 Extra
Classes | Namespaces | Typedefs | Functions | Variables
pub.hpp File Reference

Implementation of Asio's Thread Pool dispatcher. More...

#include <so_5_extra/error_ranges.hpp>
#include <so_5/rt/h/disp_binder.hpp>
#include <so_5/rt/h/send_functions.hpp>
#include <so_5/disp/reuse/h/work_thread_activity_tracking.hpp>
#include <so_5/disp/reuse/h/disp_binder_helpers.hpp>
#include <so_5/disp/reuse/h/data_source_prefix_helpers.hpp>
#include <so_5/rt/stats/h/repository.hpp>
#include <so_5/rt/stats/h/messages.hpp>
#include <so_5/rt/stats/h/std_names.hpp>
#include <so_5/rt/stats/impl/h/activity_tracking.hpp>
#include <so_5/details/h/invoke_noexcept_code.hpp>
#include <so_5/details/h/rollback_on_exception.hpp>
#include <so_5/details/h/abort_on_fatal_error.hpp>
#include <so_5/h/outliving.hpp>
#include <asio/io_context.hpp>
#include <asio/io_context_strand.hpp>
#include <asio/post.hpp>

Go to the source code of this file.

Classes

class  so_5::extra::disp::asio_thread_pool::disp_params_t
 Parameters for asio_thread_pool dispatcher. More...
 
class  so_5::extra::disp::asio_thread_pool::private_dispatcher_t
 An interface for asio_thread_pool private dispatcher. More...
 
class  so_5::extra::disp::asio_thread_pool::impl::actual_disp_iface_t
 An actual interface of thread pool dispatcher. More...
 
class  so_5::extra::disp::asio_thread_pool::impl::thread_local_ptr_holder_t< T >
 A helper for declaration of static and thread_local pointer in a header file. More...
 
class  so_5::extra::disp::asio_thread_pool::impl::work_thread_t
 Base type for implementations of work thread wrappers. More...
 
class  so_5::extra::disp::asio_thread_pool::impl::work_thread_without_activity_tracking_t
 An implementation of work thread stuff for the case when thread activity tracking is not needed. More...
 
class  so_5::extra::disp::asio_thread_pool::impl::work_thread_activity_collector_t
 Type of collector of work thread activity data. More...
 
class  so_5::extra::disp::asio_thread_pool::impl::work_thread_with_activity_tracking_t
 An implementation of work thread stuff for the case when thread activity tracking must be used. More...
 
class  so_5::extra::disp::asio_thread_pool::impl::basic_dispatcher_skeleton_t
 Basic stuff for all implementations of dispatcher. More...
 
class  so_5::extra::disp::asio_thread_pool::impl::basic_dispatcher_skeleton_t::disp_data_source_t
 Data source for run-time monitoring of whole dispatcher. More...
 
class  so_5::extra::disp::asio_thread_pool::impl::dispatcher_skeleton_without_thread_activity_tracking_t
 Extension of basic dispatcher skeleton for the case when work thread activity is not collected. More...
 
class  so_5::extra::disp::asio_thread_pool::impl::dispatcher_skeleton_with_thread_activity_tracking_t
 Extension of basic dispatcher skeleton for the case when work thread activity must be collected. More...
 
class  so_5::extra::disp::asio_thread_pool::impl::dispatcher_skeleton_with_thread_activity_tracking_t::actual_disp_data_source_t
 Actual data source type for dispatcher with work thread activity tracking. More...
 
class  so_5::extra::disp::asio_thread_pool::impl::dispatcher_template_t< Traits, Basic_Skeleton >
 Template-based implementation of dispatcher. More...
 
class  so_5::extra::disp::asio_thread_pool::impl::pseudo_event_queue_t
 An implementation of event_queue concept for the case of asio_thread_pool dispatcher. More...
 
class  so_5::extra::disp::asio_thread_pool::impl::binding_actions_mixin_t
 Implementation of binding actions to be reused in various binder implementation. More...
 
class  so_5::extra::disp::asio_thread_pool::impl::real_private_dispatcher_t< Traits, Basic_Skeleton >
 A real implementation of private_dispatcher interface. More...
 
struct  so_5::extra::disp::asio_thread_pool::default_traits_t
 Default traits of asio_thread_pool dispatcher. More...
 

Namespaces

 so_5
 Ranges for error codes of each submodules.
 
 so_5::extra
 
 so_5::extra::disp
 
 so_5::extra::disp::asio_thread_pool
 
 so_5::extra::disp::asio_thread_pool::errors
 
 so_5::extra::disp::asio_thread_pool::impl
 

Typedefs

using so_5::extra::disp::asio_thread_pool::private_dispatcher_handle_t = ::so_5::intrusive_ptr_t< private_dispatcher_t >
 A handle for the asio_thread_pool private dispatcher. More...
 
using so_5::extra::disp::asio_thread_pool::impl::demands_counter_t = std::atomic< std::size_t >
 Type of atomic counter for counting waiting demands. More...
 
using so_5::extra::disp::asio_thread_pool::impl::private_dispatcher_binder_t = ::so_5::disp::reuse::binder_for_private_disp_template_t< private_dispatcher_handle_t, actual_disp_iface_t, binding_actions_mixin_t >
 A binder for the private asio_thread_pool dispatcher. More...
 

Functions

std::size_t so_5::extra::disp::asio_thread_pool::default_thread_pool_size ()
 A helper function for detecting default thread count for thread pool. More...
 
template<typename Traits = default_traits_t>
private_dispatcher_handle_t so_5::extra::disp::asio_thread_pool::create_private_disp (environment_t &env, const std::string &data_sources_name_base, disp_params_t disp_params)
 A function for creation an instance of private dispatcher. More...
 

Variables

const int so_5::extra::disp::asio_thread_pool::errors::rc_io_context_is_not_set
 Asio IoService is not set for asio_thread_pool dispatcher. More...
 

Detailed Description

Implementation of Asio's Thread Pool dispatcher.

Since
v.1.0.2

Definition in file pub.hpp.