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
, 7u
, 3u
) 13 #error "SObjectizer-5.7.3 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 143 current_thread_id_t thread_id )
174 struct disp_ds_name_parts_t
final 193 template<
typename Activity_Tracker >
207 outliving_reference_t< environment_t > env,
208 outliving_reference_t< event_queue_impl_t<Activity_Tracker> > event_queue,
209 outliving_reference_t< Activity_Tracker > activity_tracker )
233 template<
typename Activity_Tracker >
240 outliving_reference_t<::asio::io_context> io_svc,
244 coop_listener_unique_ptr_t coop_listener,
246 mbox_t stats_distribution_mbox );
249 launch( env_init_t init_fn )
override;
266 coop_shptr_t coop )
noexcept override;
270 coop_shptr_t coop_name )
override;
282 const std::type_index & type_wrapper,
283 const message_ref_t & msg,
285 std::chrono::steady_clock::duration pause )
override;
358 template<
typename Activity_Tracker >
360 outliving_reference_t<::asio::io_context> io_svc,
362 coop_listener_unique_ptr_t coop_listener,
363 mbox_t stats_distribution_mbox )
375 template<
typename Activity_Tracker >
401 template<
typename Activity_Tracker >
433 template<
typename Activity_Tracker >
444 template<
typename Activity_Tracker >
452 template<
typename Activity_Tracker >
455 coop_shptr_t coop_to_dereg )
noexcept 466 template<
typename Activity_Tracker >
475 template<
typename Activity_Tracker >
523 template<
typename Activity_Tracker >
526 const std::type_index & type_index,
527 const message_ref_t & msg,
529 std::chrono::steady_clock::duration pause )
547 template<
typename Activity_Tracker >
554 template<
typename Activity_Tracker >
561 template<
typename Activity_Tracker >
574 template<
typename Activity_Tracker >
583 template<
typename Activity_Tracker >
590 template<
typename Activity_Tracker >
623 template<
typename Activity_Tracker >
674 using namespace impl;
678 environment_params_t & env_params,
679 mbox_t stats_distribution_mbox )
681 environment_infrastructure_t * obj =
nullptr;
685 const auto tracking = env_params.work_thread_activity_tracking();
686 if( work_thread_activity_tracking_t::on == tracking )
687 obj =
new env_infrastructure_t< reusable::real_activity_tracker_t >(
688 outliving_mutable(io_svc),
690 env_params.so5_giveout_coop_listener(),
691 std::move(stats_distribution_mbox) );
693 obj =
new env_infrastructure_t< reusable::fake_activity_tracker_t >(
694 outliving_mutable(io_svc),
696 env_params.so5_giveout_coop_listener(),
697 std::move(stats_distribution_mbox) );
699 return environment_infrastructure_unique_ptr_t(
701 environment_infrastructure_t::default_deleter() );
Ranges for error codes of each submodules.