From 286bf7ecc128b6787286a64043b5d2a929c9bf04 Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Thu, 20 Jun 2019 23:09:30 +0100 Subject: [PATCH] Hierarchical node connectivity display --- packages/server/src/monitor.js | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/packages/server/src/monitor.js b/packages/server/src/monitor.js index 07a4b60..957ac8b 100644 --- a/packages/server/src/monitor.js +++ b/packages/server/src/monitor.js @@ -4,6 +4,7 @@ const UI = activate require("@syndicate-lang/driver-browser-ui"); // @jsx UI.html // @jsxFrag UI.htmlFragment +const { Bytes } = require("@syndicate-lang/core"); const { WSServer, ToServer, FromServer, ServerConnected } = activate require("./client"); const P = activate require("./internal_protocol"); @@ -12,6 +13,8 @@ const Federation = require("./federation"); assertion type DetectedOverlay(scope); assertion type AddressMap(from, nodeId, to); assertion type OverlayLink(downNode, upNode); +assertion type OverlayNode(id); +assertion type OverlayRoot(); spawn { const ui = new UI.Anchor(); @@ -80,13 +83,18 @@ spawn { assert ui.html('#overlays',

Overlay {scope}

- +
); - during FromServer(addr, $item(OverlayLink(_, _))) { + const nodeName = (n) => { + if (OverlayNode.isClassOf(n)) return "node_" + Bytes.from(OverlayNode._id(n)).toHex(); + return "root"; + }; + during FromServer(addr, $item(OverlayLink($down, $up))) { + console.log(down.toString(), '-->', up.toString()); const ui = new UI.Anchor(); - assert ui.html(`#overlays div.o_${scope} ul.links`, -
  • {item && item.toString()}
  • ); + assert ui.html(`#overlays div.o_${scope} ul.${nodeName(up)}`, +
  • {down.toString()}
  • ); } during FromServer(addr, $item(AddressMap(_, _, _))) { const ui = new UI.Anchor();