SObjectizer  5.7
Namespaces | Classes | Typedefs | Enumerations
so_5::mchain_props Namespace Reference

Various properties and parameters of message chains. More...

Namespaces

 details
 Implementation details.
 

Classes

class  capacity_t
 Parameters for defining chain size. More...
 
struct  demand_t
 Description of one demand in message chain. More...
 
class  mchain_template
 Template-based implementation of message chain. More...
 
class  select_case_t
 Base class for representation of one case in multi chain select. More...
 
class  select_notificator_t
 An interface of select_case notificator. More...
 

Typedefs

using duration_t = std::chrono::high_resolution_clock::duration
 An alias for type for repesenting timeout values. More...
 
using not_empty_notification_func_t = std::function< void() >
 Type of functor for notifies about arrival of a message to the empty chain. More...
 
using select_case_unique_ptr_t = std::unique_ptr< select_case_t >
 An alias of unique_ptr for select_case. More...
 

Enumerations

enum  memory_usage_t { memory_usage_t::dynamic, memory_usage_t::preallocated }
 Memory allocation for storage for size-limited chains. More...
 
enum  overflow_reaction_t { overflow_reaction_t::abort_app, overflow_reaction_t::throw_exception, overflow_reaction_t::drop_newest, overflow_reaction_t::remove_oldest }
 What reaction must be performed on attempt to push new message to the full message chain. More...
 
enum  extraction_status_t { extraction_status_t::no_messages, extraction_status_t::msg_extracted, extraction_status_t::chain_closed }
 Result of extraction of message from a message chain. More...
 
enum  push_status_t { push_status_t::not_stored, push_status_t::stored, push_status_t::deffered, push_status_t::chain_closed }
 Result of attempt of pushing a message into a message chain. More...
 
enum  close_mode_t { close_mode_t::drop_content, close_mode_t::retain_content }
 What to do with chain's content at close. More...
 
enum  msg_count_status_t { msg_count_status_t::undefined, msg_count_status_t::defined }
 Status of limit for messages to be extracted/handled during a bulk operation on a mchain. More...
 

Detailed Description

Various properties and parameters of message chains.

Since
v.5.5.13

Typedef Documentation

◆ duration_t

using so_5::mchain_props::duration_t = typedef std::chrono::high_resolution_clock::duration

An alias for type for repesenting timeout values.

Since
v.5.5.13

◆ not_empty_notification_func_t

using so_5::mchain_props::not_empty_notification_func_t = typedef std::function< void() >

Type of functor for notifies about arrival of a message to the empty chain.

Since
v.5.5.13
Attention
This function must be noexcept.

◆ select_case_unique_ptr_t

using so_5::mchain_props::select_case_unique_ptr_t = typedef std::unique_ptr< select_case_t >

An alias of unique_ptr for select_case.

Since
v5.5.16

Enumeration Type Documentation

◆ close_mode_t

What to do with chain's content at close.

Since
v.5.5.13
Enumerator
drop_content 

All messages must be removed from chain.

retain_content 

All messages must be retained until they will be processed at receiver's side.

◆ extraction_status_t

Result of extraction of message from a message chain.

Since
v.5.5.13
Enumerator
no_messages 

No available messages in the chain.

msg_extracted 

Message extracted successfully.

chain_closed 

Message cannot be extracted because chain is closed.

◆ memory_usage_t

Memory allocation for storage for size-limited chains.

Since
v.5.5.13
Enumerator
dynamic 

Storage can be allocated and deallocated dynamically.

preallocated 

Storage must be preallocated once and doesn't change after that.

◆ msg_count_status_t

Status of limit for messages to be extracted/handled during a bulk operation on a mchain.

Since
v.5.6.0
Enumerator
undefined 

Message count limit is not set yet.

defined 

Message count limit is set.

◆ overflow_reaction_t

What reaction must be performed on attempt to push new message to the full message chain.

Since
v.5.5.13
Enumerator
abort_app 

Application must be aborted.

throw_exception 

An exception must be thrown.

Note
Since v.5.5.18 this value leads to an exception only if ordinary send is used for pushing message to overloaded message chain. If there is an attempt to push delayed or periodic message to overloaded message chain then throw_exception reaction is replaced by drop_newest. It is becasue the context of timer thread is a special contex. No exceptions should be thrown on it.
drop_newest 

New message must be ignored and droped.

remove_oldest 

Oldest message in chain must be removed.

◆ push_status_t

Result of attempt of pushing a message into a message chain.

Since
v.5.7.0
Enumerator
not_stored 

Message wasn't stored.

stored 

Message stored into a message chain.

deffered 

Message is not stored but the store operation is registered into a message chain.

chain_closed 

Message wasn't stored because chain is closed.