class Pione::Relay::ReceiverSocket

Public Class Methods

open(uri, config) click to toggle source

Raises an error. You cannnot open receiver socket on caller side.

# File lib/pione/relay/receiver-socket.rb, line 26
def self.open(uri, config)
  raise DRb::DRbBadScheme.new(uri)
end
open_server(uri, config) click to toggle source

Creates a fake connection. @api private

# File lib/pione/relay/receiver-socket.rb, line 32
def self.open_server(uri, config)
  # reverse socket needs URI always
  raise ArgumentError.new("You should specify receiver URI.") unless uri

  # get config
  host, port, option = parse_uri(uri)

  # retrieve socket by rev_id
  key = "%s:%s" % [host, port]
  unless @@table.has_key?(key)
    raise ReceiverSocketError.new("No socket for %s." % uri)
  end
  socket = @@table[key]

  # create an instance with relay socket
  return self.new(uri, socket, config)
end
parse_uri(uri) click to toggle source

Parses special URI for reverse scheme.

# File lib/pione/relay/receiver-socket.rb, line 13
def self.parse_uri(uri)
  if uri =~ /^receiver:\/\/(.*?):(\d+)(\?(.*))?$/
    host = $1
    port = $2.to_i
    option = $4
    [host, port, option]
  else
    raise(DRb::DRbBadScheme, uri) unless uri =~ /^receiver:/
    raise(DRb::DRbBadURI, 'can\'t parse uri:' + uri)
  end
end
table() click to toggle source
# File lib/pione/relay/receiver-socket.rb, line 8
def self.table
  @@table
end

Public Instance Methods

accept() click to toggle source

Raises an error because the socket cannot accept.

# File lib/pione/relay/receiver-socket.rb, line 51
def accept
  raise ReceiverSocketError.new("ReceiverSocket cannnot accept connections.")
end
alive?() click to toggle source
# File lib/pione/relay/receiver-socket.rb, line 58
def alive?
  true
end
close() click to toggle source
# File lib/pione/relay/receiver-socket.rb, line 55
def close
end
set_socket(*args) click to toggle source
# File lib/pione/relay/receiver-socket.rb, line 62
def set_socket(*args)
end