Go to the documentation of this file.
2 #include "../include/zmq.h"
13 #include "platform.hpp"
15 #if defined ZMQ_HAVE_WINDOWS
44 #define ARRAY_SIZE(x) (sizeof (x) / sizeof (*x))
47 #define TEST_ASSERT_SUCCESS_ERRNO(expr) \
48 test_assert_success_message_errno_helper (expr, NULL, #expr)
53 #define ASSERT_EXPR_SAFE(x) \
58 #define ASSERT_EXPR_SAFE(x) assert (x)
70 const char *frontend_endpoint[4];
71 const char *backend_endpoint[4];
84 printf (
"%s failed%s%s%s, errno = %i (%s)", expr_,
85 msg_ ?
" (additional info: " :
"", msg_ ? msg_ :
"",
132 printf (
"invalid response length: expected 1, received %d", rc);
136 printf (
"invalid response value: expected 1, received %d",
146 uint64_t send_count = 0;
182 uint64_t rxsuccess = 0;
215 assert (frontend_xsub);
223 assert (strlen (
ep) > 5);
234 assert (backend_xpub);
247 assert (strlen (
ep) > 5);
258 assert (control_rep);
281 assert (control_req);
289 rc =
zmq_send (control_req,
"TERMINATE", 9, 0);
298 int main (
int argc,
char *argv[])
301 printf (
"usage: proxy_thr <message-size> <message-count>\n");
318 const char *pub1 =
"inproc://perf_pub1";
319 const char *pub2 =
"inproc://perf_pub2";
320 const char *sub1 =
"inproc://perf_backend";
339 assert (subscriber != 0);
349 assert (publisher1 != 0);
356 assert (publisher2 != 0);
366 unsigned long throughput =
368 double megabits = (double) (throughput *
message_size * 8) / 1000000;
370 printf (
"mean throughput: %d [msg/s]\n", (
int) throughput);
371 printf (
"mean throughput: %.3f [Mb/s]\n", (
double) megabits);
static size_t message_size
const ZMQ_EXPORT char * zmq_strerror(int errnum_)
ZMQ_EXPORT int zmq_ctx_set(void *context_, int option_, int optval_)
void proxy(void *frontend, void *backend, void *capture)
ZMQ_EXPORT void * zmq_threadstart(zmq_thread_fn *func_, void *arg_)
ZMQ_EXPORT int zmq_errno(void)
ZMQ_EXPORT int zmq_msg_send(zmq_msg_t *msg_, void *s_, int flags_)
const char * backend_endpoint[4]
ZMQ_EXPORT void * zmq_ctx_new(void)
static void publisher_thread_main(void *pvoid)
static uint32_t idx(tarjan *t, const upb_refcounted *r)
ZMQ_EXPORT void * zmq_msg_data(zmq_msg_t *msg_)
ZMQ_EXPORT int zmq_connect(void *s_, const char *addr_)
int test_assert_success_message_errno_helper(int rc_, const char *msg_, const char *expr_)
const char * frontend_endpoint[4]
ZMQ_EXPORT size_t zmq_msg_size(const zmq_msg_t *msg_)
ZMQ_EXPORT int zmq_setsockopt(void *s_, int option_, const void *optval_, size_t optvallen_)
ZMQ_EXPORT void zmq_threadclose(void *thread_)
static void subscriber_thread_main(void *pvoid)
ZMQ_EXPORT void * zmq_stopwatch_start(void)
ZMQ_EXPORT int zmq_bind(void *s_, const char *addr_)
int main(int argc, char *argv[])
ZMQ_EXPORT int zmq_msg_recv(zmq_msg_t *msg_, void *s_, int flags_)
ZMQ_EXPORT void * zmq_socket(void *, int type_)
ZMQ_EXPORT int zmq_msg_init(zmq_msg_t *msg_)
ZMQ_EXPORT int zmq_close(void *s_)
#define ASSERT_EXPR_SAFE(x)
static void proxy_thread_main(void *pvoid)
ZMQ_EXPORT int zmq_recv(void *s_, void *buf_, size_t len_, int flags_)
ZMQ_EXPORT int zmq_proxy_steerable(void *frontend_, void *backend_, void *capture_, void *control_)
void terminate_proxy(const proxy_hwm_cfg_t *cfg)
ZMQ_EXPORT int zmq_msg_init_size(zmq_msg_t *msg_, size_t size_)
static void set_hwm(void *skt)
ZMQ_EXPORT int zmq_msg_copy(zmq_msg_t *dest_, zmq_msg_t *src_)
const char * control_endpoint
ZMQ_EXPORT int zmq_ctx_term(void *context_)
ZMQ_EXPORT int zmq_send(void *s_, const void *buf_, size_t len_, int flags_)
static uint64_t message_count
ZMQ_EXPORT int zmq_msg_close(zmq_msg_t *msg_)
#define TEST_ASSERT_SUCCESS_ERRNO(expr)
const SETUP_TEARDOWN_TESTCONTEXT char ep[]
ZMQ_EXPORT unsigned long zmq_stopwatch_stop(void *watch_)
libaditof
Author(s):
autogenerated on Wed May 21 2025 02:06:58