класс 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–2022 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.