1#include <zmq.h>
2#include <assert.h>
3
4void *zmq_ctx_new (void) {
5    return NULL;
6}
7
8void *zmq_socket (void *, int type) {
9    return NULL;
10}
11
12int zmq_close (void *s) {
13    return (-1);
14}
15
16int zmq_setsockopt (void *s, int option, const void *optval,size_t optvallen) {
17    return (-1);
18}
19
20int zmq_getsockopt (void *s, int option, void *optval,
21                    size_t *optvallen) {
22    return (-1);
23}
24
25int zmq_bind (void *s, const char *addr) {
26    return (-1);
27}
28
29void *zmq_init (int io_threads) {
30    return NULL;
31}
32
33int zmq_term (void *context) {
34    return (-1);
35}
36
37int zmq_ctx_destroy (void *context) {
38    return (-1);
39}
40
41
42int zmq_connect (void *s, const char *addr) {
43    return (-1);
44}
45
46int zmq_send (void *s, const void *buf, size_t len, int flags) {
47    return (-1);
48}
49
50int zmq_recv (void *s, void *buf, size_t len, int flags) {
51    return (-1);
52}
53
54int zmq_errno (void) {
55    return (-1);
56}
57
58const char *zmq_strerror (int errnum) {
59    return "";
60}
61
62int zmq_msg_init (zmq_msg_t *msg) {
63    return (-1);
64}
65
66int zmq_msg_recv (zmq_msg_t *msg, void *s, int flags) {
67    return (-1);
68}
69
70int zmq_msg_close (zmq_msg_t *msg) {
71    return (-1);
72}
73
74void *zmq_msg_data (zmq_msg_t *msg) {
75    return NULL;
76}
77
78size_t zmq_msg_size (zmq_msg_t *msg) {
79    return (0);
80}
81
82