класс DRb::DRbUnknown
Class обертывает сериализованный объект, тип которого локально неизвестен.
Если метод, вызванный через drb, возвращает объект, но класс этого объекта неизвестен в пространстве имен клиента, или объект является константой, неизвестной в пространстве имен клиента, тогда сериализованный объект возвращается, обернутый экземпляром DRbUnknown.
Если этот объект передаётся в качестве аргумента методу, вызванному через drb, то вместо него передаётся обернутый объект.
Имя класса или константы объекта можно прочитать из атрибута name. Сериализованный объект хранится в атрибуте buf.
Атрибуты
Буфер, содержащий сериализованный неизвестный объект.
Имя неизвестного объекта.
Class — имя для неизвестных объектов; имя переменной для неизвестных констант.
Публичные методы класса
# 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 Создать новый объект DRbUnknown.
buf — строка, содержащая сериализованный объект, который не удалось десериализовать. err — сообщение об ошибке, которое было выведено при неудачной десериализации. Оно используется для определения имени десериализованного объекта.
Публичные методы экземпляра
# File lib/drb/drb.rb, line 508 def exception DRbUnknownError.new(self) end
Создать исключение DRbUnknownError, содержащее этот объект.
# File lib/drb/drb.rb, line 503 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.