zCm 0.1.0
Lightweight messaging toolkit
Loading...
Searching...
No Matches
zcm_node.h File Reference

Node registry and transport socket APIs.

#include <stddef.h>
#include "zcm_msg.h"

Go to the source code of this file.

Data Structures

struct  zcm_node_entry
 Node listing entry returned by zcm_node_list(). More...

Macros

#define ZCM_NODE_REGISTER_EX_DUPLICATE   (-2)
 zcm_node_register_ex() failure code when a name is already owned by another process.

Typedefs

typedef struct zcm_node zcm_node_t
 Opaque broker-registry client handle.
typedef struct zcm_socket zcm_socket_t
 Opaque transport socket wrapper.
typedef struct zcm_node_entry zcm_node_entry_t
 Node listing entry returned by zcm_node_list().

Enumerations

enum  zcm_socket_type_t {
  ZCM_SOCK_REQ = 1 , ZCM_SOCK_REP = 2 , ZCM_SOCK_PUB = 3 , ZCM_SOCK_SUB = 4 ,
  ZCM_SOCK_PAIR = 5 , ZCM_SOCK_PUSH = 6 , ZCM_SOCK_PULL = 7
}
 Socket type abstraction mapped to ZeroMQ socket kinds. More...

Functions

zcm_node_tzcm_node_new (struct zcm_context *ctx, const char *broker_endpoint)
 Create a node helper bound to one broker endpoint.
void zcm_node_free (zcm_node_t *node)
 Destroy a node created by zcm_node_new().
int zcm_node_unregister (zcm_node_t *node, const char *name)
 Remove a previously registered name from the broker.
int zcm_node_register_ex (zcm_node_t *node, const char *name, const char *endpoint, const char *ctrl_endpoint, const char *host, int pid, const char *role, int pub_port, int push_port)
 Register a process with extended metadata.
int zcm_node_lookup (zcm_node_t *node, const char *name, char *out_endpoint, size_t out_size)
 Resolve a registered name to its endpoint.
int zcm_node_info (zcm_node_t *node, const char *name, char *out_endpoint, size_t out_ep_size, char *out_ctrl_endpoint, size_t out_ctrl_size, char *out_host, size_t out_host_size, int *out_pid)
 Fetch extended metadata for a registered name.
int zcm_node_list (zcm_node_t *node, zcm_node_entry_t **out_entries, size_t *out_count)
 List currently registered node entries.
void zcm_node_list_free (zcm_node_entry_t *entries, size_t count)
 Free list memory returned by zcm_node_list().
int zcm_node_report_metrics (zcm_node_t *node, const char *name, const char *role, int pub_port, int push_port, int pub_bytes, int sub_bytes, int push_bytes, int pull_bytes)
 Report runtime role/metric values for a registered name to the broker.
int zcm_node_handle_control_msg (zcm_msg_t *req, zcm_msg_t *reply, int *out_should_exit)
 Handle a standard ZCM_CMD management message.
zcm_socket_tzcm_socket_new (struct zcm_context *ctx, zcm_socket_type_t type)
 Create a transport socket wrapper.
void zcm_socket_free (zcm_socket_t *sock)
 Destroy a socket created by zcm_socket_new().
int zcm_socket_bind (zcm_socket_t *sock, const char *endpoint)
 Bind a socket to an endpoint.
int zcm_socket_connect (zcm_socket_t *sock, const char *endpoint)
 Connect a socket to an endpoint.
int zcm_socket_set_subscribe (zcm_socket_t *sock, const char *prefix, size_t len)
 Configure subscription prefix on a SUB socket.
int zcm_socket_send_msg (zcm_socket_t *sock, const zcm_msg_t *msg)
 Serialize and send a typed message.
int zcm_socket_recv_msg (zcm_socket_t *sock, zcm_msg_t *msg)
 Receive and decode a typed message.
int zcm_socket_send_bytes (zcm_socket_t *sock, const void *data, size_t len)
 Send raw bytes.
int zcm_socket_recv_bytes (zcm_socket_t *sock, void *buf, size_t buf_len, size_t *out_len)
 Receive raw bytes into a caller-provided buffer.
int zcm_socket_set_timeouts (zcm_socket_t *sock, int ms)
 Configure receive/send socket timeouts.