The publish / subscribe pattern is implemented with classes :cpp:class:`zenoh::Publisher` and :cpp:class:`zenoh::Subscriber`.
Publisher example:
#include "zenoh.hxx"
using namespace zenoh;
int main(int argc, char **argv) {
Config config;
auto session = expect<Session>(open(std::move(config)));
// Publish without creating a Publisher object
session.put("demo/example/simple", "Simple!");
// Publish from a Publisher object
auto publisher = expect<Publisher>(session.declare_publisher("demo/example/simple"));
publisher.put("Simple!");
}
Subscriber example:
#include "zenoh.hxx"
#include <iostream>
using namespace zenoh;
int main(int argc, char **argv) {
Config config;
auto session = expect<Session>(open(std::move(config)));
auto subscriber = expect<Subscriber>(
session.declare_subscriber("demo/example/simple", [](const Sample& sample) {
std::cout << "Received: " << sample.get_payload().as_string_view() << std::endl;
})
);
// Wait for a key press to exit
char c = getchar();
}