Class: DRb::DRbIdConv

Inherits:
Object
  • Object
show all
Defined in:
lib/drb/drb.rb

Overview

Class responsible for converting between an object and its id.

This, the default implementation, uses an object’s local ObjectSpace __id__ as its id. This means that an object’s identification over drb remains valid only while that object instance remains alive within the server runtime.

For alternative mechanisms, see DRb::TimerIdConv in drb/timeridconv.rb and DRbNameIdConv in sample/name.rb in the full drb distribution.

Direct Known Subclasses

GWIdConv, TimerIdConv, WeakIdConv

Instance Method Summary collapse

Instance Method Details

#to_id(obj) ⇒ Object

Convert an object into a reference id.

This implementation returns the object’s __id__ in the local object space.



373
374
375
376
377
378
379
380
# File 'lib/drb/drb.rb', line 373

def to_id(obj)
  case obj
  when Object
    obj.nil? ? nil : obj.__id__
  when BasicObject
    obj.__id__
  end
end

#to_obj(ref) ⇒ Object

Convert an object reference id to an object.

This implementation looks up the reference id in the local object space and returns the object it refers to.



365
366
367
# File 'lib/drb/drb.rb', line 365

def to_obj(ref)
  ObjectSpace._id2ref(ref)
end