Spec-Zone.ru › Ruby 3.3

класс DRb::DRbUnknown

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

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

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

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

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

Атрибуты

buf[R]

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

name[R]

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

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

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

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–2022 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.

Spec-Zone.ru

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