Example #1
0
        void DisplayPeer(Color color, IVisiblePeer peer, double radius, string text = null)
        {
            var p       = GetPosition(peer);
            var ellipse = new Ellipse
            {
                Width  = radius * 2,
                Height = radius * 2,
                Fill   = new SolidColorBrush(color)
            };

            Canvas.SetTop(ellipse, p.Y - radius);
            Canvas.SetLeft(ellipse, p.X - radius);
            canvas.Children.Add(ellipse);

            if (text != null)
            {
                var textBlock = new TextBlock
                {
                    Text       = text,
                    Foreground = new SolidColorBrush(Colors.Black),
                    FontWeight = FontWeights.Bold,
                    FontSize   = 12
                };

                Canvas.SetLeft(textBlock, p.X);
                Canvas.SetTop(textBlock, p.Y);
                canvas.Children.Add(textBlock);
            }
        }
Example #2
0
 internal void WriteToLog_needsAttention_EmitListOfPeers(string message, IVisiblePeer selectedPeer = null)
 {
     if (_visionChannel?.GetAttentionTo(_visionChannelSourceId, ModuleName) <= AttentionLevel.needsAttention)
     {
         _visionChannel.EmitListOfPeers(_visionChannelSourceId, ModuleName, AttentionLevel.needsAttention, message, null, selectedPeer);
     }
 }
Example #3
0
        Point GetPosition(IVisiblePeer peer)
        {
            var v = peer.VectorValues;
            var x = v[0];
            var y = v[1];

            return(new Point(margin + x * (canvas.ActualWidth - margin * 2), margin + y * (canvas.ActualHeight - margin * 2)));
        }
Example #4
0
 public Logger(DrpPeerEngine engine, IVisiblePeer localPeer, object req, string moduleName)
 {
     Engine                 = engine;
     _visionChannel         = engine.Configuration.VisionChannel;
     _visionChannelSourceId = engine.Configuration.VisionChannelSourceId;
     _localPeer             = localPeer;
     _req       = req;
     ModuleName = moduleName;
 }
Example #5
0
        void DisplayConnection(Color color, IVisiblePeer peer1, IVisiblePeer peer2, double thickness)
        {
            GetPosition(peer1, peer2, out var p1, out var p2);

            var line = new Line
            {
                Stroke          = new SolidColorBrush(color),
                X1              = p1.X,
                X2              = p2.X,
                Y1              = p1.Y,
                Y2              = p2.Y,
                StrokeThickness = thickness
            };

            canvas.Children.Add(line);
        }
Example #6
0
        void GetPosition(IVisiblePeer peer1, IVisiblePeer peer2, out Point p1, out Point p2)
        {
            var v1 = peer1.VectorValues;
            var x1 = v1[0];
            var y1 = v1[1];

            var v2 = peer2.VectorValues;
            var x2 = v2[0];
            var y2 = v2[1];

            RegistrationIdDistance.ProcessVectorInLoopedRegistrationIdSpace(x1, ref x2);
            RegistrationIdDistance.ProcessVectorInLoopedRegistrationIdSpace(y1, ref y2);

            p1 = new Point(margin + x1 * (canvas.ActualWidth - margin * 2), margin + y1 * (canvas.ActualHeight - margin * 2));
            p2 = new Point(margin + x2 * (canvas.ActualWidth - margin * 2), margin + y2 * (canvas.ActualHeight - margin * 2));
        }
Example #7
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);
            }
Example #8
0
 string IVisiblePeer.GetDistanceString(IVisiblePeer toThisPeer) => this.RegistrationId.GetDistanceTo(_tc.CryptoLibrary, ((Peer)toThisPeer).RegistrationId, _tc.NumberOfDimensions).ToString();
Example #9
0
 internal void WriteToLog_reg_requesterSide_lightPain(string message, object req, IVisiblePeer localPeer)
 {
     if (Configuration.VisionChannel?.GetAttentionTo(Configuration.VisionChannelSourceId, VisionChannelModuleName_reg_requesterSide) <= AttentionLevel.lightPain)
     {
         Configuration.VisionChannel?.EmitPeerInRoutedPath(Configuration.VisionChannelSourceId, VisionChannelModuleName_reg_requesterSide, AttentionLevel.lightPain, message, req, localPeer);
     }
 }
Example #10
0
 string IVisiblePeer.GetDistanceString(IVisiblePeer toThisPeer)
 {
     return("");
 }
Example #11
0
            public static List <IVisiblePeer> Clone(List <IVisiblePeer> sourceList, IVisiblePeer forceHighlightedPeer = null)
            {
                var r = new List <ClonedVisiblePeer>(sourceList.Count);
                var sourcePeersIndexes = new Dictionary <IVisiblePeer, int>();

                for (int i = 0; i < sourceList.Count; i++)
                {
                    var sourcePeer = sourceList[i];
                    sourcePeersIndexes.Add(sourcePeer, i);
                    r.Add(new ClonedVisiblePeer
                    {
                        VectorValues = sourcePeer.VectorValues.ToArray(),
                        Highlighted  = sourcePeer.Highlighted || sourcePeer == forceHighlightedPeer,
                        Name         = sourcePeer.Name
                    });
                }

                for (int i = 0; i < sourceList.Count; i++)
                {
                    var sourcePeer = sourceList[i];
                    var clonedPeer = r[i];
                    clonedPeer.NeighborPeers = new List <IVisiblePeer>();

                    List <IVisiblePeer> sourcePeerNeighborPeers;
                    int c = 0;
_retry:
                    try
                    {
                        sourcePeerNeighborPeers = sourcePeer.NeighborPeers?.ToList();
                    }
                    catch (InvalidOperationException)
                    { // collection was modifid. retry 10 times
                        if (c++ < 10)
                        {
                            goto _retry;
                        }
                        else
                        {
                            throw;
                        }
                    }

                    if (sourcePeerNeighborPeers != null)
                    {
                        foreach (var neighbor in sourcePeerNeighborPeers)
                        {
                            if (sourcePeersIndexes.TryGetValue(neighbor, out var neighborIndex))
                            {
                                clonedPeer.NeighborPeers.Add(r[neighborIndex]);
                            }
                            else
                            {
                                clonedPeer.NeighborPeers.Add(new ClonedVisiblePeer
                                {
                                    VectorValues = neighbor.VectorValues.ToArray()
                                });
                            }
                        }
                    }
                }

                return(r.Cast <IVisiblePeer>().ToList());
            }
Example #12
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;
            }
        }
Example #13
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;
            }
        }
Example #14
0
 string IVisiblePeer.GetDistanceString(IVisiblePeer toThisPeer)
 {
     throw new NotImplementedException();
 }