9 #include <so_5_extra/env_infrastructures/asio/impl/common.hpp> 11 #include <so_5/impl/st_env_infrastructure_reuse.hpp> 12 #include <so_5/impl/internal_env_iface.hpp> 13 #include <so_5/details/sync_helpers.hpp> 14 #include <so_5/details/at_scope_exit.hpp> 15 #include <so_5/details/invoke_noexcept_code.hpp> 19 #include <string_view> 71 template<
typename Activity_Tracker >
87 outliving_reference_t<::asio::io_context> io_svc,
89 outliving_reference_t<Activity_Tracker> activity_tracker )
97 push( execution_demand_t demand )
override 138 current_thread_id_t thread_id )
169 struct disp_ds_name_parts_t
final 188 template<
typename Activity_Tracker >
202 outliving_reference_t< environment_t > env,
203 outliving_reference_t< event_queue_impl_t<Activity_Tracker> > event_queue,
204 outliving_reference_t< Activity_Tracker > activity_tracker )
228 template<
typename Activity_Tracker >
235 outliving_reference_t<::asio::io_context> io_svc,
239 coop_listener_unique_ptr_t coop_listener,
241 mbox_t stats_distribution_mbox );
244 launch( env_init_t init_fn )
override;
261 coop_shptr_t coop )
noexcept override;
265 coop_shptr_t coop_name )
override;
277 const std::type_index & type_wrapper,
278 const message_ref_t & msg,
280 std::chrono::steady_clock::duration pause )
override;
353 template<
typename Activity_Tracker >
355 outliving_reference_t<::asio::io_context> io_svc,
357 coop_listener_unique_ptr_t coop_listener,
358 mbox_t stats_distribution_mbox )
370 template<
typename Activity_Tracker >
396 template<
typename Activity_Tracker >
428 template<
typename Activity_Tracker >
439 template<
typename Activity_Tracker >
447 template<
typename Activity_Tracker >
450 coop_shptr_t coop_to_dereg )
noexcept 461 template<
typename Activity_Tracker >
470 template<
typename Activity_Tracker >
518 template<
typename Activity_Tracker >
521 const std::type_index & type_index,
522 const message_ref_t & msg,
524 std::chrono::steady_clock::duration pause )
542 template<
typename Activity_Tracker >
549 template<
typename Activity_Tracker >
556 template<
typename Activity_Tracker >
569 template<
typename Activity_Tracker >
578 template<
typename Activity_Tracker >
585 template<
typename Activity_Tracker >
618 template<
typename Activity_Tracker >
669 using namespace impl;
673 environment_params_t & env_params,
674 mbox_t stats_distribution_mbox )
676 environment_infrastructure_t * obj =
nullptr;
680 const auto tracking = env_params.work_thread_activity_tracking();
681 if( work_thread_activity_tracking_t::on == tracking )
682 obj =
new env_infrastructure_t< reusable::real_activity_tracker_t >(
683 outliving_mutable(io_svc),
685 env_params.so5__giveout_coop_listener(),
686 std::move(stats_distribution_mbox) );
688 obj =
new env_infrastructure_t< reusable::fake_activity_tracker_t >(
689 outliving_mutable(io_svc),
691 env_params.so5__giveout_coop_listener(),
692 std::move(stats_distribution_mbox) );
694 return environment_infrastructure_unique_ptr_t(
696 environment_infrastructure_t::default_deleter() );
Ranges for error codes of each submodules.