Ejemplo n.º 1
0
 public WebSocketChannel(Uri uri, string connectionName)
 {
     _webSocket      = new ClientWebSocket();
     _uri            = uri;
     _connectionName = connectionName;
     _connectionSide = ConnectionSide.Client;
 }
Ejemplo n.º 2
0
 public SocketChannel(Socket socket, SocketFlags flags, string connectionName)
 {
     _socket         = socket;
     _flags          = flags;
     _connectionName = connectionName;
     _connectionSide = ConnectionSide.Server;
 }
Ejemplo n.º 3
0
 public SslSocketChannel(Socket socket, X509Certificate2 x509Certificate, RemoteCertificateValidationCallback validationCallback, string connectionName)
 {
     _socket             = socket;
     _x509Certificate    = x509Certificate;
     _validationCallback = validationCallback;
     _connectionName     = connectionName;
     _connectionSide     = ConnectionSide.Server;
 }
Ejemplo n.º 4
0
 public SocketChannel(Socket socket, IPAddress address, int port, SocketFlags flags, string connectionName)
 {
     _socket         = socket;
     _ipAddress      = address;
     _port           = port;
     _flags          = flags;
     _connectionName = connectionName;
     _connectionSide = ConnectionSide.Client;
 }
Ejemplo n.º 5
0
 public SslSocketChannel(Socket socket, IPAddress ipAddress, int port, string certName, RemoteCertificateValidationCallback validationCallback, string connectionName)
 {
     _socket             = socket;
     _ipAddress          = ipAddress;
     _port               = port;
     _certName           = certName;
     _validationCallback = validationCallback;
     _connectionName     = connectionName;
     _connectionSide     = ConnectionSide.Client;
 }
Ejemplo n.º 6
0
 public TransportSettings(ConnectionSide connectionSide)
 {
     if (connectionSide == ConnectionSide.Client)
     {
         ConnectionNameFormatter = id => $"Connection ({id})";
     }
     else
     {
         ConnectionNameFormatter = id => $"Server Connection ({id})";
     }
 }
Ejemplo n.º 7
0
        static bool ToAnchorCanBeVertical(
            NodeProcess process, IEditorGUINode fromNode, RectCache fromArea, ConnectionSide fromSide, IEditorGUINode toNode, RectCache toArea
            )
        {
            bool isTop = fromArea.center.y <= toArea.y;

            if (
                isTop &&
                fromSide == ConnectionSide.Bottom && toArea.y - fromArea.yMax <= NodeProcess.SnapOffset &&
                (toArea.xMax < fromArea.center.x - 8 || toArea.x > fromArea.center.x + 8) &&
                Mathf.Abs(fromArea.center.x - toArea.center.x) > 20
                )
            {
                return(false);
            }
            int len = process.nodes.Count;

            for (int i = 0; i < len; ++i)
            {
                IEditorGUINode node = process.nodes[i];
                if (node == fromNode || node == toNode)
                {
                    continue;
                }
                Rect r = process.nodeToGUIData[node].fullArea;
                if (isTop)
                {
                    if (r.y > toArea.y || r.yMax < fromArea.center.y || r.x > toArea.center.x || r.xMax < toArea.x)
                    {
                        continue;
                    }
                }
                else
                {
                    if (r.yMax < toArea.y || r.y > fromArea.center.y || r.xMax < toArea.center.x || r.x > toArea.x)
                    {
                        continue;
                    }
                }
                return(false);
            }
            return(true);
        }
Ejemplo n.º 8
0
        private float MiddlePointOffsetY(string FirstNodeText, string SecondNodeText, ConnectionSide Side, SizeF Size)
        {
            float midPointY = 0;

            if (Side == ConnectionSide.Left)
            {
                if (
                    ((Item[FirstNodeText].Location.Y < Item[SecondNodeText].Location.Y) && ((Item[FirstNodeText].Location.X < Item[SecondNodeText].Location.X))) ||
                    ((Item[FirstNodeText].Location.Y > Item[SecondNodeText].Location.Y) && ((Item[FirstNodeText].Location.X > Item[SecondNodeText].Location.X))))
                {
                    midPointY = NodeSize.Height * Size.Width;
                }
                else if (((Item[FirstNodeText].Location.Y > Item[SecondNodeText].Location.Y) && ((Item[FirstNodeText].Location.X < Item[SecondNodeText].Location.X))) ||
                         ((Item[FirstNodeText].Location.Y < Item[SecondNodeText].Location.Y) && ((Item[FirstNodeText].Location.X > Item[SecondNodeText].Location.X))))
                {
                    midPointY = NodeSize.Height * Size.Height;
                }
            }
            else
            {
                if (
                    ((Item[FirstNodeText].Location.Y < Item[SecondNodeText].Location.Y) && ((Item[FirstNodeText].Location.X < Item[SecondNodeText].Location.X))) ||
                    ((Item[FirstNodeText].Location.Y > Item[SecondNodeText].Location.Y) && ((Item[FirstNodeText].Location.X > Item[SecondNodeText].Location.X))))
                {
                    midPointY = NodeSize.Height * Size.Height;
                }
                else if (((Item[FirstNodeText].Location.Y > Item[SecondNodeText].Location.Y) && ((Item[FirstNodeText].Location.X < Item[SecondNodeText].Location.X))) ||
                         ((Item[FirstNodeText].Location.Y < Item[SecondNodeText].Location.Y) && ((Item[FirstNodeText].Location.X > Item[SecondNodeText].Location.X))))
                {
                    midPointY = NodeSize.Height * Size.Width;
                }
            }

            return(midPointY);
        }
Ejemplo n.º 9
0
        public void AddConnectionCurve(string FirstNodeText, string SecondNodeText, ConnectionSide Side = ConnectionSide.Left)
        {
            try
            {
                if (Side == ConnectionSide.Left)
                {
                    #region Left
                    PointF CurveStartPoint = new PointF
                                             (
                        Item[FirstNodeText].ConnectionPoint.Left.X - 12,
                        Item[FirstNodeText].ConnectionPoint.Left.Y
                                             );
                    PointF CurveEndPoint = new PointF
                                           (
                        Item[SecondNodeText].ConnectionPoint.Left.X - 12,
                        Item[SecondNodeText].ConnectionPoint.Left.Y
                                           );

                    SizeF Size = new SizeF(
                        (Math.Abs(Item[SecondNodeText].Location.Y - Item[FirstNodeText].Location.Y) < (NodeSize.Height * 3))
                            ? new SizeF(0.2f, 0.8f)
                            : new SizeF(0, 1)
                        );
                    float middlePointOffsetX = ((Math.Abs(Item[SecondNodeText].Location.Y - Item[FirstNodeText].Location.Y) < (NodeSize.Height * 3))
                        ? (NodeSize.Width / 4) + 8 : (NodeSize.Width / 2) + 4);
                    float middlePointX = 0;
                    float middlePointY = 0;

                    if (Item[FirstNodeText].Location.X == Item[SecondNodeText].Location.X)
                    {
                        middlePointX = Item[FirstNodeText].Location.X - middlePointOffsetX;
                        middlePointY = ((Item[SecondNodeText].Location.Y + Item[FirstNodeText].Location.Y) / 2) + (NodeSize.Height / 2);
                    }
                    else if (Item[FirstNodeText].Location.X < Item[SecondNodeText].Location.X)
                    {
                        if (Item[FirstNodeText].Location.Y < Item[SecondNodeText].Location.Y)
                        {
                            middlePointX = ((Item[SecondNodeText].Location.X + Item[FirstNodeText].Location.X) / 2) - (NodeSize.Width / 4);
                            middlePointY = Item[SecondNodeText].Location.Y
                                           + MiddlePointOffsetY(FirstNodeText, SecondNodeText, Side, Size);
                        }
                        else
                        {
                            middlePointX = ((Item[SecondNodeText].Location.X + Item[FirstNodeText].Location.X) / 2) - (NodeSize.Width / 4);
                            middlePointY = Item[SecondNodeText].Location.Y
                                           + MiddlePointOffsetY(FirstNodeText, SecondNodeText, Side, Size);
                        }
                    }
                    else
                    {
                        if (Item[FirstNodeText].Location.Y < Item[SecondNodeText].Location.Y)
                        {
                            middlePointX = ((Item[SecondNodeText].Location.X + Item[FirstNodeText].Location.X) / 2) - (NodeSize.Width / 4);
                            middlePointY = Item[FirstNodeText].Location.Y
                                           + MiddlePointOffsetY(FirstNodeText, SecondNodeText, Side, Size);
                        }
                        else
                        {
                            middlePointX = ((Item[SecondNodeText].Location.X + Item[FirstNodeText].Location.X) / 2) - (NodeSize.Width / 4);
                            middlePointY = Item[FirstNodeText].Location.Y
                                           + MiddlePointOffsetY(FirstNodeText, SecondNodeText, Side, Size);
                        }
                    }

                    PointF CurveMiddlePoint = new PointF(
                        middlePointX,
                        middlePointY
                        );

                    g.DrawLine(
                        new Pen(nodeBrushes.Pen, PenWidth),
                        Item[FirstNodeText].ConnectionPoint.Left,
                        CurveStartPoint
                        );
                    g.DrawCurve(
                        new Pen(nodeBrushes.Pen, PenWidth),
                        new PointF[]
                    {
                        CurveStartPoint,
                        CurveMiddlePoint,
                        CurveEndPoint
                    }
                        );
                    g.DrawLine(
                        new Pen(nodeBrushes.Pen, PenWidth),
                        Item[SecondNodeText].ConnectionPoint.Left,
                        CurveEndPoint
                        );
                    DrawArrow(Item[SecondNodeText].ConnectionPoint.Left, 'L');
                    #endregion
                }
                else
                {
                    #region Right
                    PointF CurveStartPoint = new PointF
                                             (
                        Item[FirstNodeText].ConnectionPoint.Right.X + 12,
                        Item[FirstNodeText].ConnectionPoint.Right.Y
                                             );
                    PointF CurveEndPoint = new PointF
                                           (
                        Item[SecondNodeText].ConnectionPoint.Right.X + 12,
                        Item[SecondNodeText].ConnectionPoint.Right.Y
                                           );

                    SizeF Size = new SizeF(
                        (Math.Abs(Item[SecondNodeText].Location.Y - Item[FirstNodeText].Location.Y) < (NodeSize.Height * 3))
                            ? new SizeF(0.2f, 0.8f)
                            : new SizeF(0, 1)
                        );
                    float middlePointOffsetX = ((Math.Abs(Item[SecondNodeText].Location.Y - Item[FirstNodeText].Location.Y) < (NodeSize.Height * 3))
                        ? (NodeSize.Width * 5 / 4) + 8 : (NodeSize.Width * 3 / 2) + 4);
                    float middlePointX = 0;
                    float middlePointY = 0;

                    if (Item[FirstNodeText].Location.X == Item[SecondNodeText].Location.X)
                    {
                        middlePointX = Item[FirstNodeText].Location.X + middlePointOffsetX;
                        middlePointY = ((Item[SecondNodeText].Location.Y + Item[FirstNodeText].Location.Y) / 2) + (NodeSize.Height / 2);
                    }
                    else if (Item[FirstNodeText].Location.X < Item[SecondNodeText].Location.X)
                    {
                        if (Item[FirstNodeText].Location.Y < Item[SecondNodeText].Location.Y)
                        {
                            middlePointX = ((Item[SecondNodeText].Location.X + Item[FirstNodeText].Location.X) / 2) + (NodeSize.Width * 5 / 4);
                            middlePointY = Item[FirstNodeText].Location.Y
                                           + MiddlePointOffsetY(FirstNodeText, SecondNodeText, Side, Size);
                        }
                        else
                        {
                            middlePointX = ((Item[SecondNodeText].Location.X + Item[FirstNodeText].Location.X) / 2) + (NodeSize.Width * 5 / 4);
                            middlePointY = Item[FirstNodeText].Location.Y
                                           + MiddlePointOffsetY(FirstNodeText, SecondNodeText, Side, Size);
                        }
                    }
                    else
                    {
                        if (Item[FirstNodeText].Location.Y < Item[SecondNodeText].Location.Y)
                        {
                            middlePointX = ((Item[SecondNodeText].Location.X + Item[FirstNodeText].Location.X) / 2) + (NodeSize.Width * 5 / 4);
                            middlePointY = Item[SecondNodeText].Location.Y
                                           + MiddlePointOffsetY(FirstNodeText, SecondNodeText, Side, Size);
                        }
                        else
                        {
                            middlePointX = ((Item[SecondNodeText].Location.X + Item[FirstNodeText].Location.X) / 2) + (NodeSize.Width * 5 / 4);
                            middlePointY = Item[SecondNodeText].Location.Y
                                           + MiddlePointOffsetY(FirstNodeText, SecondNodeText, Side, Size);
                        }
                    }

                    PointF CurveMiddlePoint = new PointF(
                        middlePointX,
                        middlePointY
                        );

                    g.DrawLine(
                        new Pen(nodeBrushes.Pen, PenWidth),
                        Item[FirstNodeText].ConnectionPoint.Right,
                        CurveStartPoint
                        );
                    g.DrawCurve(
                        new Pen(nodeBrushes.Pen, PenWidth),
                        new PointF[]
                    {
                        CurveStartPoint,
                        CurveMiddlePoint,
                        CurveEndPoint
                    }
                        );
                    g.DrawLine(
                        new Pen(nodeBrushes.Pen, PenWidth),
                        Item[SecondNodeText].ConnectionPoint.Right,
                        CurveEndPoint
                        );
                    DrawArrow(Item[SecondNodeText].ConnectionPoint.Right, 'R');
                    #endregion
                }
            }
            catch (Exception e)
            {
                throw new Exception("Unable to establish a connection between " + FirstNodeText + " and " + SecondNodeText, e);
            }
        }
Ejemplo n.º 10
0
 public SocketTransportSettings(ConnectionSide connectionSide)
     : base(connectionSide)
 {
     IPVersion = IPVersion.IPv6;
 }
Ejemplo n.º 11
0
 public WebSocketTransportSettings(ConnectionSide connectionSide)
     : base(connectionSide)
 {
 }
Ejemplo n.º 12
0
 public WebSocketChannel(WebSocket webSocket, string connectionName)
 {
     _webSocket      = webSocket;
     _connectionName = connectionName;
     _connectionSide = ConnectionSide.Server;
 }