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

Runtime config parsing and bootstrap helpers for zcm_proc daemons.

#include <stddef.h>
#include <stdint.h>
#include "zcm_proc.h"

Go to the source code of this file.

Data Structures

struct  zcm_proc_data_socket_cfg
 One runtime data socket entry parsed from XML. More...
struct  zcm_proc_type_handler_cfg
 One configured typed request handler signature. More...
struct  zcm_proc_runtime_cfg
 Parsed runtime config for one zcm_proc instance. More...

Macros

#define ZCM_PROC_TYPE_HANDLER_MAX   32
 Maximum number of <type> handlers supported in one proc config.
#define ZCM_PROC_TYPE_HANDLER_ARG_MAX   32
 Maximum number of typed arguments parsed for one <type> handler.
#define ZCM_PROC_DATA_SOCKET_MAX   16
 Maximum number of <dataSocket> entries supported per proc config.
#define ZCM_PROC_SUB_TOPIC_MAX   16
 Maximum number of SUB topics supported for one SUB data socket.

Typedefs

typedef enum zcm_proc_data_socket_kind zcm_proc_data_socket_kind_t
 Data socket kind declared in proc runtime config.
typedef struct zcm_proc_data_socket_cfg zcm_proc_data_socket_cfg_t
 One runtime data socket entry parsed from XML.
typedef enum zcm_proc_type_arg_kind zcm_proc_type_arg_kind_t
 Supported typed argument kinds parsed from <type format="...">.
typedef struct zcm_proc_type_handler_cfg zcm_proc_type_handler_cfg_t
 One configured typed request handler signature.
typedef struct zcm_proc_runtime_cfg zcm_proc_runtime_cfg_t
 Parsed runtime config for one zcm_proc instance.
typedef void(* zcm_proc_runtime_sub_payload_cb_t) (const char *self_name, const char *source_name, const void *payload, size_t payload_len, void *user)
 Optional callback for bytes received by SUB/PULL data workers.

Enumerations

enum  zcm_proc_data_socket_kind { ZCM_PROC_DATA_SOCKET_PUB = 1 , ZCM_PROC_DATA_SOCKET_SUB = 2 , ZCM_PROC_DATA_SOCKET_PUSH = 3 , ZCM_PROC_DATA_SOCKET_PULL = 4 }
 Data socket kind declared in proc runtime config. More...
enum  zcm_proc_type_arg_kind { ZCM_PROC_TYPE_ARG_TEXT = 1 , ZCM_PROC_TYPE_ARG_DOUBLE = 2 , ZCM_PROC_TYPE_ARG_FLOAT = 3 , ZCM_PROC_TYPE_ARG_INT = 4 }
 Supported typed argument kinds parsed from <type format="...">. More...

Functions

int zcm_proc_runtime_load_config (const char *cfg_path, zcm_proc_runtime_cfg_t *cfg)
 Parse and validate a runtime config XML into an in-memory structure.
int zcm_proc_runtime_bootstrap (const char *cfg_path, zcm_proc_runtime_cfg_t *cfg, zcm_proc_t **out_proc, zcm_socket_t **out_rep)
 Load config and initialize a daemon process/socket pair.
const zcm_proc_type_handler_cfg_tzcm_proc_runtime_find_type_handler (const zcm_proc_runtime_cfg_t *cfg, const char *type_name)
 Find a configured TYPE handler by case-insensitive name.
int zcm_proc_runtime_decode_type_payload (zcm_msg_t *msg, const zcm_proc_type_handler_cfg_t *handler, char *summary, size_t summary_size)
 Decode a message payload according to one TYPE handler signature.
const char * zcm_proc_runtime_data_role (const zcm_proc_runtime_cfg_t *cfg)
 Return the data role string for configured data sockets.
const char * zcm_proc_runtime_builtin_ping_request (void)
 Builtin command request literal used by zcm_proc command semantics.
const char * zcm_proc_runtime_builtin_ping_reply (void)
 Builtin command reply literal for builtin ping requests.
const char * zcm_proc_runtime_builtin_default_reply (void)
 Builtin default reply literal for unknown text commands.
const char * zcm_proc_runtime_builtin_reply_for_command (const char *cmd, uint32_t cmd_len)
 Resolve builtin text command reply (PING => PONG, DATA_METRICS => ROLE=NONE;PUB_PORT=-1;PUSH_PORT=-1;PUB_BYTES=-1;SUB_BYTES=-1;PUSH_BYTES=-1;PULL_BYTES=-1;SUB_TARGETS=-;SUB_TARGET_BYTES=-, else OK).
int zcm_proc_runtime_first_pub_port (const zcm_proc_runtime_cfg_t *cfg, int *out_port)
 Return the first configured PUB data port.
int zcm_proc_runtime_first_push_port (const zcm_proc_runtime_cfg_t *cfg, int *out_port)
 Return the first configured PUSH data port.
int zcm_proc_runtime_payload_bytes (const zcm_proc_runtime_cfg_t *cfg, zcm_proc_data_socket_kind_t kind, int *out_bytes)
 Return payload byte count for one data socket kind.
void zcm_proc_runtime_start_data_workers (zcm_proc_runtime_cfg_t *cfg, zcm_proc_t *proc, zcm_proc_runtime_sub_payload_cb_t on_sub_payload, void *user)
 Start detached background workers for configured data sockets.