36 #ifndef BACKEND_MONITOR_H 37 #define BACKEND_MONITOR_H 39 #include "final/eventloop/monitor.h" 40 #include "final/eventloop/pipedata.h" 41 #include "final/util/fstring.h" 74 auto getClassName()
const ->
FString override;
77 void setEvent()
const noexcept;
81 void init (handler_t, T&&);
82 void trigger (
short)
override;
86 static constexpr std::uint64_t SIGNAL_NOTIFICATION{1U};
89 void clearEvent()
const;
93 void validate (
const handler_t&)
const;
96 PipeData self_pipe{NO_FILE_DESCRIPTOR, NO_FILE_DESCRIPTOR};
101 inline auto BackendMonitor::getClassName()
const ->
FString 102 {
return "BackendMonitor"; }
105 template <
typename T>
106 inline void BackendMonitor::init (handler_t hdl, T&& uc)
112 setHandler (std::move(hdl));
113 setUserContext (std::forward<T>(uc));
118 setHandler(handler_t{});
125 inline void BackendMonitor::validate (
const handler_t& hdl)
const 127 if ( isInitialized() )
128 throw monitor_error{
"This instance has already been initialised."};
136 #endif // BACKEND_MONITOR_H
Definition: eventloop.h:49
Definition: class_template.cpp:25
Definition: backend_monitor.h:50
Definition: pipedata.h:48