aboutsummaryrefslogtreecommitdiffstats
path: root/lib/drb/timeridconv.rb
diff options
context:
space:
mode:
authordrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-01-25 03:25:39 +0000
committerdrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-01-25 03:25:39 +0000
commit90e69dfdaf0b603f3adef052274a4a73bde6e901 (patch)
tree3d2f574f9d0e5dceb08057ebea985f3857c807b9 /lib/drb/timeridconv.rb
parentd50bd4939a79bb53aeaf8c607e3d6612d3167022 (diff)
downloadruby-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.rb16
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