SObjectizer 5.8
Loading...
Searching...
No Matches
so_5::impl::internal_env_iface_t Class Reference

A helper class for accessing the functionality of environment-class which is specific for SObjectizer internals only. More...

#include <internal_env_iface.hpp>

Public Member Functions

 internal_env_iface_t (environment_t &env)
 Initializing constructor.
 
mbox_t create_ordinary_mpsc_mbox (agent_t &single_consumer)
 Create multi-producer/single-consumer mbox that handles message limits.
 
mbox_t create_limitless_mpsc_mbox (agent_t &single_consumer)
 Create multi-producer/single-consumer mbox that ignores message limits.
 
void ready_to_deregister_notify (coop_shptr_t coop) noexcept
 Notification about readiness to the deregistration.
 
void final_deregister_coop (coop_shptr_t coop) noexcept
 Do the final actions of a cooperation deregistration.
 
bool is_msg_tracing_enabled () const
 Is message delivery tracing enabled?
 
so_5::msg_tracing::holder_tmsg_tracing_stuff () const
 Get access to message delivery tracer stuff holder.
 
so_5::msg_tracing::holder_tmsg_tracing_stuff_nonchecked () const noexcept
 Get access to message delivery tracer stuff holder.
 
so_5::disp::mpsc_queue_traits::lock_factory_t default_mpsc_queue_lock_factory () const
 Get default lock_factory for MPSC queues.
 
so_5::disp::mpmc_queue_traits::lock_factory_t default_mpmc_queue_lock_factory () const
 Get default lock_factory for MPMC queues.
 
mbox_id_t allocate_mbox_id () noexcept
 Allocate a new ID for a new custom mbox or mchain.
 
subscription_storage_factory_t default_subscription_storage_factory () const noexcept(noexcept(subscription_storage_factory_t{}=subscription_storage_factory_t{}))
 Get the default storage subscription factory.
 
Methods for working with event_queue_hooks
event_queue_tevent_queue_on_bind (agent_t *agent, event_queue_t *original_queue) noexcept
 Call the event_queue_hook when an agent is being bound to a particular event_queue.
 
void event_queue_on_unbind (agent_t *agent, event_queue_t *queue) noexcept
 Call the event_queue_hook when an agent is being unbound from its event_queue.
 

Private Attributes

environment_tm_env
 Environment instance to work with.
 

Detailed Description

A helper class for accessing the functionality of environment-class which is specific for SObjectizer internals only.

Since
v.5.5.9

Definition at line 35 of file internal_env_iface.hpp.

Constructor & Destructor Documentation

◆ internal_env_iface_t()

so_5::impl::internal_env_iface_t::internal_env_iface_t ( environment_t & env)
inline

Initializing constructor.

Definition at line 42 of file internal_env_iface.hpp.

Member Function Documentation

◆ allocate_mbox_id()

mbox_id_t so_5::impl::internal_env_iface_t::allocate_mbox_id ( )
nodiscardnoexcept

Allocate a new ID for a new custom mbox or mchain.

Since
v.5.7.0

Definition at line 998 of file environment.cpp.

◆ create_limitless_mpsc_mbox()

mbox_t so_5::impl::internal_env_iface_t::create_limitless_mpsc_mbox ( agent_t & single_consumer)
nodiscard

Create multi-producer/single-consumer mbox that ignores message limits.

Parameters
single_consumerThe only consumer for the messages.

Definition at line 917 of file environment.cpp.

◆ create_ordinary_mpsc_mbox()

mbox_t so_5::impl::internal_env_iface_t::create_ordinary_mpsc_mbox ( agent_t & single_consumer)
nodiscard

Create multi-producer/single-consumer mbox that handles message limits.

Parameters
single_consumerThe only consumer for the messages.

Definition at line 908 of file environment.cpp.

◆ default_mpmc_queue_lock_factory()

so_5::disp::mpmc_queue_traits::lock_factory_t so_5::impl::internal_env_iface_t::default_mpmc_queue_lock_factory ( ) const

Get default lock_factory for MPMC queues.

Since
v.5.5.18

Definition at line 974 of file environment.cpp.

◆ default_mpsc_queue_lock_factory()

so_5::disp::mpsc_queue_traits::lock_factory_t so_5::impl::internal_env_iface_t::default_mpsc_queue_lock_factory ( ) const

Get default lock_factory for MPSC queues.

Since
v.5.5.18

Definition at line 967 of file environment.cpp.

◆ default_subscription_storage_factory()

subscription_storage_factory_t so_5::impl::internal_env_iface_t::default_subscription_storage_factory ( ) const
nodiscardnoexcept

Get the default storage subscription factory.

Since
v.5.8.2

Definition at line 1004 of file environment.cpp.

◆ event_queue_on_bind()

event_queue_t * so_5::impl::internal_env_iface_t::event_queue_on_bind ( agent_t * agent,
event_queue_t * original_queue )
nodiscardnoexcept

Call the event_queue_hook when an agent is being bound to a particular event_queue.

An agent should call this method when it is being bound to a particular event queue.

Attention
The pointer returned should be used as pointer to event queue.
Since
v.5.5.24

Definition at line 982 of file environment.cpp.

◆ event_queue_on_unbind()

void so_5::impl::internal_env_iface_t::event_queue_on_unbind ( agent_t * agent,
event_queue_t * queue )
noexcept

Call the event_queue_hook when an agent is being unbound from its event_queue.

An agent should call this method when it is being unbound from its event queue.

Attention
The value queue should be exactly the value returned from previous call to event_queue_on_bind().
Since
v.5.5.24

Definition at line 990 of file environment.cpp.

◆ final_deregister_coop()

void so_5::impl::internal_env_iface_t::final_deregister_coop ( coop_shptr_t coop)
noexcept

Do the final actions of a cooperation deregistration.

Note
This method is noexcept since v.5.8.0
Parameters
coopCooperation name to be deregistered.

Definition at line 933 of file environment.cpp.

◆ is_msg_tracing_enabled()

bool so_5::impl::internal_env_iface_t::is_msg_tracing_enabled ( ) const

Is message delivery tracing enabled?

Definition at line 945 of file environment.cpp.

◆ msg_tracing_stuff()

so_5::msg_tracing::holder_t & so_5::impl::internal_env_iface_t::msg_tracing_stuff ( ) const
nodiscard

Get access to message delivery tracer stuff holder.

Exceptions
exception_tif message delivery tracing is disabled.

Definition at line 951 of file environment.cpp.

◆ msg_tracing_stuff_nonchecked()

so_5::msg_tracing::holder_t & so_5::impl::internal_env_iface_t::msg_tracing_stuff_nonchecked ( ) const
nodiscardnoexcept

Get access to message delivery tracer stuff holder.

This method doesn't throw if delivery tracing is disabled. It was introduced in v.5.7.0 to allow the creation of custom mboxes and mchains in separate libraries (like so5extra).

Since
v.5.7.0

Definition at line 961 of file environment.cpp.

◆ ready_to_deregister_notify()

void so_5::impl::internal_env_iface_t::ready_to_deregister_notify ( coop_shptr_t coop)
noexcept

Notification about readiness to the deregistration.

Parameters
coopCooperation which is ready to be deregistered.

Definition at line 926 of file environment.cpp.

Member Data Documentation

◆ m_env

environment_t& so_5::impl::internal_env_iface_t::m_env
private

Environment instance to work with.

Definition at line 38 of file internal_env_iface.hpp.


The documentation for this class was generated from the following files: