Class: DRb::TimerIdConv

Inherits:
DRbIdConv show all
Defined in:
lib/drb/timeridconv.rb

Overview

Timer id conversion keeps objects alive for a certain amount of time after their last access. The default time period is 600 seconds and can be changed upon initialization.

To use TimerIdConv:

DRb.install_id_conv TimerIdConv.new 60 # one minute

Defined Under Namespace

Classes: TimerHolder2

Instance Method Summary collapse

Constructor Details

#initialize(timeout = 600) ⇒ TimerIdConv

Creates a new TimerIdConv which will hold objects for timeout seconds.


84
85
86
# File 'lib/drb/timeridconv.rb', line 84

def initialize(timeout=600)
  @holder = TimerHolder2.new(timeout)
end

Instance Method Details

#to_id(obj) ⇒ Object

:nodoc:


95
96
97
# File 'lib/drb/timeridconv.rb', line 95

def to_id(obj) # :nodoc:
  return @holder.add(obj)
end

#to_obj(ref) ⇒ Object

:nodoc:


88
89
90
91
92
93
# File 'lib/drb/timeridconv.rb', line 88

def to_obj(ref) # :nodoc:
  return super if ref.nil?
  @holder.fetch(ref)
rescue TimerHolder2::InvalidIndexError
  raise "invalid reference"
end