DRb::DRbUnknown
class DRb::DRbUnknown
Parent:Object
包装本地未知类型的编组对象的类。
如果一个对象是通过drb调用的方法返回的,但是对象的类在客户端名称空间中是未知的,或者对象在客户端名称空间中是未知的常量,那么仍然编组的对象将返回包装在DRbUnknown实例中。
如果此对象作为参数传递给通过drb调用的方法,则会传递包装的对象。
可以从name
属性读取对象的类或常量名称。编组对象保存在buf
属性中。
属性
bufR
缓冲区包含编组的未知对象。
nameR
未知事物的名字。
未知对象的类名; 未知常量的变量名称。
公共类方法
新(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