9 #include <so_5_extra/env_infrastructures/asio/impl/common.hpp> 11 #include <so_5/version.hpp> 12 #if SO_5_VERSION < SO_5_VERSION_MAKE(5u
, 8u
, 0u
) 13 #error "SObjectizer-5.8.0 is required" 16 #include <so_5/impl/st_env_infrastructure_reuse.hpp> 17 #include <so_5/impl/internal_env_iface.hpp> 18 #include <so_5/details/sync_helpers.hpp> 19 #include <so_5/details/at_scope_exit.hpp> 20 #include <so_5/details/invoke_noexcept_code.hpp> 24 #include <string_view> 76 template<
typename Activity_Tracker >
92 outliving_reference_t<::asio::io_context> io_svc,
94 outliving_reference_t<Activity_Tracker> activity_tracker )
102 push( execution_demand_t demand )
override 158 current_thread_id_t thread_id )
189 struct disp_ds_name_parts_t
final 208 template<
typename Activity_Tracker >
222 outliving_reference_t< environment_t > env,
223 outliving_reference_t< event_queue_impl_t<Activity_Tracker> > event_queue,
224 outliving_reference_t< Activity_Tracker > activity_tracker )
248 template<
typename Activity_Tracker >
255 outliving_reference_t<::asio::io_context> io_svc,
259 coop_listener_unique_ptr_t coop_listener,
261 mbox_t stats_distribution_mbox );
264 launch( env_init_t init_fn )
override;
293 coop_shptr_t coop )
noexcept override;
297 coop_shptr_t coop_name )
noexcept override;
309 const std::type_index & type_wrapper,
310 const message_ref_t & msg,
312 std::chrono::steady_clock::duration pause )
override;
385 template<
typename Activity_Tracker >
387 outliving_reference_t<::asio::io_context> io_svc,
389 coop_listener_unique_ptr_t coop_listener,
390 mbox_t stats_distribution_mbox )
402 template<
typename Activity_Tracker >
428 template<
typename Activity_Tracker >
455 template<
typename Activity_Tracker >
466 template<
typename Activity_Tracker >
474 template<
typename Activity_Tracker >
477 coop_shptr_t coop_to_dereg )
noexcept 488 template<
typename Activity_Tracker >
491 coop_shptr_t coop )
noexcept 497 template<
typename Activity_Tracker >
545 template<
typename Activity_Tracker >
548 const std::type_index & type_index,
549 const message_ref_t & msg,
551 std::chrono::steady_clock::duration pause )
569 template<
typename Activity_Tracker >
576 template<
typename Activity_Tracker >
583 template<
typename Activity_Tracker >
596 template<
typename Activity_Tracker >
605 template<
typename Activity_Tracker >
612 template<
typename Activity_Tracker >
645 template<
typename Activity_Tracker >
696 using namespace impl;
700 environment_params_t & env_params,
701 mbox_t stats_distribution_mbox )
703 environment_infrastructure_t * obj =
nullptr;
707 const auto tracking = env_params.work_thread_activity_tracking();
708 if( work_thread_activity_tracking_t::on == tracking )
709 obj =
new env_infrastructure_t< reusable::real_activity_tracker_t >(
710 outliving_mutable(io_svc),
712 env_params.so5_giveout_coop_listener(),
713 std::move(stats_distribution_mbox) );
715 obj =
new env_infrastructure_t< reusable::fake_activity_tracker_t >(
716 outliving_mutable(io_svc),
718 env_params.so5_giveout_coop_listener(),
719 std::move(stats_distribution_mbox) );
721 return environment_infrastructure_unique_ptr_t(
723 environment_infrastructure_t::default_deleter() );
Ranges for error codes of each submodules.