SObjectizer  5.7
Public Member Functions | Private Attributes | List of all members
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. More...
 
mbox_t create_mpsc_mbox (agent_t *single_consumer, const so_5::message_limit::impl::info_storage_t *limits_storage)
 Create multi-producer/single-consumer mbox. More...
 
void ready_to_deregister_notify (coop_shptr_t coop) noexcept
 Notification about readiness to the deregistration. More...
 
void final_deregister_coop (coop_shptr_t coop)
 Do the final actions of a cooperation deregistration. More...
 
bool is_msg_tracing_enabled () const
 Is message delivery tracing enabled? More...
 
so_5::msg_tracing::holder_tmsg_tracing_stuff () const
 Get access to message delivery tracer stuff holder. More...
 
so_5::msg_tracing::holder_tmsg_tracing_stuff_nonchecked () const noexcept
 Get access to message delivery tracer stuff holder. More...
 
so_5::disp::mpsc_queue_traits::lock_factory_t default_mpsc_queue_lock_factory () const
 Get default lock_factory for MPSC queues. More...
 
so_5::disp::mpmc_queue_traits::lock_factory_t default_mpmc_queue_lock_factory () const
 Get default lock_factory for MPMC queues. More...
 
mbox_id_t allocate_mbox_id () noexcept
 Allocate a new ID for a new custom mbox or mchain. More...
 
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. More...
 
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. More...
 

Private Attributes

environment_tm_env
 Environment instance to work with. More...
 

Detailed Description

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

Since
v.5.5.9

Constructor & Destructor Documentation

◆ internal_env_iface_t()

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

Initializing constructor.

Member Function Documentation

◆ allocate_mbox_id()

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

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

Since
v.5.7.0

◆ create_mpsc_mbox()

mbox_t so_5::impl::internal_env_iface_t::create_mpsc_mbox ( agent_t single_consumer,
const so_5::message_limit::impl::info_storage_t limits_storage 
)

Create multi-producer/single-consumer mbox.

Parameters
single_consumerThe only consumer for the messages.
limits_storagePointer to limits for a new mbox. It can be nullptr, that means that limits shouldn't be used.

◆ 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

◆ 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

◆ 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 
)
noexcept

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

◆ 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

◆ final_deregister_coop()

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

Do the final actions of a cooperation deregistration.

Parameters
coopCooperation name to be deregistered.

◆ is_msg_tracing_enabled()

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

Is message delivery tracing enabled?

◆ msg_tracing_stuff()

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

Get access to message delivery tracer stuff holder.

Exceptions
exception_tif message delivery tracing is disabled.

◆ msg_tracing_stuff_nonchecked()

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

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

◆ 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.

Member Data Documentation

◆ m_env

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

Environment instance to work with.


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