Skip to content

Commit 4cb8523

Browse files
committed
Support ZeroMQ 4.3.5 in draft mode
1 parent 677823b commit 4cb8523

File tree

1 file changed

+95
-97
lines changed

1 file changed

+95
-97
lines changed

draft/zmq4.go

Lines changed: 95 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -96,37 +96,38 @@ var (
9696

9797
// api compatibility, based on changes in header files
9898
api = map[[2]int]int{
99-
[2]int{0, 0}: 1,
100-
[2]int{0, 1}: 2,
101-
[2]int{0, 2}: 3,
102-
[2]int{0, 3}: 3,
103-
[2]int{0, 4}: 3,
104-
[2]int{0, 5}: 4,
105-
[2]int{0, 6}: 4,
106-
[2]int{0, 7}: 4,
107-
[2]int{0, 8}: 4,
108-
[2]int{0, 9}: 4,
109-
[2]int{0, 10}: 4,
110-
[2]int{1, 0}: 5,
111-
[2]int{1, 1}: 6,
112-
[2]int{1, 2}: 6,
113-
[2]int{1, 3}: 6,
114-
[2]int{1, 4}: 6,
115-
[2]int{1, 5}: 6,
116-
[2]int{1, 6}: 7,
117-
[2]int{1, 7}: 7,
118-
[2]int{1, 8}: 7,
119-
[2]int{2, 0}: 8,
120-
[2]int{2, 1}: 9,
121-
[2]int{2, 2}: 9,
122-
//TODO [2]int{2, 3}: 10,
123-
//TODO [2]int{2, 4}: ?,
124-
//TODO [2]int{2, 5}: ?,
125-
//TODO [2]int{3, 0}: ?,
126-
//TODO [2]int{3, 1}: ?,
127-
//TODO [2]int{3, 2}: ?,
128-
//TODO [2]int{3, 3}: ?,
129-
//TODO [2]int{3, 4}: ?,
99+
{0, 0}: 1,
100+
{0, 1}: 2,
101+
{0, 2}: 3,
102+
{0, 3}: 3,
103+
{0, 4}: 3,
104+
{0, 5}: 4,
105+
{0, 6}: 4,
106+
{0, 7}: 4,
107+
{0, 8}: 4,
108+
{0, 9}: 4,
109+
{0, 10}: 4,
110+
{1, 0}: 5,
111+
{1, 1}: 6,
112+
{1, 2}: 6,
113+
{1, 3}: 6,
114+
{1, 4}: 6,
115+
{1, 5}: 6,
116+
{1, 6}: 7,
117+
{1, 7}: 7,
118+
{1, 8}: 7,
119+
{2, 0}: 8,
120+
{2, 1}: 9,
121+
{2, 2}: 9,
122+
// TODO [2]int{2, 3}: 10,
123+
// TODO [2]int{2, 4}: ?,
124+
// TODO [2]int{2, 5}: ?,
125+
// TODO [2]int{3, 0}: ?,
126+
// TODO [2]int{3, 1}: ?,
127+
// TODO [2]int{3, 2}: ?,
128+
// TODO [2]int{3, 3}: ?,
129+
// TODO [2]int{3, 4}: ?,
130+
// TODO [2]int{3, 5}: ?,
130131
}
131132
)
132133

@@ -141,11 +142,10 @@ func init() {
141142
w, ok2 := api[[2]int{int(C.zmq4_minor), int(C.zmq4_patch)}]
142143
if v != w || !ok1 || !ok2 {
143144
if major != int(C.zmq4_major) || minor != int(C.zmq4_minor) || patch != int(C.zmq4_patch) {
144-
initVersionError =
145-
fmt.Errorf(
146-
"zmq4 was compiled with ZeroMQ version %d.%d.%d, but the runtime links with version %d.%d.%d",
147-
int(C.zmq4_major), int(C.zmq4_minor), int(C.zmq4_patch),
148-
major, minor, patch)
145+
initVersionError = fmt.Errorf(
146+
"zmq4 was compiled with ZeroMQ version %d.%d.%d, but the runtime links with version %d.%d.%d",
147+
int(C.zmq4_major), int(C.zmq4_minor), int(C.zmq4_patch),
148+
major, minor, patch)
149149
return
150150
}
151151
}
@@ -1106,9 +1106,8 @@ For a description of flags, see: http://api.zeromq.org/4-1:zmq-msg-recv#toc2
11061106
11071107
Valid options are
11081108
1109-
- OptRoutingId(0)
1110-
- OptGroup("")
1111-
1109+
- OptRoutingId(0)
1110+
- OptGroup("")
11121111
*/
11131112
func (soc *Socket) RecvWithOpts(flags Flag, options ...interface{}) (string, []interface{}, error) {
11141113
b, o, err := soc.RecvBytesWithOpts(flags, options...)
@@ -1122,9 +1121,8 @@ For a description of flags, see: http://api.zeromq.org/4-1:zmq-msg-recv#toc2
11221121
11231122
Valid options are
11241123
1125-
- OptRoutingId(0)
1126-
- OptGroup("")
1127-
1124+
- OptRoutingId(0)
1125+
- OptGroup("")
11281126
*/
11291127
func (soc *Socket) RecvBytesWithOpts(flags Flag, options ...interface{}) ([]byte, []interface{}, error) {
11301128
opts := make([]interface{}, len(options))
@@ -1266,61 +1264,61 @@ The monitoring callback has the same context as the socket it was created for.
12661264
12671265
Example:
12681266
1269-
package main
1270-
1271-
import (
1272-
zmq "github.com/pebbe/zmq4"
1273-
"log"
1274-
"time"
1275-
)
1276-
1277-
func rep_socket_monitor(addr string) {
1278-
s, err := zmq.NewSocket(zmq.PAIR)
1279-
if err != nil {
1280-
log.Fatalln(err)
1281-
}
1282-
err = s.Connect(addr)
1283-
if err != nil {
1284-
log.Fatalln(err)
1285-
}
1286-
for {
1287-
a, b, c, err := s.RecvEvent(0)
1288-
if err != nil {
1289-
log.Println(err)
1290-
break
1291-
}
1292-
log.Println(a, b, c)
1293-
}
1294-
s.Close()
1295-
}
1296-
1297-
func main() {
1298-
1299-
// REP socket
1300-
rep, err := zmq.NewSocket(zmq.REP)
1301-
if err != nil {
1302-
log.Fatalln(err)
1303-
}
1304-
1305-
// REP socket monitor, all events
1306-
err = rep.Monitor("inproc://monitor.rep", zmq.EVENT_ALL)
1307-
if err != nil {
1308-
log.Fatalln(err)
1309-
}
1310-
go rep_socket_monitor("inproc://monitor.rep")
1311-
1312-
// Generate an event
1313-
rep.Bind("tcp://*:5555")
1314-
if err != nil {
1315-
log.Fatalln(err)
1316-
}
1317-
1318-
// Allow some time for event detection
1319-
time.Sleep(time.Second)
1320-
1321-
rep.Close()
1322-
zmq.Term()
1323-
}
1267+
package main
1268+
1269+
import (
1270+
zmq "github.com/pebbe/zmq4"
1271+
"log"
1272+
"time"
1273+
)
1274+
1275+
func rep_socket_monitor(addr string) {
1276+
s, err := zmq.NewSocket(zmq.PAIR)
1277+
if err != nil {
1278+
log.Fatalln(err)
1279+
}
1280+
err = s.Connect(addr)
1281+
if err != nil {
1282+
log.Fatalln(err)
1283+
}
1284+
for {
1285+
a, b, c, err := s.RecvEvent(0)
1286+
if err != nil {
1287+
log.Println(err)
1288+
break
1289+
}
1290+
log.Println(a, b, c)
1291+
}
1292+
s.Close()
1293+
}
1294+
1295+
func main() {
1296+
1297+
// REP socket
1298+
rep, err := zmq.NewSocket(zmq.REP)
1299+
if err != nil {
1300+
log.Fatalln(err)
1301+
}
1302+
1303+
// REP socket monitor, all events
1304+
err = rep.Monitor("inproc://monitor.rep", zmq.EVENT_ALL)
1305+
if err != nil {
1306+
log.Fatalln(err)
1307+
}
1308+
go rep_socket_monitor("inproc://monitor.rep")
1309+
1310+
// Generate an event
1311+
rep.Bind("tcp://*:5555")
1312+
if err != nil {
1313+
log.Fatalln(err)
1314+
}
1315+
1316+
// Allow some time for event detection
1317+
time.Sleep(time.Second)
1318+
1319+
rep.Close()
1320+
zmq.Term()
1321+
}
13241322
*/
13251323
func (soc *Socket) Monitor(addr string, events Event) error {
13261324
if !soc.opened {

0 commit comments

Comments
 (0)