Zth (libzth)
Loading...
Searching...
No Matches
zmq.h
Go to the documentation of this file.
1#ifndef ZTH_ZMQ_H
2#define ZTH_ZMQ_H
3/*
4 * SPDX-FileCopyrightText: 2019-2026 Jochem Rutgers
5 *
6 * SPDX-License-Identifier: MPL-2.0
7 */
8
18#include <libzth/macros.h>
19
20#ifdef ZTH_HAVE_LIBZMQ
21# include <zmq.h>
22
23# ifndef ZTH_REDIRECT_ZMQ
24# define ZTH_REDIRECT_ZMQ 1
25# endif
26
27# ifdef __cplusplus
28namespace zth {
29namespace zmq {
30
31void* zmq_context();
32void* zmq_socket(int type);
33int zmq_msg_send(zmq_msg_t* msg, void* socket, int flags);
34int zmq_msg_recv(zmq_msg_t* msg, void* socket, int flags);
35int zmq_send(void* socket, void const* buf, size_t len, int flags);
36int zmq_recv(void* socket, void* buf, size_t len, int flags);
37int zmq_send_const(void* socket, void const* buf, size_t len, int flags);
38
39} // namespace zmq
40} // namespace zth
41
42# endif // __cplusplus
43
44# if ZTH_REDIRECT_ZMQ
45# ifdef __cplusplus
51EXTERN_C ZTH_EXPORT ZTH_INLINE void* zth_zmq_context()
52{
53 return zth::zmq::zmq_context();
54}
55
61EXTERN_C ZTH_EXPORT ZTH_INLINE void* zth_zmq_socket(int type)
62{
63 return zth::zmq::zmq_socket(type);
64}
65
71EXTERN_C ZTH_EXPORT ZTH_INLINE int zth_zmq_msg_send(zmq_msg_t* msg, void* socket, int flags)
72{
73 return zth::zmq::zmq_msg_send(msg, socket, flags);
74}
75
81EXTERN_C ZTH_EXPORT ZTH_INLINE int zth_zmq_msg_recv(zmq_msg_t* msg, void* socket, int flags)
82{
83 return zth::zmq::zmq_msg_recv(msg, socket, flags);
84}
85
91EXTERN_C ZTH_EXPORT ZTH_INLINE int
92zth_zmq_send(void* socket, void const* buf, size_t len, int flags)
93{
94 return zth::zmq::zmq_send(socket, buf, len, flags);
95}
96
102EXTERN_C ZTH_EXPORT ZTH_INLINE int zth_zmq_recv(void* socket, void* buf, size_t len, int flags)
103{
104 return zth::zmq::zmq_recv(socket, buf, len, flags);
105}
106
112EXTERN_C ZTH_EXPORT ZTH_INLINE int
113zth_zmq_send_const(void* socket, void const* buf, size_t len, int flags)
114{
115 return zth::zmq::zmq_send_const(socket, buf, len, flags);
116}
117
118# else // !__cplusplus
119ZTH_EXPORT void* zth_zmq_socket(int type);
120ZTH_EXPORT int zth_zmq_msg_send(zmq_msg_t* msg, void* socket, int flags);
121ZTH_EXPORT int zth_zmq_msg_recv(zmq_msg_t* msg, void* socket, int flags);
122ZTH_EXPORT int zth_zmq_send(void* socket, void const* buf, size_t len, int flags);
123ZTH_EXPORT int zth_zmq_recv(void* socket, void* buf, size_t len, int flags);
124ZTH_EXPORT int zth_zmq_send_const(void* socket, void const* buf, size_t len, int flags);
125# endif // __cplusplus
126
127# define zmq_ctx_new zth_zmq_context
128# define zmq_ctx_term(c)
129# define zmq_socket(c, t) zth_zmq_socket(t)
130# define zmq_msg_send zth_zmq_msg_send
131# define zmq_msg_recv zth_zmq_msg_recv
132# define zmq_send zth_zmq_send
133# define zmq_recv zth_zmq_recv
134# define zmq_send_const zth_zmq_send_const
135# endif // ZTH_REDIRECT_ZMQ
136
137#endif // ZTH_HAVE_LIBZMQ
138#endif // ZTH_ZMQ_H
int zth_zmq_recv(void *socket, void *buf, size_t len, int flags)
Fiber-aware wrapper for 0MQ's zmq_recv().
Definition zmq.h:102
int zth_zmq_msg_recv(zmq_msg_t *msg, void *socket, int flags)
Fiber-aware wrapper for 0MQ's zmq_msg_recv().
Definition zmq.h:81
void * zth_zmq_context()
Returns the (only) 0MQ context, used by all fibers.
Definition zmq.h:51
int zth_zmq_send_const(void *socket, void const *buf, size_t len, int flags)
Fiber-aware wrapper for 0MQ's zmq_send_const().
Definition zmq.h:113
void * zth_zmq_socket(int type)
Fiber-aware wrapper for 0MQ's zmq_socket().
Definition zmq.h:61
int zth_zmq_send(void *socket, void const *buf, size_t len, int flags)
Fiber-aware wrapper for 0MQ's zmq_send().
Definition zmq.h:92
int zth_zmq_msg_send(zmq_msg_t *msg, void *socket, int flags)
Fiber-aware wrapper for 0MQ's zmq_msg_send().
Definition zmq.h:71
int zmq_msg_send(zmq_msg_t *msg, void *socket, int flags)
Fiber-aware wrapper for 0MQ's zmq_msg_send().
Definition zmq.cpp:70
int zmq_recv(void *socket, void *buf, size_t len, int flags)
Fiber-aware wrapper for 0MQ's zmq_recv().
Definition zmq.cpp:136
void * zmq_socket(int type)
Fiber-aware wrapper for 0MQ's zmq_socket().
Definition zmq.cpp:61
int zmq_send(void *socket, void const *buf, size_t len, int flags)
Fiber-aware wrapper for 0MQ's zmq_send().
Definition zmq.cpp:114
int zmq_msg_recv(zmq_msg_t *msg, void *socket, int flags)
Fiber-aware wrapper for 0MQ's zmq_msg_recv().
Definition zmq.cpp:92
void * zmq_context()
Returns the (only) 0MQ context, used by all fibers.
Definition zmq.cpp:49
int zmq_send_const(void *socket, void const *buf, size_t len, int flags)
Fiber-aware wrapper for 0MQ's zmq_send_const().
Definition zmq.cpp:158
#define ZTH_INLINE
Definition macros.h:129
#define zmq_send
Definition zmq.h:132
#define zmq_msg_recv
Definition zmq.h:131
#define zmq_msg_send
Definition zmq.h:130
#define zmq_recv
Definition zmq.h:133
#define zmq_send_const
Definition zmq.h:134
#define zmq_socket(c, t)
Definition zmq.h:129