33 #define BUS_MAX_CONCURRENT_SENDS 10
36 #define BUS_DEFAULT_TIMEOUT_SEC 10
39 #define BUS_NO_SEQ_ID (-1)
42 #define BUS_LOG(B, LEVEL, EVENT_KEY, MSG, UDATA) (void)B
43 #define BUS_LOG_SNPRINTF(B, LEVEL, EVENT_KEY, UDATA, MAX_SZ, FMT, ...) (void)B
45 #define BUS_LOG(B, LEVEL, EVENT_KEY, MSG, UDATA) \
47 struct bus *_b = (B); \
49 log_event_t _event_key = EVENT_KEY; \
51 void *_udata = UDATA; \
52 if (_b->log_level >= _level && _b->log_cb != NULL) { \
53 _b->log_cb(_event_key, _level, _msg, _udata); \
57 #define BUS_LOG_STRINGIFY(X) #X
59 #define BUS_LOG_SNPRINTF(B, LEVEL, EVENT_KEY, UDATA, MAX_SZ, FMT, ...) \
61 struct bus *_b = (B); \
63 log_event_t _event_key = EVENT_KEY; \
64 void *_udata = UDATA; \
65 if (_b->log_level >= _level && _b->log_cb != NULL) { \
66 char _log_buf[MAX_SZ]; \
67 if (MAX_SZ < snprintf(_log_buf, MAX_SZ, \
68 FMT, __VA_ARGS__)) { \
69 _b->log_cb(_event_key, _level, \
70 "snprintf failure -- " \
74 snprintf(_line_buf, 32, "line %d\n", __LINE__); \
75 _b->log_cb(_event_key, _level, _line_buf, _udata); \
77 _b->log_cb(_event_key, _level, _log_buf, _udata); \
83 #define BUS_ASSERT(B, UDATA, COND) \
87 BUS_LOG_SNPRINTF(B, 0, LOG_ASSERT, UDATA, 128, \
88 "BUS FAILURE at %s:%d in %s: assert(" #COND ")", \
89 __FILE__, (int)__LINE__, __func__); \
131 size_t read_size,
void *socket_udata);
160 int64_t seq_id,
void *bus_udata,
void *socket_udata);
bus_sink_cb_res_t( bus_sink_cb)(uint8_t *read_buf, size_t read_size, void *socket_udata)
bus_unpack_cb * unpack_cb
Configuration for thread pool.
static uint8_t read_buf[(2 *1024L *1024)]
bus_unpack_cb_res_t( bus_unpack_cb)(void *msg, void *socket_udata)
bus_unexpected_msg_cb * unexpected_msg_cb
uintptr_t opaque_error_id
struct threadpool_config threadpool_cfg
void( bus_msg_cb)(bus_msg_result_t *res, void *udata)
void( bus_log_cb)(log_event_t event, int log_level, const char *msg, void *udata)
void( bus_unexpected_msg_cb)(void *msg, int64_t seq_id, void *bus_udata, void *socket_udata)
void( bus_error_cb)(bus_unpack_cb_res_t result, void *socket_udata)