SObjectizer-5 Extra
Classes | Namespaces | Typedefs | Enumerations | Functions | Variables
shutdowner.hpp File Reference

Implementation of shutdowner-related stuff. More...

#include <so_5_extra/error_ranges.hpp>
#include <so_5/impl/msg_tracing_helpers.hpp>
#include <so_5/details/sync_helpers.hpp>
#include <so_5/mbox.hpp>
#include <so_5/send_functions.hpp>
#include <so_5/outliving.hpp>

Go to the source code of this file.

Classes

struct  so_5::extra::shutdowner::shutdown_initiated_t
 A message to be used to inform about start of shutdown operation. More...
 
class  so_5::extra::shutdowner::details::shutdowner_guard_t
 Implementation of stop_guard for shutdowner's purposes. More...
 
struct  so_5::extra::shutdowner::details::shutdown_time_elapsed_t
 A signal which is used to limit time of shutdown operation. More...
 
class  so_5::extra::shutdowner::details::time_elapsed_mbox_t
 Special mbox to receive and handle a signal about time limit. More...
 
struct  so_5::extra::shutdowner::details::subscriber_info_t
 Description of one subscriber. More...
 
class  so_5::extra::shutdowner::details::status::holder_t
 Special object which holds status. More...
 
class  so_5::extra::shutdowner::details::status::updater_t
 Special object to change the status and detect deferred action to be performed. More...
 
struct  so_5::extra::shutdowner::details::notify_mbox_data_t
 An internal data of notify_mbox. More...
 
class  so_5::extra::shutdowner::details::notify_mbox_t< Lock_Type, Tracing_Base >
 A special mbox which must be used for notification about shutdown operation. More...
 
class  so_5::extra::shutdowner::layer_t
 An interface of shutdowner layer. More...
 
class  so_5::extra::shutdowner::details::layer_template_t< Lock_Type >
 A template-based implementation of shutdowner layer. More...
 

Namespaces

 so_5
 Ranges for error codes of each submodules.
 
 so_5::extra
 
 so_5::extra::shutdowner
 
 so_5::extra::shutdowner::errors
 
 so_5::extra::shutdowner::details
 
 so_5::extra::shutdowner::details::status
 

Typedefs

using so_5::extra::shutdowner::details::subscriber_container_t = std::vector< subscriber_info_t >
 Type of subscriber's container. More...
 

Enumerations

enum  so_5::extra::shutdowner::details::status::value_t { so_5::extra::shutdowner::details::status::value_t::not_started, so_5::extra::shutdowner::details::status::value_t::started, so_5::extra::shutdowner::details::status::value_t::must_be_completed }
 Avaliable statuses of shutdown operation. More...
 
enum  so_5::extra::shutdowner::details::status::deferred_action_t { so_5::extra::shutdowner::details::status::deferred_action_t::do_nothing, so_5::extra::shutdowner::details::status::deferred_action_t::complete_shutdown }
 Which action must be performed after updating status of shutdown operation. More...
 

Functions

template<typename Lock_Type = std::mutex>
std::unique_ptr< ::so_5::extra::shutdowner::layer_tso_5::extra::shutdowner::make_layer (std::chrono::steady_clock::duration shutdown_max_time)
 Main function to create an instance of shutdowner layer. More...
 
inline ::so_5::extra::shutdowner::layer_tso_5::extra::shutdowner::layer (::so_5::environment_t &env)
 A helper function to receive a reference to shutdowner layer. More...
 

Variables

const int so_5::extra::shutdowner::errors::rc_illegal_msg_type
 An attempt to use illegal message type. More...
 
const int so_5::extra::shutdowner::errors::rc_subscription_disabled_during_shutdown
 Subscription to shutdowner mbox when shutdown in progess is prohibited. More...
 
constexpr const value_t so_5::extra::shutdowner::details::status::not_started = value_t::not_started
 
constexpr const value_t so_5::extra::shutdowner::details::status::started = value_t::started
 
constexpr const value_t so_5::extra::shutdowner::details::status::must_be_completed = value_t::must_be_completed
 

Detailed Description

Implementation of shutdowner-related stuff.

Definition in file shutdowner.hpp.