SObjectizer  5.7
Classes | Namespaces | Enumerations | Functions
agent.hpp File Reference

A base class for agents. More...

#include <so_5/compiler_features.hpp>
#include <so_5/declspec.hpp>
#include <so_5/types.hpp>
#include <so_5/current_thread_id.hpp>
#include <so_5/atomic_refcounted.hpp>
#include <so_5/spinlocks.hpp>
#include <so_5/outliving.hpp>
#include <so_5/exception.hpp>
#include <so_5/error_logger.hpp>
#include <so_5/details/rollback_on_exception.hpp>
#include <so_5/details/abort_on_fatal_error.hpp>
#include <so_5/details/at_scope_exit.hpp>
#include <so_5/fwd.hpp>
#include <so_5/agent_ref_fwd.hpp>
#include <so_5/agent_context.hpp>
#include <so_5/mbox.hpp>
#include <so_5/agent_state_listener.hpp>
#include <so_5/event_queue.hpp>
#include <so_5/subscription_storage_fwd.hpp>
#include <so_5/handler_makers.hpp>
#include <so_5/message_handler_format_detector.hpp>
#include <so_5/coop_handle.hpp>
#include <atomic>
#include <map>
#include <memory>
#include <vector>
#include <utility>
#include <type_traits>

Go to the source code of this file.

Classes

class  so_5::subscription_bind_t
 A class for creating a subscription to messages from the mbox. More...
 
class  so_5::agent_t
 A base class for agents. More...
 
class  so_5::delivery_filter_templates::lambda_as_filter_t< Lambda, Message >
 An implementation of delivery filter represented by lambda-function like object. More...
 

Namespaces

 so_5
 Public part of message limit implementation.
 
 so_5::delivery_filter_templates
 Template-based implementations of delivery filters.
 

Enumerations

enum  so_5::exception_reaction_t {
  so_5::abort_on_exception = 1, so_5::shutdown_sobjectizer_on_exception = 2, so_5::deregister_coop_on_exception = 3, so_5::ignore_exception = 4,
  so_5::inherit_exception_reaction = 5
}
 A reaction of SObjectizer to an exception from agent event. More...
 

Functions

template<typename Derived >
intrusive_ptr_t< Derived > so_5::make_agent_ref (Derived *agent)
 Helper function template for the creation of smart pointer to an agent. More...
 
void so_5::operator>>= (agent_t *agent, const state_t &new_state)
 A shortcat for switching the agent state. More...
 

Detailed Description

A base class for agents.