Spec-Zone.ru › Ruby 2.4

класс DRb::DRbUnknown

Родитель:
Object

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

Если метод, вызванный через 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