Module: OMQ::FFI::Libzmq
- Extended by:
- FFI::Library
- Defined in:
- lib/omq/ffi/libzmq.rb
Overview
Minimal libzmq FFI bindings — only what OMQ needs.
Constant Summary collapse
- ZMQ_PAIR =
Socket types
0- ZMQ_PUB =
1- ZMQ_SUB =
2- ZMQ_REQ =
3- ZMQ_REP =
4- ZMQ_DEALER =
5- ZMQ_ROUTER =
6- ZMQ_PULL =
7- ZMQ_PUSH =
8- ZMQ_XPUB =
9- ZMQ_XSUB =
10- ZMQ_SERVER =
12- ZMQ_CLIENT =
13- ZMQ_RADIO =
14- ZMQ_DISH =
15- ZMQ_GATHER =
16- ZMQ_SCATTER =
17- ZMQ_PEER =
19- ZMQ_CHANNEL =
20- SOCKET_TYPES =
Socket type name → constant
{ PAIR: ZMQ_PAIR, PUB: ZMQ_PUB, SUB: ZMQ_SUB, REQ: ZMQ_REQ, REP: ZMQ_REP, DEALER: ZMQ_DEALER, ROUTER: ZMQ_ROUTER, PULL: ZMQ_PULL, PUSH: ZMQ_PUSH, XPUB: ZMQ_XPUB, XSUB: ZMQ_XSUB, SERVER: ZMQ_SERVER, CLIENT: ZMQ_CLIENT, RADIO: ZMQ_RADIO, DISH: ZMQ_DISH, GATHER: ZMQ_GATHER, SCATTER: ZMQ_SCATTER, PEER: ZMQ_PEER, CHANNEL: ZMQ_CHANNEL, }.freeze
- ZMQ_DONTWAIT =
Send/recv flags
1- ZMQ_SNDMORE =
2- ZMQ_IDENTITY =
Socket options
5- ZMQ_SUBSCRIBE =
6- ZMQ_UNSUBSCRIBE =
7- ZMQ_RCVMORE =
13- ZMQ_FD =
14- ZMQ_EVENTS =
15- ZMQ_LINGER =
17- ZMQ_SNDHWM =
23- ZMQ_RCVHWM =
24- ZMQ_RCVTIMEO =
27- ZMQ_SNDTIMEO =
28- ZMQ_MAXMSGSIZE =
22- ZMQ_LAST_ENDPOINT =
32- ZMQ_ROUTER_MANDATORY =
33- ZMQ_RECONNECT_IVL =
18- ZMQ_RECONNECT_IVL_MAX =
21- ZMQ_CONFLATE =
54- MSG_T_SIZE =
zmq_msg_t is 64 bytes on all platforms
64
Class Method Summary collapse
-
.alloc_msg ⇒ FFI::MemoryPointer
Allocates a zmq_msg_t on the heap.
-
.check!(rc, label = "zmq") ⇒ Object
Raises an error with the current zmq_errno message.
Class Method Details
.alloc_msg ⇒ FFI::MemoryPointer
Allocates a zmq_msg_t on the heap.
120 121 122 |
# File 'lib/omq/ffi/libzmq.rb', line 120 def self.alloc_msg ::FFI::MemoryPointer.new(MSG_T_SIZE) end |
.check!(rc, label = "zmq") ⇒ Object
Raises an error with the current zmq_errno message.
127 128 129 130 131 |
# File 'lib/omq/ffi/libzmq.rb', line 127 def self.check!(rc, label = "zmq") return rc if rc >= 0 errno = zmq_errno raise "#{label}: #{zmq_strerror(errno)} (errno #{errno})" end |