38 #include "final/util/fdata.h"    39 #include "final/util/fstring.h"    55     using std::runtime_error::runtime_error;
    74 using handler_t = std::function<void(Monitor*, short)>;
   104     virtual auto getClassName() 
const -> 
FString;
   105     auto getEvents() 
const -> short;
   106     auto getFileDescriptor() 
const -> int;
   107     template <
typename T>
   108     auto getUserContext() 
const -> clean_fdata_t<T>&;
   111     auto isActive() 
const -> bool;
   114     virtual void resume();
   115     virtual void suspend();
   119     static constexpr 
int NO_FILE_DESCRIPTOR{-1};
   122     void         setFileDescriptor (
int);
   123     void         setEvents (
short);
   124     void         setHandler (handler_t&&);
   125     template <
typename T>
   126     void         setUserContext (T&&);
   127     void         setInitialized();
   130     auto         isInitialized() 
const -> bool;
   133     virtual void trigger (
short);
   137     using FDataAccessPtr = std::shared_ptr<FDataAccess>;
   142     int            fd{NO_FILE_DESCRIPTOR};
   145     FDataAccessPtr user_context{
nullptr};
   146     bool           monitor_initialized{
false};
   154 inline auto Monitor::getClassName() 
const -> 
FString   155 { 
return "Monitor"; }
   158 inline auto Monitor::getEvents() 
const -> 
short   162 inline auto Monitor::getFileDescriptor() 
const -> 
int   166 template <
typename T>
   167 auto Monitor::getUserContext() 
const -> clean_fdata_t<T>&
   169   static T empty_lvalue = T{};
   176 inline auto Monitor::isActive() 
const -> 
bool   180 inline void Monitor::resume()
   184 inline void Monitor::suspend()
   188 inline void Monitor::trigger (
short return_events)
   191     handler (
this, return_events);
   195 inline void Monitor::setFileDescriptor (
int file_descriptor)
   196 { fd = file_descriptor; }
   199 inline void Monitor::setEvents (
short ev)
   203 inline void Monitor::setHandler (handler_t&& hdl)
   204 { handler = std::move(hdl); }
   207 template <
typename T>
   208 inline void Monitor::setUserContext (T&& uc)
   210   user_context.reset(makeFData(std::forward<T>(uc)));
   214 inline void Monitor::setInitialized()
   215 { monitor_initialized = 
true; }
   218 inline auto Monitor::isInitialized() 
const -> 
bool   219 { 
return monitor_initialized; }
 
Definition: eventloop.h:48
 
Definition: class_template.cpp:25