Spec-Zone.ru › Ruby 3.1

класс DRb::DRbUnknown

Родитель:
Object

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

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

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

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

Атрибуты

buf[R]

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

name[R]

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

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

Публичные методы класса

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

Публичные методы экземпляра

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

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

reload() Показать исходный код
# File lib/drb/drb.rb, line 502
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