класс DRb::DRbUnknown
Class обертывающий сериализованный объект, тип которого неизвестен локально.
Если метод, вызванный через drb, возвращает объект, но его класс неизвестен в пространстве имён клиента, или объект является константой, неизвестной в пространстве имён клиента, то всё ещё сериализованный объект возвращается обернутым в экземпляр DRbUnknown.
Если этот объект передаётся в качестве аргумента методу, вызываемому через drb, то вместо него передаётся обернутый объект.
Имя класса или константы объекта можно прочитать из атрибута name. Сериализованный объект хранится в атрибуте buf.
Атрибуты
Буфер, содержащий сериализованный, неизвестный объект.
Имя неизвестного объекта.
Class имя для неизвестных объектов; имя переменной для неизвестных констант.
Публичные методы класса
# File lib/drb/drb.rb, line 464
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 Создать новый объект DRbUnknown.
buf — это строка, содержащая сериализованный объект, который не удалось десериализовать. err — это сообщение об ошибке, которое было поднято при неудачной десериализации. Оно используется для определения имени десериализованного объекта.
Публичные методы экземпляра
# File lib/drb/drb.rb, line 507 def exception DRbUnknownError.new(self) end
Создать исключение DRbUnknownError, содержащее этот объект.
# File lib/drb/drb.rb, line 502 def reload self.class._load(@buf) end
Попробовать снова загрузить обернутый сериализованный объект.
Если класс объекта теперь известен локально, объект будет десериализован и возвращён. В противном случае будет возвращён новый, но идентичный объект DRbUnknown.
Ruby Core © 1993–2017 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.