diff options
author | Dan Klein <danklei@cisco.com> | 2015-08-24 13:22:48 +0300 |
---|---|---|
committer | Dan Klein <danklei@cisco.com> | 2015-08-24 13:22:48 +0300 |
commit | dab741a80699f86e86c91718872a052cca9bbb25 (patch) | |
tree | 1959c4a2cea440170a5113dcb067796cb20ffb64 /external_libs/python/pyzmq-14.7.0/examples/pubsub/subscriber.py | |
parent | d3f26ece7d4383df0b22fe9c3cb3e695381ec737 (diff) |
Fixed dependencies of Control Plane to use external_lib sources
Diffstat (limited to 'external_libs/python/pyzmq-14.7.0/examples/pubsub/subscriber.py')
-rw-r--r-- | external_libs/python/pyzmq-14.7.0/examples/pubsub/subscriber.py | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/external_libs/python/pyzmq-14.7.0/examples/pubsub/subscriber.py b/external_libs/python/pyzmq-14.7.0/examples/pubsub/subscriber.py new file mode 100644 index 00000000..b996ad8d --- /dev/null +++ b/external_libs/python/pyzmq-14.7.0/examples/pubsub/subscriber.py @@ -0,0 +1,74 @@ +"""A test that subscribes to NumPy arrays. + +Uses REQ/REP (on PUB/SUB socket + 1) to synchronize +""" + +#----------------------------------------------------------------------------- +# Copyright (c) 2010 Brian Granger +# +# Distributed under the terms of the New BSD License. The full license is in +# the file COPYING.BSD, distributed as part of this software. +#----------------------------------------------------------------------------- + + +import sys +import time + +import zmq +import numpy + +def sync(connect_to): + # use connect socket + 1 + sync_with = ':'.join(connect_to.split(':')[:-1] + + [str(int(connect_to.split(':')[-1]) + 1)] + ) + ctx = zmq.Context.instance() + s = ctx.socket(zmq.REQ) + s.connect(sync_with) + s.send('READY') + s.recv() + +def main(): + if len (sys.argv) != 3: + print 'usage: subscriber <connect_to> <array-count>' + sys.exit (1) + + try: + connect_to = sys.argv[1] + array_count = int (sys.argv[2]) + except (ValueError, OverflowError), e: + print 'array-count must be integers' + sys.exit (1) + + ctx = zmq.Context() + s = ctx.socket(zmq.SUB) + s.connect(connect_to) + s.setsockopt(zmq.SUBSCRIBE,'') + + sync(connect_to) + + start = time.clock() + + print "Receiving arrays..." + for i in range(array_count): + a = s.recv_pyobj() + print " Done." + + end = time.clock() + + elapsed = (end - start) * 1000000 + if elapsed == 0: + elapsed = 1 + throughput = (1000000.0 * float (array_count)) / float (elapsed) + message_size = a.nbytes + megabits = float (throughput * message_size * 8) / 1000000 + + print "message size: %.0f [B]" % (message_size, ) + print "array count: %.0f" % (array_count, ) + print "mean throughput: %.0f [msg/s]" % (throughput, ) + print "mean throughput: %.3f [Mb/s]" % (megabits, ) + + time.sleep(1.0) + +if __name__ == "__main__": + main() |