Skip to content
Snippets Groups Projects

Deliver notification info

Merged Adham Hashibon requested to merge deliver-to-ui into master
2 files
+ 34
9
Compare changes
  • Side-by-side
  • Inline
Files
2
from traits.api import Any
from traits.api import Any, List
from force_bdss.api import BaseNotificationListener
from force_bdss.api import BaseNotificationListener
import zmq
import zmq
class UINotification(BaseNotificationListener):
class UINotification(BaseNotificationListener):
_zmq_context = Any()
_context = Any()
_zmq_socket = Any()
_pub_socket = Any()
 
_rep_socket = Any()
 
_msg_cache = List()
def deliver(self, model, message):
def deliver(self, model, message):
self._zmq_socket.send(("ACTION {}".format(message)).encode("utf-8"))
try:
 
data = self._rep_socket.recv(flags=zmq.NOBLOCK)
 
except zmq.ZMQError:
 
pass
 
else:
 
self._rep_socket.send_multipart(self._msg_cache)
 
 
msg = "ACTION {}".format(message).encode("utf-8")
 
self._msg_cache.append(msg)
 
self._pub_socket.send(msg)
def init_persistent_state(self, model):
def init_persistent_state(self, model):
self._zmq_context = zmq.Context()
self._context = zmq.Context()
self._zmq_socket = self._zmq_context.socket(zmq.PUB)
self._pub_socket = self._context.socket(zmq.PUB)
self._zmq_socket.bind("tcp://*:12345")
self._pub_socket.bind("tcp://*:12345")
 
 
self._rep_socket = self._context.socket(zmq.REP)
 
self._rep_socket.bind("tcp://*:12346")
Loading