首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

DRb::DRbProtocol

公共类方法

add_protocol(prot) Show source

向DRbProtocol模块添加新协议。

代码语言:javascript
复制
# File lib/drb/drb.rb, line 724
def add_protocol(prot)
  @protocol.push(prot)
end

打开(uri,config,first = true)显示源文件

uri用配置打开客户端连接config

DRbProtocol模块依次询问每个注册的协议以尝试打开URI。每个协议表示它不会通过引发DRbBadScheme错误来处理该URI。如果没有协议识别该URI,则会引发DRbBadURI错误。如果协议接受URI,但在打开它时发生错误,则会引发DRbConnError。

代码语言:javascript
复制
# File lib/drb/drb.rb, line 736
def open(uri, config, first=true)
  @protocol.each do |prot|
    begin
      return prot.open(uri, config)
    rescue DRbBadScheme
    rescue DRbConnError
      raise($!)
    rescue
      raise(DRbConnError, "#{uri} - #{$!.inspect}")
    end
  end
  if first && (config[:auto_load] != false)
    auto_load(uri)
    return open(uri, config, false)
  end
  raise DRbBadURI, 'can\t parse uri:' + uri
end

open_server(uri,config,first = true)显示源文件

uri通过配置打开监听连接的服务器config

DRbProtocol模块依次询问每个注册协议,尝试在URI处打开服务器。每个协议表示它不会通过引发DRbBadScheme错误来处理该URI。如果没有协议识别该URI,则会引发DRbBadURI错误。如果协议接受URI,但在打开它时发生错误,则将基础错误传递给调用者。

代码语言:javascript
复制
# File lib/drb/drb.rb, line 764
def open_server(uri, config, first=true)
  @protocol.each do |prot|
    begin
      return prot.open_server(uri, config)
    rescue DRbBadScheme
    end
  end
  if first && (config[:auto_load] != false)
    auto_load(uri)
    return open_server(uri, config, false)
  end
  raise DRbBadURI, 'can\t parse uri:' + uri
end

uri_option(uri,config,first = true)显示源文件

解析uri成uri,选项对。

DRbProtocol模块依次询问每个注册的协议以尝试解析URI。每个协议表示它不会通过引发DRbBadScheme错误来处理该URI。如果没有协议识别该URI,则会引发DRbBadURI错误。

代码语言:javascript
复制
# File lib/drb/drb.rb, line 785
def uri_option(uri, config, first=true)
  @protocol.each do |prot|
    begin
      uri, opt = prot.uri_option(uri, config)
      # opt = nil if opt == ''
      return uri, opt
    rescue DRbBadScheme
    end
  end
  if first && (config[:auto_load] != false)
    auto_load(uri)
    return uri_option(uri, config, false)
  end
  raise DRbBadURI, 'can\t parse uri:' + uri
end

私有实例方法

add_protocol(prot)显示源文件

向DRbProtocol模块添加新协议。

代码语言:javascript
复制
# File lib/drb/drb.rb, line 724
def add_protocol(prot)
  @protocol.push(prot)
end

打开(uri,config,first = true)显示源文件

uri用配置打开客户端连接config

DRbProtocol模块依次询问每个注册的协议以尝试打开URI。每个协议表示它不会通过引发DRbBadScheme错误来处理该URI。如果没有协议识别该URI,则会引发DRbBadURI错误。如果协议接受URI,但在打开它时发生错误,则会引发DRbConnError。

代码语言:javascript
复制
# File lib/drb/drb.rb, line 736
def open(uri, config, first=true)
  @protocol.each do |prot|
    begin
      return prot.open(uri, config)
    rescue DRbBadScheme
    rescue DRbConnError
      raise($!)
    rescue
      raise(DRbConnError, "#{uri} - #{$!.inspect}")
    end
  end
  if first && (config[:auto_load] != false)
    auto_load(uri)
    return open(uri, config, false)
  end
  raise DRbBadURI, 'can\t parse uri:' + uri
end

open_server(uri,config,first = true)显示源文件

uri通过配置打开监听连接的服务器config

DRbProtocol模块依次询问每个注册协议,尝试在URI处打开服务器。每个协议表示它不会通过引发DRbBadScheme错误来处理该URI。如果没有协议识别该URI,则会引发DRbBadURI错误。如果协议接受URI,但在打开它时发生错误,则将基础错误传递给调用者。

代码语言:javascript
复制
# File lib/drb/drb.rb, line 764
def open_server(uri, config, first=true)
  @protocol.each do |prot|
    begin
      return prot.open_server(uri, config)
    rescue DRbBadScheme
    end
  end
  if first && (config[:auto_load] != false)
    auto_load(uri)
    return open_server(uri, config, false)
  end
  raise DRbBadURI, 'can\t parse uri:' + uri
end

uri_option(uri,config,first = true)显示源文件

解析uri成uri,选项对。

DRbProtocol模块依次询问每个注册的协议以尝试解析URI。每个协议表示它不会通过引发DRbBadScheme错误来处理该URI。如果没有协议识别该URI,则会引发DRbBadURI错误。

代码语言:javascript
复制
# File lib/drb/drb.rb, line 785
def uri_option(uri, config, first=true)
  @protocol.each do |prot|
    begin
      uri, opt = prot.uri_option(uri, config)
      # opt = nil if opt == ''
      return uri, opt
    rescue DRbBadScheme
    end
  end
  if first && (config[:auto_load] != false)
    auto_load(uri)
    return uri_option(uri, config, false)
  end
  raise DRbBadURI, 'can\t parse uri:' + uri
end

扫码关注腾讯云开发者

领取腾讯云代金券