SObjectizer
5.5
|
Interface for dispatcher binders. More...
#include <disp_binder.hpp>
Public Member Functions | |
disp_binder_t ()=default | |
virtual | ~disp_binder_t () noexcept=default |
virtual void | preallocate_resources (agent_t &agent)=0 |
Allocate resources in dispatcher for new agent. More... | |
virtual void | undo_preallocation (agent_t &agent) noexcept=0 |
Undo resources allocation. More... | |
virtual void | bind (agent_t &agent) noexcept=0 |
Bind agent to dispatcher. More... | |
virtual void | unbind (agent_t &agent) noexcept=0 |
Unbind agent from dispatcher. More... | |
Private Member Functions | |
disp_binder_t (const disp_binder_t &)=delete | |
disp_binder_t (disp_binder_t &&)=delete | |
disp_binder_t & | operator= (const disp_binder_t &)=delete |
disp_binder_t & | operator= (disp_binder_t &&)=delete |
Interface for dispatcher binders.
Dispatcher binders are used in the agent registration process to binding of agents to desired dispatchers.
|
privatedelete |
|
privatedelete |
|
default |
|
virtualdefaultnoexcept |
|
pure virtualnoexcept |
Bind agent to dispatcher.
This method will be called after preallocate_resources().
The dispatcher should use resources created during preallocate_resources() call. Because of that this method must not throw.
agent | Agent for that previous preallocate_resources() was called. |
Implemented in so_5::env_infrastructures::st_reusable_stuff::default_dispatcher_basis_t< Event_Queue_Type >, so_5::disp::one_thread::impl::actual_dispatcher_t< Work_Thread >, so_5::disp::active_group::impl::actual_binder_t, so_5::disp::active_obj::impl::dispatcher_template_t< Work_Thread >, so_5::disp::prio_one_thread::quoted_round_robin::impl::dispatcher_template_t< Work_Thread >, so_5::disp::prio_dedicated_threads::one_per_prio::impl::dispatcher_template_t< Work_Thread >, so_5::disp::prio_one_thread::strictly_ordered::impl::dispatcher_template_t< Work_Thread >, so_5::disp::thread_pool::impl::actual_binder_t, and so_5::disp::adv_thread_pool::impl::actual_binder_t.
|
privatedelete |
|
privatedelete |
|
pure virtual |
Allocate resources in dispatcher for new agent.
This method can and should throw on failure.
agent | Agent to be bound. |
Implemented in so_5::env_infrastructures::st_reusable_stuff::default_dispatcher_basis_t< Event_Queue_Type >, so_5::disp::one_thread::impl::actual_dispatcher_t< Work_Thread >, so_5::disp::active_group::impl::actual_binder_t, so_5::disp::active_obj::impl::dispatcher_template_t< Work_Thread >, so_5::disp::prio_one_thread::quoted_round_robin::impl::dispatcher_template_t< Work_Thread >, so_5::disp::prio_dedicated_threads::one_per_prio::impl::dispatcher_template_t< Work_Thread >, so_5::disp::prio_one_thread::strictly_ordered::impl::dispatcher_template_t< Work_Thread >, so_5::disp::thread_pool::impl::actual_binder_t, and so_5::disp::adv_thread_pool::impl::actual_binder_t.
|
pure virtualnoexcept |
Unbind agent from dispatcher.
This method will be called after bind() method.
This method can't throw.
agent | Agent for that previous bind() was called. |
Implemented in so_5::env_infrastructures::st_reusable_stuff::default_dispatcher_basis_t< Event_Queue_Type >, so_5::disp::one_thread::impl::actual_dispatcher_t< Work_Thread >, so_5::disp::active_obj::impl::dispatcher_template_t< Work_Thread >, so_5::disp::active_group::impl::actual_binder_t, so_5::disp::prio_one_thread::quoted_round_robin::impl::dispatcher_template_t< Work_Thread >, so_5::disp::prio_dedicated_threads::one_per_prio::impl::dispatcher_template_t< Work_Thread >, so_5::disp::prio_one_thread::strictly_ordered::impl::dispatcher_template_t< Work_Thread >, so_5::disp::thread_pool::impl::actual_binder_t, and so_5::disp::adv_thread_pool::impl::actual_binder_t.
|
pure virtualnoexcept |
Undo resources allocation.
This method will be called after preallocate_resources() if cooperation can't be registered by some reasons.
This method can't throw.
agent | Agent for that previous preallocate_resources() was called. |
Implemented in so_5::env_infrastructures::st_reusable_stuff::default_dispatcher_basis_t< Event_Queue_Type >, so_5::disp::one_thread::impl::actual_dispatcher_t< Work_Thread >, so_5::disp::active_group::impl::actual_binder_t, so_5::disp::active_obj::impl::dispatcher_template_t< Work_Thread >, so_5::disp::prio_one_thread::quoted_round_robin::impl::dispatcher_template_t< Work_Thread >, so_5::disp::prio_dedicated_threads::one_per_prio::impl::dispatcher_template_t< Work_Thread >, so_5::disp::prio_one_thread::strictly_ordered::impl::dispatcher_template_t< Work_Thread >, so_5::disp::thread_pool::impl::actual_binder_t, and so_5::disp::adv_thread_pool::impl::actual_binder_t.