Exemplo n.º 1
0
            public static IVisiblePeer Clone(IVisiblePeer sourcePeer)
            {
                var r = new ClonedVisiblePeer
                {
                    VectorValues = sourcePeer.VectorValues.ToArray(),
                    Highlighted  = sourcePeer.Highlighted,
                    Name         = sourcePeer.Name
                };

                r.NeighborPeers = new List <IVisiblePeer>();
                foreach (var neighbor in sourcePeer.NeighborPeers)
                {
                    r.NeighborPeers.Add(new ClonedVisiblePeer
                    {
                        VectorValues = neighbor.VectorValues.ToArray()
                    });
                }

                return(r);
            }
Exemplo n.º 2
0
        public event Action <LogMessage> SevereMessageEmitted; // is used to pass errors to android adb log

        public override void EmitListOfPeers(string sourceId, string moduleName, AttentionLevel level, string message, List <IVisiblePeer> peersList_RoutingPath, IVisiblePeer selectedPeer)
        {
            if (!EnableNewLogMessages)
            {
                return;
            }
            var msg = new LogMessage(this)
            {
                AttentionLevel       = level,
                ManagedThreadId      = Thread.CurrentThread.ManagedThreadId,
                Time                 = TimeNow,
                SourceId             = sourceId,
                ModuleName           = moduleName,
                Message              = message,
                PeersListDisplayMode = peersList_RoutingPath != null ? VisiblePeersDisplayMode.routingPath : VisiblePeersDisplayMode.allPeers,
            };

            if (VisiblePeersDelegate != null)
            {
                try
                {
                    msg.PeersList = peersList_RoutingPath ?? ClonedVisiblePeer.Clone(VisiblePeersDelegate(), selectedPeer);
                }
                catch // intentionally ignore
                {
                }
            }

            lock (_logMessagesNewestFirst)
            {
                _logMessagesNewestFirst.AddFirst(msg);
                CleanMemoryIfNeeded(msg.Time);
            }

            if (_maxEmittedAttentionLevelLogMessage == null || msg.AttentionLevel >= _maxEmittedAttentionLevelLogMessage.AttentionLevel)
            {
                _maxEmittedAttentionLevelLogMessage = msg;
            }
        }
Exemplo n.º 3
0
        public override void EmitPeerInRoutedPath(string visionChannelSourceId, string moduleName, AttentionLevel level, string message, object req, IVisiblePeer localPeer)
        {
            if (!EnableNewLogMessages)
            {
                return;
            }
            var msg = new LogMessage(this)
            {
                AttentionLevel  = level,
                ManagedThreadId = Thread.CurrentThread.ManagedThreadId,
                Time            = TimeNow,
                SourceId        = visionChannelSourceId,
                ModuleName      = moduleName,
                Message         = message,
            };

            if (AttentionToRoutedPath && req != null)
            {
                try
                {
                    msg.RoutedPathPeer = ClonedVisiblePeer.Clone(localPeer);
                }
                catch // intentionally ignore
                {
                }
                msg.RoutedPathReq = req;
            }

            lock (_logMessagesNewestFirst)
            {
                _logMessagesNewestFirst.AddFirst(msg);
                CleanMemoryIfNeeded(msg.Time);
            }
            if (_maxEmittedAttentionLevelLogMessage == null || msg.AttentionLevel >= _maxEmittedAttentionLevelLogMessage.AttentionLevel)
            {
                _maxEmittedAttentionLevelLogMessage = msg;
            }
        }