ZIO
Python and C++ interface to ZeroMQ and Zyre
python
zio
mains
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
zio.mains.peers.cli
def cli(ctx)
Definition:
peers.py:10
zio.mains.peers.peers
def peers(timeout, wait_for, pre_sleep, post_sleep, name, headers)
Definition:
peers.py:27
zio::Peer
Peer at the network to discover peers and advertise self.
Definition:
peer.hpp:44
Generated by
1.8.13