8 log = logging.getLogger(
"zio")
    16     ZIO DOMO command line interface    20 sock_name2type = dict(router=zmq.ROUTER,
    26 @cli.command(
'domo-tripping')
    27 @click.option(
"--verbose/--no-verbose", default=
False,
    28               help=
"Provide extra output")
    29 @click.option(
"-n", 
"--number", default=10000,
    30               help=
"Number of requests")
    31 @click.option(
"-f", 
"--frontend",
    32               type=click.Choice([
"router", 
"server"], case_sensitive=
False),
    34               help=
"Type name for the front-end socket")
    35 @click.option(
"-b", 
"--backend",
    36               type=click.Choice([
"router", 
"server"], case_sensitive=
False),
    38               help=
"Type name for the back-end socket")
    39 def tripping(verbose, number, frontend, backend):
    41     Run the tripping example.  The two optinal     45     fes_type = sock_name2type[frontend.lower()]
    46     bes_type = sock_name2type[backend.lower()]
    47     main(fes_type, bes_type, number, verbose)
    50 @cli.command(
'domo-broker')
    51 @click.option(
"--verbose/--no-verbose", default=
False,
    52               help=
"Provide extra output")
    53 @click.option(
"-s", 
"--socket",
    54               type=click.Choice([
"router", 
"server"], case_sensitive=
False),
    56               help=
"Type name for socket")
    57 @click.option(
"-a",
"--address", default=
"tcp://127.0.0.1:5555")
    58 def broker(verbose, socket, address):
    63     broker = Broker(sock_name2type[socket], verbose)
    67 @cli.command(
'domo-echo-worker')
    68 @click.option(
"--verbose/--no-verbose", default=
False,
    69               help=
"Provide extra output")
    70 @click.option(
"-s", 
"--socket",
    71               type=click.Choice([
"dealer", 
"client"], case_sensitive=
False),
    73               help=
"Type name for socket")
    74 @click.option(
"-a",
"--address", default=
"tcp://127.0.0.1:5555")
    75 def echo(verbose, socket, address):
    77     Run a worker providing an echo service    80     worker = Worker(address, b
"echo", sock_name2type[socket], verbose)
    83         request = worker.recv(reply)
    88 @cli.command(
'domo-echo-client')
    89 @click.option(
"--verbose/--no-verbose", default=
False,
    90               help=
"Provide extra output")
    91 @click.option(
"-s", 
"--socket",
    92               type=click.Choice([
"dealer", 
"client"], case_sensitive=
False),
    94               help=
"Type name for socket")
    95 @click.option(
"-n", 
"--number", default=1,
    96               help=
"Number of times to repeat the service request")
    97 @click.option(
"-a",
"--address", default=
"tcp://127.0.0.1:5555")
    98 @click.argument(
"service")
    99 @click.argument(
"args", nargs=-1)
   100 def client(verbose, socket, number, address, service, args):
   102     Run a client exercising an echo service   105     client = Client(address, sock_name2type[socket], verbose)
   107     service = service.encode(
'utf-8')
   108     request = [one.encode(
'utf-8') 
for one 
in args]
   109     for scount 
in range(number):
   112                 print(
"send",service,request)
   113             client.send(service, request)
   114         except KeyboardInterrupt:
   116     for rcount 
in range(number):
   118             reply = client.recv()
   119         except KeyboardInterrupt:
   126     print(f
'{scount+1} sent, {rcount+1} recv')
 
def broker(verbose, socket, address)
 
def echo(verbose, socket, address)
 
def client(verbose, socket, number, address, service, args)
 
def tripping(verbose, number, frontend, backend)