module IO::Endpoint

def self.composite(*endpoints, **options)

def self.composite(*endpoints, **options)
	CompositeEndpoint.new(endpoints, **options)
end

def self.file_descriptor_limit

def self.file_descriptor_limit
	Process.getrlimit(Process::RLIMIT_NOFILE).first
end

def self.socket(socket, **options)

def self.socket(socket, **options)
	SocketEndpoint.new(socket, **options)
end

def self.ssl(*arguments, ssl_context: nil, hostname: nil, **options)

Returns:
  • (SSLEndpoint) -

Parameters:
  • options () -- keyword arguments passed through to {Endpoint.tcp}
  • hostname (String, nil) --
  • ssl_context (OpenSSL::SSL::SSLContext, nil) --
  • arguments () --
def self.ssl(*arguments, ssl_context: nil, hostname: nil, **options)
	SSLEndpoint.new(self.tcp(*arguments, **options), ssl_context: ssl_context, hostname: hostname)
end

def self.tcp(*arguments, **options)

Returns:
  • (HostEndpoint) -

Parameters:
  • options () -- keyword arguments passed on to {HostEndpoint#initialize}
  • arguments () -- nodename, service, family, socktype, protocol, flags. `socktype` will be set to Socket::SOCK_STREAM.
def self.tcp(*arguments, **options)
	arguments[3] = ::Socket::SOCK_STREAM
	
	HostEndpoint.new(arguments, **options)
end

def self.udp(*arguments, **options)

Returns:
  • (HostEndpoint) -

Parameters:
  • options () -- keyword arguments passed on to {HostEndpoint#initialize}
  • arguments () -- nodename, service, family, socktype, protocol, flags. `socktype` will be set to Socket::SOCK_DGRAM.
def self.udp(*arguments, **options)
	arguments[3] = ::Socket::SOCK_DGRAM
	
	HostEndpoint.new(arguments, **options)
end

def self.unix(path = "", type = ::Socket::SOCK_STREAM, **options)

Returns:
  • (UNIXEndpoint) -

Parameters:
  • options () -- keyword arguments passed through to {UNIXEndpoint#initialize}
  • type () -- Socket type
  • path (String) --
def self.unix(path = "", type = ::Socket::SOCK_STREAM, **options)
	UNIXEndpoint.new(path, type, **options)
end