20#include <nmsg/input.h>
21#include <nmsg/output.h>
48 nmsg_io_close_type_eof,
49 nmsg_io_close_type_count,
50 nmsg_io_close_type_interval
57 nmsg_io_io_type_input,
58 nmsg_io_io_type_output
65 nmsg_io_output_mode_stripe,
66 nmsg_io_output_mode_mirror
104struct nmsg_io_close_event {
107 nmsg_output_t *output;
110 nmsg_input_type input_type;
111 nmsg_output_type output_type;
114 nmsg_io_io_type io_type;
115 nmsg_io_close_type close_type;
124typedef void (*nmsg_io_close_fp)(
struct nmsg_io_close_event *ce);
129typedef void (*nmsg_io_user_fp)(
unsigned threadno,
void *user);
180nmsg_io_add_filter(nmsg_io_t io, nmsg_filter_message_fp fp,
void *data);
205nmsg_io_add_filter_module(nmsg_io_t io,
const char *name,
206 const void *param,
const size_t len_param);
222nmsg_io_add_input(nmsg_io_t io, nmsg_input_t input,
void *user);
243nmsg_io_add_input_channel(nmsg_io_t io,
const char *chan,
void *user);
261nmsg_io_add_input_zmq_channel(nmsg_io_t io,
void *zmq_ctx,
const char *chan,
void *user);
283nmsg_io_add_input_sockspec(nmsg_io_t io,
const char *sockspec,
void *user);
299nmsg_io_add_input_fname(nmsg_io_t io,
const char *fname,
void *user);
315nmsg_io_add_output(nmsg_io_t io, nmsg_output_t output,
void *user);
336nmsg_io_loop(nmsg_io_t io);
349nmsg_io_breakloop(nmsg_io_t io);
357nmsg_io_destroy(nmsg_io_t *io);
365nmsg_io_get_num_inputs(nmsg_io_t io);
373nmsg_io_get_num_outputs(nmsg_io_t io);
388nmsg_io_set_close_fp(nmsg_io_t io, nmsg_io_close_fp close_fp);
401nmsg_io_set_atstart_fp(nmsg_io_t io, nmsg_io_user_fp user_fp,
void *user);
414nmsg_io_set_atexit_fp(nmsg_io_t io, nmsg_io_user_fp user_fp,
void *user);
434nmsg_io_set_count(nmsg_io_t io,
unsigned count);
445nmsg_io_set_debug(nmsg_io_t io,
int debug);
462nmsg_io_set_filter_policy(nmsg_io_t io,
const nmsg_filter_message_verdict policy);
479nmsg_io_set_interval(nmsg_io_t io,
unsigned interval);
491nmsg_io_set_interval_randomized(nmsg_io_t io,
bool randomized);
507nmsg_io_set_output_mode(nmsg_io_t io, nmsg_io_output_mode output_mode);
527nmsg_io_get_stats(nmsg_io_t io, uint64_t *sum_in, uint64_t *sum_out, uint64_t *container_recvs, uint64_t *container_drops);