void updateNode(Topic topic, MsivPv liveMarket, LiveMarketNode node) { var averager = ticksReceived.get(liveMarket); if (!topic.has("ticksReceived")) { return; } node.ticksReceived = topic.get <int>("ticksReceived"); node.runningOn = topic.get <string>("hostname"); averager.add(node.ticksReceived); node.tickRate = (float)averager.movingAverage(); node.size = isEqualSizes_ ? 1 : Math.Max(1F, node.tickRate); node.tickLag = ticks.get(liveMarket).tickLag; node.color = node.tickLag - 5000; node.isDown = now().Subtract(date(topic.get <string>("timestamp"))).TotalSeconds < 10; var downText = node.isDown ? "" : "DOWN "; node.lastTickProcessed = ticks.get(liveMarket).lastTickProcessed(); node.text = downText + liveMarket.market() + "\n" + node.tickRate.ToString("n0") + "/min, " + node.tickLag + "ms\n" + node.ticksReceived.ToString("n0") + "\n" + node.lastTickProcessed.ToString("HH:mm:ss") + "\n" + node.runningOn; }
void recordMarketDataTickReceived(MsivPv liveMarket, DateTime time) { ticks.get(liveMarket).marketDataTicked(time); }