diff options
author | 2016-03-20 16:29:23 +0200 | |
---|---|---|
committer | 2016-03-21 14:49:06 +0200 | |
commit | 7e7cc8a3f9cfa4b0bda18b50ea79145c6bc2a045 (patch) | |
tree | c74b87de7ba812f1d0ace7d834bcefae73528c0c /scripts/external_libs/pyzmq-14.5.0/python2/cel59/64bit/zmq/backend/cffi/_poll.py | |
parent | 14b94326315f1fa46187868dac16503b3f454b9e (diff) |
python 3 - rearrange
Diffstat (limited to 'scripts/external_libs/pyzmq-14.5.0/python2/cel59/64bit/zmq/backend/cffi/_poll.py')
-rw-r--r-- | scripts/external_libs/pyzmq-14.5.0/python2/cel59/64bit/zmq/backend/cffi/_poll.py | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/scripts/external_libs/pyzmq-14.5.0/python2/cel59/64bit/zmq/backend/cffi/_poll.py b/scripts/external_libs/pyzmq-14.5.0/python2/cel59/64bit/zmq/backend/cffi/_poll.py new file mode 100644 index 00000000..9bca34ca --- /dev/null +++ b/scripts/external_libs/pyzmq-14.5.0/python2/cel59/64bit/zmq/backend/cffi/_poll.py @@ -0,0 +1,56 @@ +# coding: utf-8 +"""zmq poll function""" + +# Copyright (C) PyZMQ Developers +# Distributed under the terms of the Modified BSD License. + +from ._cffi import C, ffi, zmq_version_info + +from .constants import * + +from zmq.error import _check_rc + + +def _make_zmq_pollitem(socket, flags): + zmq_socket = socket._zmq_socket + zmq_pollitem = ffi.new('zmq_pollitem_t*') + zmq_pollitem.socket = zmq_socket + zmq_pollitem.fd = 0 + zmq_pollitem.events = flags + zmq_pollitem.revents = 0 + return zmq_pollitem[0] + +def _make_zmq_pollitem_fromfd(socket_fd, flags): + zmq_pollitem = ffi.new('zmq_pollitem_t*') + zmq_pollitem.socket = ffi.NULL + zmq_pollitem.fd = socket_fd + zmq_pollitem.events = flags + zmq_pollitem.revents = 0 + return zmq_pollitem[0] + +def zmq_poll(sockets, timeout): + cffi_pollitem_list = [] + low_level_to_socket_obj = {} + for item in sockets: + if isinstance(item[0], int): + low_level_to_socket_obj[item[0]] = item + cffi_pollitem_list.append(_make_zmq_pollitem_fromfd(item[0], item[1])) + else: + low_level_to_socket_obj[item[0]._zmq_socket] = item + cffi_pollitem_list.append(_make_zmq_pollitem(item[0], item[1])) + items = ffi.new('zmq_pollitem_t[]', cffi_pollitem_list) + list_length = ffi.cast('int', len(cffi_pollitem_list)) + c_timeout = ffi.cast('long', timeout) + rc = C.zmq_poll(items, list_length, c_timeout) + _check_rc(rc) + result = [] + for index in range(len(items)): + if not items[index].socket == ffi.NULL: + if items[index].revents > 0: + result.append((low_level_to_socket_obj[items[index].socket][0], + items[index].revents)) + else: + result.append((items[index].fd, items[index].revents)) + return result + +__all__ = ['zmq_poll'] |