Spec-Zone.ru › Ruby 2.2

класс DRb::DRbUnknown

Родитель:
Объект

Класс, оборачивающий сериализованный объект, тип которого неизвестен локально.

Если метод, вызванный через drb, возвращает объект, но класс этого объекта неизвестен в пространстве имён клиента, или объект является константой, неизвестной в пространстве имён клиента, то сериализованный объект возвращается, обернутый в экземпляр DRbUnknown.

Если этот объект передаётся в качестве аргумента методу, вызванному через drb, то вместо него передаётся обернутый объект.

Имя класса или константы объекта можно прочитать из атрибута name. Сериализованный объект хранится в атрибуте buf.

Атрибуты

buf[R]

Буфер, содержащий сериализованный, неизвестный объект.

name[R]

Имя неизвестного объекта.

Имя класса для неизвестных объектов; имя переменной для неизвестных констант.

Публичные Классовые Методы

new(err, 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 — сообщение об ошибке, которое было поднято при попытке десериализации. Оно используется для определения имени десериализованного объекта.

Публичные Методы Экземпляров

exception() Показать исходный код
# File lib/drb/drb.rb, line 508
def exception
  DRbUnknownError.new(self)
end

Создаёт исключение DRbUnknownError, содержащее этот объект.

reload() Показать исходный код
# 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API