2019-05-28 16:00:36 +00:00
|
|
|
import sys
|
|
|
|
import asyncio
|
|
|
|
import random
|
|
|
|
import threading
|
|
|
|
import syndicate.mini.core as S
|
|
|
|
|
|
|
|
OverlayLink = S.Record.makeConstructor('OverlayLink', 'downNode upNode')
|
|
|
|
|
2019-06-23 13:37:16 +00:00
|
|
|
conn = S.Connection.from_url(sys.argv[1])
|
2019-05-28 16:00:36 +00:00
|
|
|
|
|
|
|
uplinks = {}
|
2019-06-11 23:26:40 +00:00
|
|
|
def add_uplink(turn, src, tgt):
|
2019-05-28 16:00:36 +00:00
|
|
|
uplinks[src] = tgt
|
|
|
|
summarise_uplinks()
|
2019-06-11 23:26:40 +00:00
|
|
|
def del_uplink(turn, src, tgt):
|
2019-05-28 16:00:36 +00:00
|
|
|
del uplinks[src]
|
|
|
|
summarise_uplinks()
|
|
|
|
def summarise_uplinks():
|
|
|
|
print(repr(uplinks))
|
2019-06-11 23:26:40 +00:00
|
|
|
|
|
|
|
with conn.turn() as t:
|
2019-06-23 20:43:52 +00:00
|
|
|
with conn.actor().react(t) as facet:
|
|
|
|
facet.add(S.Observe(OverlayLink(S.CAPTURE, S.CAPTURE)),
|
|
|
|
on_add=add_uplink,
|
|
|
|
on_del=del_uplink)
|
2019-05-28 16:00:36 +00:00
|
|
|
|
|
|
|
loop = asyncio.get_event_loop()
|
|
|
|
loop.set_debug(True)
|
2019-06-23 20:43:52 +00:00
|
|
|
loop.run_until_complete(conn.reconnecting_main(loop))
|
2019-05-28 16:00:36 +00:00
|
|
|
loop.stop()
|
|
|
|
loop.run_forever()
|
|
|
|
loop.close()
|