MCPcopy
hub / github.com/aosabook/500lines / Member

Class Member

cluster/code/cluster.py:511–536  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

509 self.stop()
510
511class Member(object):
512
513 def __init__(self, state_machine, network, peers, seed=None,
514 seed_cls=Seed, bootstrap_cls=Bootstrap):
515 self.network = network
516 self.node = network.new_node()
517 if seed is not None:
518 self.startup_role = seed_cls(self.node, initial_state=seed, peers=peers,
519 execute_fn=state_machine)
520 else:
521 self.startup_role = bootstrap_cls(self.node, execute_fn=state_machine, peers=peers)
522 self.requester = None
523
524 def start(self):
525 self.startup_role.start()
526 self.thread = threading.Thread(target=self.network.run)
527 self.thread.start()
528
529 def invoke(self, input_value, request_cls=Requester):
530 assert self.requester is None
531 q = Queue.Queue()
532 self.requester = request_cls(self.node, input_value, q.put)
533 self.requester.start()
534 output = q.get()
535 self.requester = None
536 return output

Callers 4

test_no_seedMethod · 0.85
test_MemberMethod · 0.85
test_startMethod · 0.85
test_invokeMethod · 0.85

Calls

no outgoing calls

Tested by 4

test_no_seedMethod · 0.68
test_MemberMethod · 0.68
test_startMethod · 0.68
test_invokeMethod · 0.68