class RaptorIO::Socket::CommChain

Attributes

comms[RW]

Public Class Methods

new(*uris) click to toggle source

@param uris [Array] A list of URIs (as ‘URI` objects or as `String`s)

# File lib/raptor-io/socket/comm_chain.rb, line 6
def initialize(*uris)
  @comms = [ RaptorIO::Socket::SwitchBoard::DEFAULT_ROUTE.comm ]
  uris.each do |arg|
    begin
      arg_uri = (arg.kind_of? URI) ? arg : URI.parse(arg)
    rescue URI::InvalidURIError
      raise ArgumentError.new("Invalid URI (#{arg.inspect})")
    end

    next_comm = RaptorIO::Socket::Comm.from_uri(arg_uri, prev_comm: @comms.last)

    if next_comm.kind_of? RaptorIO::Socket::Comm
      @comms << next_comm
    else
      raise ArgumentError.new("Invalid Comm: unknown scheme (#{arg_uri.scheme.inspect})")
    end
  end

end

Public Instance Methods

create_tcp(opts = {}) click to toggle source
# File lib/raptor-io/socket/comm_chain.rb, line 26
def create_tcp(opts = {})
  @comms.last.create_tcp(opts)
end