DRb::DRbUnknown 类
类
包装一个已编组的对象,其类型在本地未知。
如果一个对象是由通过 DRB 调用的方法返回的,但该对象的类在客户端名称空间中未知,或者该对象是客户端名称空间中未知的常量,那么仍然编组的对象将被包装在 DRbUnknown
实例中返回。
如果此对象作为参数传递给通过 DRB 调用的方法,则会传递包装的对象。
对象的类或常量名称可以从 name
属性中读取。已编组的对象保存在 buf
属性中。
属性
buf[R]
包含已编组的未知对象的缓冲区。
name[R]
未知事物的名称。
未知对象的类
名称;未知常量的变量名称。
公共类方法
new(err, buf) 点击切换源
创建一个新的 DRbUnknown
对象。
buf
是一个包含无法取消编组的已编组对象的字符串。err
是取消编组失败时引发的错误消息。它用于确定已编组对象的名称。
# File lib/drb/drb.rb, line 465 def initialize(err, buf) case err.to_s when /uninitialized constant (\S+)/ @name = $1 when /undefined class\/module (\S+)/ @name = $1 else @name = nil end @buf = buf end
公共实例方法
exception() 点击切换源
创建一个包含此对象的 DRbUnknownError
异常。
# File lib/drb/drb.rb, line 508 def exception DRbUnknownError.new(self) end
reload() 点击切换源
尝试再次加载包装的已编组对象。
如果对象的类现在在本地已知,则该对象将被取消编组并返回。否则,将返回一个新的但相同的 DRbUnknown
对象。
# File lib/drb/drb.rb, line 503 def reload self.class._load(@buf) end