Diarkis C++Client Library API Document
Event.h
Go to the documentation of this file.
1 // © 2019-2024 Diarkis Inc. All rights reserved.
2 
3 #pragma once
4 
5 #include <functional>
6 #include "diarkis/common.h"
8 
9 #ifdef DIARKIS_PLATFORM_ESP32
10 typedef uint32_t diarkis_atomic_uint_t;
11 #else // DIARKIS_PLATFORM_ESP32
12 typedef uint32_t diarkis_atomic_uint_t;
13 #endif //NOT DIARKIS_PLATFORM_ESP32
14 
15 // ADD NAMESPACE NAME TAG
16 namespace Diarkis
17 {
28 template<typename T>
29 class DIARKIS_EXPORT IDiarkisEvent
30 {
31  public:
32  virtual ~IDiarkisEvent() { }
43  virtual std::function<void()> Register(std::function<void(void*, T)> lambda) = 0;
44 
55  virtual bool HasSubscribers() const = 0;
56 };
57 
59 {
60 public:
61  virtual ~IDiarkisEventRpcID() { }
62 
63  virtual std::function<void()> Register(uint32_t rpcID, std::function<void(const DiarkisPayloadEventArgs& e)> lambda) = 0;
64 
65  virtual void Raise(uint32_t rpcID, const DiarkisPayloadEventArgs& e) = 0;
66 
67  virtual bool HasSubscribers() const = 0;
68 };
69 
70 }
71 // ADD NAMESPACE } TAG
Diarkis::IDiarkisEvent::~IDiarkisEvent
virtual ~IDiarkisEvent()
Definition: Event.h:32
Diarkis::IDiarkisEventRpcID::HasSubscribers
virtual bool HasSubscribers() const =0
Diarkis::IDiarkisEventRpcID::Register
virtual std::function< void()> Register(uint32_t rpcID, std::function< void(const DiarkisPayloadEventArgs &e)> lambda)=0
Diarkis::DiarkisPayloadEventArgs
Arguments of the callback event called when a payload is sent or received.
Definition: eventArgs.h:252
diarkis_atomic_uint_t
uint32_t diarkis_atomic_uint_t
Definition: Event.h:12
Diarkis::IDiarkisEventRpcID::~IDiarkisEventRpcID
virtual ~IDiarkisEventRpcID()
Definition: Event.h:61
eventArgs.h
Diarkis
Definition: commands.h:9
Diarkis::IDiarkisEventRpcID::Raise
virtual void Raise(uint32_t rpcID, const DiarkisPayloadEventArgs &e)=0
common.h
Diarkis::IDiarkisEventRpcID
Definition: Event.h:58
Diarkis::IDiarkisEvent
マルチキャストイベントを表す汎用インターフェース。 イベントが発生すると、登録されたすべてのラムダ式が呼び出されます。
Definition: Event.h:29