Examples

Publish

#include <string.h>
#include "zenoh/net.h"

int main(int argc, char **argv) {
    char* value = "value";

    zn_session_t *s = zn_open(zn_config_default());
    zn_write(s, zn_rname("/res/name"), value, strlen(value));
    zn_close(s);

    return 0;
}

Subscribe

#include <stdio.h>
#include "zenoh/net.h"

void data_handler(const zn_sample_t *sample, const void *arg) {
    printf(">> Received (%.*s, %.*s)\n",
        (int)sample->key.len, sample->key.val,
        (int)sample->value.len, sample->value.val);
}

int main(int argc, char **argv) {
    zn_session_t *s = zn_open(zn_config_default());
    zn_subscriber_t *sub = zn_declare_subscriber(s, zn_rname("/res/name"), zn_subinfo_default(), data_handler, NULL);

    char c = 0;
    while (c != 'q') {
        c = fgetc(stdin);
    }

    zn_undeclare_subscriber(sub);
    zn_close(s);
    return 0;
}

Query

#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include "zenoh/net.h"

void reply_handler(const zn_source_info_t *info, const zn_sample_t *sample, const void *arg) {
    printf(">> Received (%.*s, %.*s)\n",
        (int)sample->key.len, sample->key.val,
        (int)sample->value.len, sample->value.val);
}

int main(int argc, char** argv) {
    zn_session_t *s = zn_open(zn_config_default());
    zn_query(s, zn_rname("/res/name"), "", zn_query_target_default(), zn_query_consolidation_default(), reply_handler, NULL);

    sleep(1);

    zn_close(s);
    return 0;
}