RTC Toolkit 6.0.0
Loading...
Searching...
No Matches
eventServiceIf.hpp
Go to the documentation of this file.
1
11
12#ifndef RTCTK_COMPONENTFRAMEWORK_EVENTSERVICEIF_HPP
13#define RTCTK_COMPONENTFRAMEWORK_EVENTSERVICEIF_HPP
14
16
17#include <string>
18
20
23
29public:
30 virtual ~EventServiceIf() = default;
31
37 virtual std::unique_ptr<EventPublisherIf> MakePublisher(const std::string& topic) = 0;
38
44 virtual std::unique_ptr<EventSubscriberIf> MakeSubscriber(const std::string& topic) = 0;
45};
46
52public:
53 virtual ~EventPublisherIf() = default;
54
60 virtual void Publish(const JsonPayload& sample) = 0;
61};
62
68public:
69 virtual ~EventSubscriberIf() = default;
70
81 virtual void Subscribe(std::function<void(const JsonPayload&)> cb) = 0;
82
86 virtual void Unsubscribe() = 0;
87};
88
89} // namespace rtctk::componentFramework
90
91#endif // RTCTK_COMPONENTFRAMEWORK_EVENTSERVICEIF_HPP
Interface class for publishing JSON events.
Definition eventServiceIf.hpp:51
virtual void Publish(const JsonPayload &sample)=0
Publishes a JSON object.
Interface class for providing pub/sub facilities for JSON events.
Definition eventServiceIf.hpp:28
virtual std::unique_ptr< EventSubscriberIf > MakeSubscriber(const std::string &topic)=0
Creates a new subscriber for a specified topic.
virtual std::unique_ptr< EventPublisherIf > MakePublisher(const std::string &topic)=0
Creates a new publisher for a specified topic.
Interface class for subscribing to JSON events.
Definition eventServiceIf.hpp:67
virtual void Unsubscribe()=0
Unsubscribes from a specified topic.
virtual void Subscribe(std::function< void(const JsonPayload &)> cb)=0
Subscribes to a specified topic.
Defines the JSON payload type JsonPayload.
Definition commandReplier.cpp:21
nlohmann::json JsonPayload
Type requirements:
Definition jsonPayload.hpp:24