SObjectizer-5 Extra
Loading...
Searching...
No Matches
pub.hpp File Reference

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

#include <so_5_extra/error_ranges.hpp>
#include <so_5/disp_binder.hpp>
#include <so_5/send_functions.hpp>
#include <so_5/disp/reuse/actual_work_thread_factory_to_use.hpp>
#include <so_5/disp/reuse/work_thread_activity_tracking.hpp>
#include <so_5/disp/reuse/data_source_prefix_helpers.hpp>
#include <so_5/disp/reuse/work_thread_factory_params.hpp>
#include <so_5/stats/repository.hpp>
#include <so_5/stats/messages.hpp>
#include <so_5/stats/std_names.hpp>
#include <so_5/stats/impl/activity_tracking.hpp>
#include <so_5/details/invoke_noexcept_code.hpp>
#include <so_5/details/rollback_on_exception.hpp>
#include <so_5/details/abort_on_fatal_error.hpp>
#include <so_5/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::impl::basic_dispatcher_iface_t
 The very basic interface of asio_thread_pool dispatcher. More...
 
class  so_5::extra::disp::asio_thread_pool::dispatcher_handle_t
 A handle for asio_thread_pool dispatcher. More...
 
class  so_5::extra::disp::asio_thread_pool::impl::actual_dispatcher_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_binder_impl_t
 Basic part of implementation of a binder for asio_thread_pool dispatcher. More...
 
class  so_5::extra::disp::asio_thread_pool::impl::binder_template_t< Derived >
 An implementation of a binder for asio_thread_pool dispatcher. More...
 
class  so_5::extra::disp::asio_thread_pool::impl::binder_with_external_strand_t
 An implementation of binder that uses an external strand object. More...
 
class  so_5::extra::disp::asio_thread_pool::impl::binder_with_own_strand_t
 An implementation of binder that uses an own strand object. 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::dispatcher_handle_maker_t
 
struct  so_5::extra::disp::asio_thread_pool::default_traits_t
 Default traits of asio_thread_pool dispatcher. More...
 

Namespaces

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

Typedefs

using so_5::extra::disp::asio_thread_pool::impl::basic_dispatcher_iface_shptr_t
 
using so_5::extra::disp::asio_thread_pool::impl::actual_dispatcher_shptr_t
 

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.
 
template<typename Traits = default_traits_t>
dispatcher_handle_t so_5::extra::disp::asio_thread_pool::make_dispatcher (environment_t &env, const std::string_view data_sources_name_base, disp_params_t disp_params)
 A function for creation an instance of asio_thread_pool dispatcher.
 

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.
 

Detailed Description

Implementation of Asio's Thread Pool dispatcher.

Since
v.1.0.2

Definition in file pub.hpp.