A TupleEntry is a Tuple (i.e. a possible entry in some Tuplespace)
together with expiry and cancellation data.
Methods
- #
-
- A
-
- C
-
- E
-
- F
-
- M
-
- N
-
- R
-
- S
-
- V
-
Included Modules
Attributes
Class Public methods
Creates a TupleEntry based on
ary with an optional renewer or expiry time sec.
A renewer must implement the renew method which returns a Numeric, nil, or true to indicate when the tuple
has expired.
Source:
show
| on GitHub
def initialize(ary, sec=nil)
@cancel = false
@expires = nil
@tuple = make_tuple(ary)
@renewer = nil
renew(sec)
end
Instance Public methods
Retrieves key from the tuple.
A TupleEntry is dead when it is canceled or
expired.
Returns the canceled status.
Has this tuple expired? (true/false).
A tuple has expired when its expiry timer based on the sec
argument to initialize runs out.
Source:
show
| on GitHub
def expired?
return true unless @expires
return false if @expires > Time.now
return true if @renewer.nil?
renew(@renewer)
return true unless @expires
return @expires < Time.now
end
Fetches key from the tuple.
make_expires(sec=nil)
Link
Returns an expiry Time based on sec
which can be one of:
- Numeric
-
sec seconds into the future
- true
-
the expiry time is the start of 1970 (i.e. expired)
nil
-
it is Tue Jan 19 03:14:07 GMT Standard Time
2038 (i.e. when UNIX clocks will die)
Source:
show
| on GitHub
def make_expires(sec=nil)
case sec
when Numeric
Time.now + sec
when true
Time.at(1)
when nil
Time.at(2**31-1)
end
end
Source:
show
| on GitHub
def make_tuple(ary)
Rinda::Tuple.new(ary)
end
renew(sec_or_renewer)
Link
Reset the expiry time according to sec_or_renewer.
- nil
-
it is set to expire in the far future.
- false
-
it has expired.
- Numeric
-
it will expire in that many seconds.
Otherwise the argument refers to some kind of renewer object which will
reset its expiry time.
Source:
show
| on GitHub
def renew(sec_or_renewer)
sec, @renewer = get_renewer(sec_or_renewer)
@expires = make_expires(sec)
end
Return the object which makes up the tuple itself: the Array or Hash.