SObjectizer  5.8
Loading...
Searching...
No Matches
event_exception_logger.cpp
Go to the documentation of this file.
1/*
2 SObjectizer 5.
3*/
4
5#include <so_5/event_exception_logger.hpp>
6
7#include <iostream>
8
9namespace so_5
10{
11
12//
13// event_exception_logger_t
14//
15
16void
18 event_exception_logger_unique_ptr_t previous_logger ) noexcept
19{
20 // Default implementation deletes old logger.
21 previous_logger.reset();
22}
23
24namespace /* ananymous */
25{
26
27//
28// std_event_exception_logger_t
29//
30
31//! Standard exception logger implementation.
33 :
35{
36 public:
38
39 void
41 const std::exception & event_exception,
42 const coop_handle_t & coop ) noexcept override
43 {
44 std::cerr
45 << "SObjectizer event exception caught: "
46 << event_exception.what()
47 << "; cooperation: " << coop << std::endl;
48 }
49};
50
51} /* anonymous namespace */
52
53//
54// create_std_event_exception_logger
55//
56
59{
60 return event_exception_logger_unique_ptr_t(
61 new std_event_exception_logger_t() );
62}
63
64} /* namespace so_5 */
void log_exception(const std::exception &event_exception, const coop_handle_t &coop) noexcept override
Log the exception caught.
Type of smart handle for a cooperation.
An interface for the exception logging.
virtual void on_install(event_exception_logger_unique_ptr_t previous_logger) noexcept
Installation hook.
#define SO_5_FUNC
Definition declspec.hpp:48
Private part of message limit implementation.
Definition agent.cpp:33
SO_5_FUNC event_exception_logger_unique_ptr_t create_std_event_exception_logger()
Create the default exception logger.