rad  2.0.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
events.rad.hpp
Go to the documentation of this file.
1 
8 #ifndef EVENTS_EVENTS_RAD_HPP_
9 #define EVENTS_EVENTS_RAD_HPP_
10 
11 #include <vector>
12 #include <rad/anyEvent.hpp>
13 
14 #include <boost/exception_ptr.hpp>
15 #include <rad/mal/request.hpp>
16 #include <Hellomalif.hpp>
17 
18 namespace Events {
22 std::vector<rad::EventInfo> listEvents();
23 
25 // Config
27 
28 class Config final : public rad::AnyEvent {
29  public:
30  static constexpr char const* ID = "Events.Config";
33 
37  explicit Config(rad::cii::Request<std::string> const&);
38 
42  template <typename... Args,
43  typename = typename std::enable_if<std::is_constructible<payload_t, Args... >::value>::type>
44  explicit Config(Args&&... args)
45  : AnyEvent(ID)
46  , m_payload(std::forward<Args>(args)...) {
47  }
49  Config(Config const&) = default;
51  Config(Config&&) = default;
53  Config& operator=(Config const& e) = default;
55 
57  AnyEvent* Clone() const override;
59  inline rad::cii::Request<std::string> const& GetPayload() const;
61 
62  private:
64 };
65 
66 // Inline definitions
68  return m_payload;
69 }
71  return m_payload;
72 }
73 
75 // CtrlC
77 
81 class CtrlC final : public rad::AnyEvent {
82  public:
83  static constexpr char const* ID = "Events.CtrlC";
85  using payload_t = void;
86 
89  CtrlC();
91  CtrlC(CtrlC const&) = default;
93  CtrlC(CtrlC&&) = default;
95  CtrlC& operator=(CtrlC const& e) = default;
97 
99  AnyEvent* Clone() const override;
100 };
101 
102 
104 // Disable
106 
107 class Disable final : public rad::AnyEvent {
108  public:
109  static constexpr char const* ID = "Events.Disable";
112 
116  explicit Disable(rad::cii::Request<std::string> const&);
117 
121  template <typename... Args,
122  typename = typename std::enable_if<std::is_constructible<payload_t, Args... >::value>::type>
123  explicit Disable(Args&&... args)
124  : AnyEvent(ID)
125  , m_payload(std::forward<Args>(args)...) {
126  }
128  Disable(Disable const&) = default;
130  Disable(Disable&&) = default;
132  Disable& operator=(Disable const& e) = default;
134 
136  AnyEvent* Clone() const override;
138  inline rad::cii::Request<std::string> const& GetPayload() const;
140 
141  private:
143 };
144 
145 // Inline definitions
147  return m_payload;
148 }
150  return m_payload;
151 }
152 
154 // Enable
156 
157 class Enable final : public rad::AnyEvent {
158  public:
159  static constexpr char const* ID = "Events.Enable";
162 
166  explicit Enable(rad::cii::Request<std::string> const&);
167 
171  template <typename... Args,
172  typename = typename std::enable_if<std::is_constructible<payload_t, Args... >::value>::type>
173  explicit Enable(Args&&... args)
174  : AnyEvent(ID)
175  , m_payload(std::forward<Args>(args)...) {
176  }
178  Enable(Enable const&) = default;
180  Enable(Enable&&) = default;
182  Enable& operator=(Enable const& e) = default;
184 
186  AnyEvent* Clone() const override;
188  inline rad::cii::Request<std::string> const& GetPayload() const;
190 
191  private:
193 };
194 
195 // Inline definitions
197  return m_payload;
198 }
200  return m_payload;
201 }
202 
204 // Exit
206 
210 class Exit final : public rad::AnyEvent {
211  public:
212  static constexpr char const* ID = "Events.Exit";
215 
219  explicit Exit(rad::cii::Request<std::string> const&);
220 
224  template <typename... Args,
225  typename = typename std::enable_if<std::is_constructible<payload_t, Args... >::value>::type>
226  explicit Exit(Args&&... args)
227  : AnyEvent(ID)
228  , m_payload(std::forward<Args>(args)...) {
229  }
231  Exit(Exit const&) = default;
233  Exit(Exit&&) = default;
235  Exit& operator=(Exit const& e) = default;
237 
239  AnyEvent* Clone() const override;
241  inline rad::cii::Request<std::string> const& GetPayload() const;
243 
244  private:
246 };
247 
248 // Inline definitions
250  return m_payload;
251 }
253  return m_payload;
254 }
255 
257 // Init
259 
260 class Init final : public rad::AnyEvent {
261  public:
262  static constexpr char const* ID = "Events.Init";
265 
269  explicit Init(rad::cii::Request<std::string> const&);
270 
274  template <typename... Args,
275  typename = typename std::enable_if<std::is_constructible<payload_t, Args... >::value>::type>
276  explicit Init(Args&&... args)
277  : AnyEvent(ID)
278  , m_payload(std::forward<Args>(args)...) {
279  }
281  Init(Init const&) = default;
283  Init(Init&&) = default;
285  Init& operator=(Init const& e) = default;
287 
289  AnyEvent* Clone() const override;
291  inline rad::cii::Request<std::string> const& GetPayload() const;
293 
294  private:
296 };
297 
298 // Inline definitions
300  return m_payload;
301 }
303  return m_payload;
304 }
305 
307 // Reset
309 
310 class Reset final : public rad::AnyEvent {
311  public:
312  static constexpr char const* ID = "Events.Reset";
315 
319  explicit Reset(rad::cii::Request<std::string> const&);
320 
324  template <typename... Args,
325  typename = typename std::enable_if<std::is_constructible<payload_t, Args... >::value>::type>
326  explicit Reset(Args&&... args)
327  : AnyEvent(ID)
328  , m_payload(std::forward<Args>(args)...) {
329  }
331  Reset(Reset const&) = default;
333  Reset(Reset&&) = default;
335  Reset& operator=(Reset const& e) = default;
337 
339  AnyEvent* Clone() const override;
341  inline rad::cii::Request<std::string> const& GetPayload() const;
343 
344  private:
346 };
347 
348 // Inline definitions
350  return m_payload;
351 }
353  return m_payload;
354 }
355 
357 // SetLogLevel
359 
360 class SetLogLevel final : public rad::AnyEvent {
361  public:
362  static constexpr char const* ID = "Events.SetLogLevel";
365 
369  explicit SetLogLevel(rad::cii::Request<std::string, std::shared_ptr<hellomalif::LogInfo>> const&);
370 
374  template <typename... Args,
375  typename = typename std::enable_if<std::is_constructible<payload_t, Args... >::value>::type>
376  explicit SetLogLevel(Args&&... args)
377  : AnyEvent(ID)
378  , m_payload(std::forward<Args>(args)...) {
379  }
381  SetLogLevel(SetLogLevel const&) = default;
383  SetLogLevel(SetLogLevel&&) = default;
385  SetLogLevel& operator=(SetLogLevel const& e) = default;
387 
389  AnyEvent* Clone() const override;
393 
394  private:
396 };
397 
398 // Inline definitions
400  return m_payload;
401 }
403  return m_payload;
404 }
405 
407 // Status
409 
410 class Status final : public rad::AnyEvent {
411  public:
412  static constexpr char const* ID = "Events.Status";
415 
419  explicit Status(rad::cii::Request<std::string> const&);
420 
424  template <typename... Args,
425  typename = typename std::enable_if<std::is_constructible<payload_t, Args... >::value>::type>
426  explicit Status(Args&&... args)
427  : AnyEvent(ID)
428  , m_payload(std::forward<Args>(args)...) {
429  }
431  Status(Status const&) = default;
433  Status(Status&&) = default;
435  Status& operator=(Status const& e) = default;
437 
439  AnyEvent* Clone() const override;
441  inline rad::cii::Request<std::string> const& GetPayload() const;
443 
444  private:
446 };
447 
448 // Inline definitions
450  return m_payload;
451 }
453  return m_payload;
454 }
455 
457 // Stop
459 
460 class Stop final : public rad::AnyEvent {
461  public:
462  static constexpr char const* ID = "Events.Stop";
465 
469  explicit Stop(rad::cii::Request<std::string> const&);
470 
474  template <typename... Args,
475  typename = typename std::enable_if<std::is_constructible<payload_t, Args... >::value>::type>
476  explicit Stop(Args&&... args)
477  : AnyEvent(ID)
478  , m_payload(std::forward<Args>(args)...) {
479  }
481  Stop(Stop const&) = default;
483  Stop(Stop&&) = default;
485  Stop& operator=(Stop const& e) = default;
487 
489  AnyEvent* Clone() const override;
491  inline rad::cii::Request<std::string> const& GetPayload() const;
493 
494  private:
496 };
497 
498 // Inline definitions
500  return m_payload;
501 }
503  return m_payload;
504 }
505 
506 
507 
508 } // namespace Events
509 
510 
511 #endif // EVENTS_EVENTS_RAD_HPP_
AnyEvent * Clone() const override
Definition: events.rad.cpp:56
rad::cii::Request< std::string > const & GetPayload() const
Definition: events.rad.hpp:196
static constexpr char const * ID
Definition: events.rad.hpp:262
static constexpr rad::EventInfo::Context ctx
Definition: events.rad.hpp:160
rad::cii::Request< std::string > payload_t
Definition: events.rad.hpp:264
Stop(rad::cii::Request< std::string > const &)
Definition: events.rad.cpp:129
rad::cii::Request< std::string > const & GetPayload() const
Definition: events.rad.hpp:499
rad::cii::Request< std::string > payload_t
Definition: events.rad.hpp:464
AnyEvent * Clone() const override
Definition: events.rad.cpp:69
Init(Args &&...args)
Definition: events.rad.hpp:276
static constexpr char const * ID
Definition: events.rad.hpp:312
Definition: events.rad.hpp:360
Config(Args &&...args)
Definition: events.rad.hpp:44
rad::cii::Request< std::string > const & GetPayload() const
Definition: events.rad.hpp:249
static constexpr char const * ID
Definition: events.rad.hpp:412
Config(rad::cii::Request< std::string > const &)
Definition: events.rad.cpp:13
static constexpr char const * ID
Definition: events.rad.hpp:462
Exit(rad::cii::Request< std::string > const &)
Definition: events.rad.cpp:64
static constexpr rad::EventInfo::Context ctx
Definition: events.rad.hpp:313
Status(Args &&...args)
Definition: events.rad.hpp:426
rad::cii::Request< std::string > payload_t
Definition: events.rad.hpp:32
Init(rad::cii::Request< std::string > const &)
Definition: events.rad.cpp:77
SetLogLevel & operator=(SetLogLevel const &e)=default
Reset(rad::cii::Request< std::string > const &)
Definition: events.rad.cpp:90
Exit & operator=(Exit const &e)=default
static constexpr rad::EventInfo::Context ctx
Definition: events.rad.hpp:213
AnyEvent * Clone() const override
Definition: events.rad.cpp:43
rad::cii::Request< std::string > payload_t
Definition: events.rad.hpp:214
static constexpr rad::EventInfo::Context ctx
Definition: events.rad.hpp:84
static constexpr char const * ID
Definition: events.rad.hpp:83
static constexpr rad::EventInfo::Context ctx
Definition: events.rad.hpp:110
rad::cii::Request< std::string > const & GetPayload() const
Definition: events.rad.hpp:299
Context
Definition: anyEvent.hpp:27
AnyEvent * Clone() const override
Definition: events.rad.cpp:82
AnyEvent * Clone() const override
Definition: events.rad.cpp:121
Definition: events.rad.hpp:81
SetLogLevel(Args &&...args)
Definition: events.rad.hpp:376
CtrlC()
Definition: events.rad.cpp:26
Definition: events.rad.hpp:107
static constexpr char const * ID
Definition: events.rad.hpp:30
rad::cii::Request< std::string > payload_t
Definition: events.rad.hpp:414
rad::cii::Request< std::string > const & GetPayload() const
Definition: events.rad.hpp:349
Disable(Args &&...args)
Definition: events.rad.hpp:123
Status & operator=(Status const &e)=default
Definition: events.rad.hpp:460
AnyEvent * Clone() const override
Definition: events.rad.cpp:30
AnyEvent * Clone() const override
Definition: events.rad.cpp:108
AnyEvent * Clone() const override
Definition: events.rad.cpp:95
static constexpr rad::EventInfo::Context ctx
Definition: events.rad.hpp:363
std::vector< rad::EventInfo > listEvents()
Definition: events.rad.cpp:140
CtrlC & operator=(CtrlC const &e)=default
rad::cii::Request< std::string, std::shared_ptr< hellomalif::LogInfo > > const & GetPayload() const
Definition: events.rad.hpp:399
rad::cii::Request< std::string > const & GetPayload() const
Definition: events.rad.hpp:146
AnyEvent * Clone() const override
Definition: events.rad.cpp:18
static constexpr rad::EventInfo::Context ctx
Definition: events.rad.hpp:263
SetLogLevel(rad::cii::Request< std::string, std::shared_ptr< hellomalif::LogInfo >> const &)
Definition: events.rad.cpp:103
Definition: events.rad.hpp:260
Definition: events.rad.hpp:28
Definition: events.rad.hpp:210
Disable & operator=(Disable const &e)=default
Definition: events.rad.hpp:310
rad::cii::Request< std::string > payload_t
Definition: events.rad.hpp:161
rad::cii::Request< std::string > const & GetPayload() const
Definition: events.rad.hpp:449
rad::cii::Request< std::string, std::shared_ptr< hellomalif::LogInfo >> payload_t
Definition: events.rad.hpp:364
Enable(rad::cii::Request< std::string > const &)
Definition: events.rad.cpp:51
Definition: anyEvent.hpp:52
static constexpr char const * ID
Definition: events.rad.hpp:159
static constexpr rad::EventInfo::Context ctx
Definition: events.rad.hpp:31
AnyEvent(char const *id)
Definition: anyEvent.cpp:13
Reset(Args &&...args)
Definition: events.rad.hpp:326
Enable & operator=(Enable const &e)=default
Definition: events.rad.hpp:157
Stop & operator=(Stop const &e)=default
Reset & operator=(Reset const &e)=default
static constexpr char const * ID
Definition: events.rad.hpp:212
rad::cii::Request< std::string > const & GetPayload() const
Definition: events.rad.hpp:67
Status(rad::cii::Request< std::string > const &)
Definition: events.rad.cpp:116
static constexpr rad::EventInfo::Context ctx
Definition: events.rad.hpp:413
Definition: events.rad.hpp:410
void payload_t
Definition: events.rad.hpp:85
AnyEvent * Clone() const override
Definition: events.rad.cpp:134
static constexpr rad::EventInfo::Context ctx
Definition: events.rad.hpp:463
Enable(Args &&...args)
Definition: events.rad.hpp:173
Init & operator=(Init const &e)=default
rad::cii::Request< std::string > payload_t
Definition: events.rad.hpp:111
static constexpr char const * ID
Definition: events.rad.hpp:109
Exit(Args &&...args)
Definition: events.rad.hpp:226
Disable(rad::cii::Request< std::string > const &)
Definition: events.rad.cpp:38
static constexpr char const * ID
Definition: events.rad.hpp:362
rad::cii::Request< std::string > payload_t
Definition: events.rad.hpp:314
Stop(Args &&...args)
Definition: events.rad.hpp:476
Config & operator=(Config const &e)=default