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;
}