класс DRb::DRbUnknown
Класс, оборачивающий сериализованный объект, тип которого неизвестен локально.
Если метод, вызванный через drb, возвращает объект, но класс этого объекта неизвестен в пространстве имён клиента, или объект является константой, неизвестной в пространстве имён клиента, то сериализованный объект возвращается, обернутый в экземпляр DRbUnknown.
Если этот объект передаётся в качестве аргумента методу, вызванному через drb, то вместо него передаётся обернутый объект.
Имя класса или константы объекта можно прочитать из атрибута name. Сериализованный объект хранится в атрибуте buf.
Атрибуты
Буфер, содержащий сериализованный, неизвестный объект.
Имя неизвестного объекта.
Имя класса для неизвестных объектов; имя переменной для неизвестных констант.
Публичные Классовые Методы
# 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.