ZIO
Python and C++ interface to ZeroMQ and Zyre
peers.py
Go to the documentation of this file.
1 #!/usr/bin/env python3
2 
3 import zio
4 import sys
5 import time
6 import click
7 
8 @click.group("peers")
9 @click.pass_context
10 def cli(ctx):
11  '''
12  ZIO PEERS command line interface
13  '''
14 
15 @cli.command("peers")
16 @click.option("-t","--timeout", default=1000,
17  help='Time to wait for peers in millisecond, 0 waits forever')
18 @click.option("-w","--wait-for", type=str, multiple=True,
19  help='Wait for one or more peers before exiting, uses timeout')
20 @click.option("--pre-sleep", type=int, default=0,
21  help='Number of seconds to sleep after our peer goes on line and before looking for friends')
22 @click.option("--post-sleep", type=int, default=0,
23  help='Number of seconds to sleep after our peer goes on line and before exiting')
24 @click.option("-n","--name", default="lurker",
25  help='Set a Zyre nick name for this node')
26 @click.argument("headers",nargs=-1)
27 def peers(timeout, wait_for, pre_sleep, post_sleep, name, headers):
28  '''
29  Join Zyre and discover peers.
30  '''
31  hh = dict()
32  for header in headers:
33  k,v = header.split('=')
34  hh[k] = v
35 
36  me = zio.Peer(name, **hh)
37 
38  time.sleep(pre_sleep)
39 
40  got = me.party(wait_for, timeout);
41  for pi in got.values():
42  click.echo(f"{pi.uuid} {pi.nick}")
43  for k,v in pi.headers.items():
44  click.echo(f"\t{k} = {v}")
45 
46  time.sleep(post_sleep)
47 
48  return
49 
50 
def cli(ctx)
Definition: peers.py:10
def peers(timeout, wait_for, pre_sleep, post_sleep, name, headers)
Definition: peers.py:27
Peer at the network to discover peers and advertise self.
Definition: peer.hpp:44