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