diff options
author | drbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-01-25 03:25:39 +0000 |
---|---|---|
committer | drbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-01-25 03:25:39 +0000 |
commit | 90e69dfdaf0b603f3adef052274a4a73bde6e901 (patch) | |
tree | 3d2f574f9d0e5dceb08057ebea985f3857c807b9 /lib/drb/timeridconv.rb | |
parent | d50bd4939a79bb53aeaf8c607e3d6612d3167022 (diff) | |
download | ruby-90e69dfdaf0b603f3adef052274a4a73bde6e901.tar.gz |
* lib/drb/drb.rb: Improved documentation by adding or hiding methods.
* lib/drb/eq.rb: ditto.
* lib/drb/extserv.rb: ditto.
* lib/drb/gw.rb: ditto.
* lib/drb/invokemethod.rb: ditto.
* lib/drb/observer.rb: ditto.
* lib/drb/ssl.rb: ditto.
* lib/drb/timeridconv.rb: ditto.
* lib/drb/unix.rb: ditto.
* sample/drb/gw_cu.rb: Fixed bug in DRb gateway sample.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38937 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/drb/timeridconv.rb')
-rw-r--r-- | lib/drb/timeridconv.rb | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/lib/drb/timeridconv.rb b/lib/drb/timeridconv.rb index b460e2c987..4ea3035f39 100644 --- a/lib/drb/timeridconv.rb +++ b/lib/drb/timeridconv.rb @@ -2,8 +2,17 @@ require 'drb/drb' require 'monitor' module DRb + + # 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 + class TimerIdConv < DRbIdConv - class TimerHolder2 + class TimerHolder2 # :nodoc: include MonitorMixin class InvalidIndexError < RuntimeError; end @@ -71,18 +80,19 @@ module DRb end end + # Creates a new TimerIdConv which will hold objects for +timeout+ seconds. def initialize(timeout=600) @holder = TimerHolder2.new(timeout) end - def to_obj(ref) + def to_obj(ref) # :nodoc: return super if ref.nil? @holder.fetch(ref) rescue TimerHolder2::InvalidIndexError raise "invalid reference" end - def to_id(obj) + def to_id(obj) # :nodoc: return @holder.add(obj) end end |