Skip to content

Commit 2687b70

Browse files
committed
Add GetMonitorSocket go equivalent to pyzmq get_monitor_socket
1 parent 5806f25 commit 2687b70

File tree

2 files changed

+48
-0
lines changed

2 files changed

+48
-0
lines changed

draft/zmq4.go

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1354,6 +1354,30 @@ func (soc *Socket) Monitor(addr string, events Event) error {
13541354
return nil
13551355
}
13561356

1357+
/*
1358+
Return a connected PAIR socket ready to receive the event notifications.
1359+
*/
1360+
func GetMonitorSocket(sock *Socket, events Event) (monitor_sock *Socket, err error) {
1361+
fd, err := sock.GetFd()
1362+
if err != nil {
1363+
return
1364+
}
1365+
addr := fmt.Sprintf("inproc://monitor.s-%d", fd)
1366+
err = sock.Monitor(addr, events)
1367+
if err != nil {
1368+
return
1369+
}
1370+
monitor_sock, err = NewSocket(PAIR)
1371+
if err != nil {
1372+
return
1373+
}
1374+
err = monitor_sock.Connect(addr)
1375+
if err != nil {
1376+
return
1377+
}
1378+
return
1379+
}
1380+
13571381
/*
13581382
Receive a message part from a socket interpreted as an event.
13591383

zmq4.go

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1230,6 +1230,30 @@ func (soc *Socket) Monitor(addr string, events Event) error {
12301230
return nil
12311231
}
12321232

1233+
/*
1234+
Return a connected PAIR socket ready to receive the event notifications.
1235+
*/
1236+
func GetMonitorSocket(sock *Socket, events Event) (monitor_sock *Socket, err error) {
1237+
fd, err := sock.GetFd()
1238+
if err != nil {
1239+
return
1240+
}
1241+
addr := fmt.Sprintf("inproc://monitor.s-%d", fd)
1242+
err = sock.Monitor(addr, events)
1243+
if err != nil {
1244+
return
1245+
}
1246+
monitor_sock, err = NewSocket(PAIR)
1247+
if err != nil {
1248+
return
1249+
}
1250+
err = monitor_sock.Connect(addr)
1251+
if err != nil {
1252+
return
1253+
}
1254+
return
1255+
}
1256+
12331257
/*
12341258
Receive a message part from a socket interpreted as an event.
12351259

0 commit comments

Comments
 (0)