Exemple #1
0
 public override bool Equivalent(IceInternal.Endpoint endpoint)
 {
     if (!(endpoint is Endpoint))
     {
         return(false);
     }
     return(((Endpoint)endpoint)._endpoint.Equivalent(_endpoint));
 }
Exemple #2
0
 public Endpoint endpoint(IceInternal.Endpoint delEndp)
 {
     if (delEndp == _endpoint)
     {
         return(this);
     }
     else
     {
         return(new Endpoint(delEndp));
     }
 }
Exemple #3
0
 public override IceInternal.Endpoint Compress(bool compress)
 {
     IceInternal.Endpoint endpoint = _endpoint.Compress(compress);
     if (endpoint == _endpoint)
     {
         return(this);
     }
     else
     {
         return(new Endpoint(endpoint));
     }
 }
Exemple #4
0
 public override IceInternal.Endpoint ConnectionId(string connectionId)
 {
     IceInternal.Endpoint endpoint = _endpoint.ConnectionId(connectionId);
     if (endpoint == _endpoint)
     {
         return(this);
     }
     else
     {
         return(new Endpoint(endpoint));
     }
 }
Exemple #5
0
    public override int CompareTo(IceInternal.Endpoint obj)
    {
        if (ReferenceEquals(this, obj))
        {
            return(0);
        }

        if (!(obj is Endpoint))
        {
            return(Type() < obj.Type() ? -1 : 1);
        }

        return(_endpoint.CompareTo(((Endpoint)obj)._endpoint));
    }
Exemple #6
0
 internal Endpoint(IceInternal.Endpoint endpoint)
 {
     _endpoint      = endpoint;
     _configuration = Configuration.getInstance();
 }
Exemple #7
0
 internal ConnectorInfo(IConnector c, Endpoint e)
 {
     Connector = c;
     Endpoint  = e;
 }
Exemple #8
0
        public IncomingConnectionFactory(Ice.ObjectAdapter adapter, Endpoint endpoint, Endpoint?publish,
                                         ACMConfig acmConfig)
        {
            _communicator      = adapter.Communicator;
            _endpoint          = endpoint;
            _publishedEndpoint = publish;
            _adapter           = adapter;
            _warn    = _communicator.GetPropertyAsBool("Ice.Warn.Connections") ?? false;
            _state   = State.Uninitialized;
            _monitor = new FactoryACMMonitor(_communicator, acmConfig);

            if (_communicator.OverrideTimeout != null)
            {
                _endpoint = _endpoint.NewTimeout(_communicator.OverrideTimeout.Value);
            }

            if (_communicator.OverrideCompress != null)
            {
                _endpoint = _endpoint.NewCompressionFlag(_communicator.OverrideCompress.Value);
            }

            try
            {
                _transceiver = _endpoint.GetTransceiver();
                if (_transceiver != null)
                {
                    if (_communicator.TraceLevels.Network >= 2)
                    {
                        _communicator.Logger.Trace(_communicator.TraceLevels.NetworkCat,
                                                   $"attempting to bind to {_endpoint.Name} socket\n{_transceiver}");
                    }
                    _endpoint = _transceiver.Bind();

                    var connection = new Connection(_communicator, null, _transceiver, null, _endpoint, _adapter);
                    connection.StartAndWait();
                    _connections.Add(connection);
                }
                else
                {
                    _acceptor = _endpoint.GetAcceptor(_adapter !.Name);

                    if (_communicator.TraceLevels.Network >= 2)
                    {
                        _communicator.Logger.Trace(_communicator.TraceLevels.NetworkCat,
                                                   $"attempting to bind to {_endpoint.Name} socket {_acceptor}");
                    }
                    _endpoint = _acceptor !.Listen();

                    if (_communicator.TraceLevels.Network >= 1)
                    {
                        _communicator.Logger.Trace(_communicator.TraceLevels.NetworkCat,
                                                   $"listening for {_endpoint.Name} connections\n{_acceptor!.ToDetailedString()}");
                    }

                    _adapter.ThreadPool.Initialize(this);
                }
            }
            catch (System.Exception)
            {
                //
                // Clean up.
                //
                try
                {
                    _transceiver?.Close();
                    _acceptor?.Close();
                }
                catch (System.Exception)
                {
                    // Ignore
                }

                _monitor.Destroy();
                _connections.Clear();

                throw;
            }
        }