Publish / Subscribe

The publish / subscribe pattern is implemented with classes zenoh::Publisher and 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();
}