Class: Rinda::TupleEntry (Ruby 2.3.2)
Description: Class : Rinda::TupleEntry - Ruby 2.3.2

- Home
- Core 2.3.2
- Std-lib 2.3.2
- Downloads

Support for the Ruby 2.3 series has ended. See here for reference.

### Home Classes Methods

### In Files

- rinda/tuplespace.rb

### Parent

Object

### Methods

- ::new
- #[]
- #alive?
- #cancel
- #canceled?
- #expired?
- #fetch
- #make_expires
- #make_tuple
- #renew
- #size
- #value

### Included Modules

- DRbUndumped

### Class/Module Index

Quicksearch

- Rinda
- Rinda::DRbObjectTemplate
- Rinda::InvalidHashTupleKey
- Rinda::NotifyTemplateEntry
- Rinda::RequestCanceledError
- Rinda::RequestExpiredError
- Rinda::RindaError
- Rinda::RingFinger
- Rinda::RingProvider
- Rinda::RingServer
- Rinda::SimpleRenewer
- Rinda::Template
- Rinda::TemplateEntry
- Rinda::Tuple
- Rinda::TupleBag
- Rinda::TupleBag::TupleBin
- Rinda::TupleEntry
- Rinda::TupleSpace
- Rinda::TupleSpaceProxy
- Rinda::WaitTemplateEntry

No matching classes.

# Rinda::TupleEntry

A TupleEntry is a Tuple (i.e. a possible entry in some Tuplespace) together with expiry and cancellation data.

### Attributes

expires[RW]

### Public Class Methods

new(ary, sec=nil) click to toggle source

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.

                   # File rinda/tuplespace.rb, line 26
    def initialize(ary, sec=nil)
      @cancel = false
      @expires = nil
      @tuple = make_tuple(ary)
      @renewer = nil
      renew(sec)
    end

### Public Instance Methods

[](key) click to toggle source

Retrieves `key` from the tuple.

                   # File rinda/tuplespace.rb, line 110
    def [](key)
      @tuple[key]
    end

alive?() click to toggle source

A TupleEntry is dead when it is canceled or expired.

                   # File rinda/tuplespace.rb, line 44
    def alive?
      !canceled? && !expired?
    end

cancel() click to toggle source

Marks this TupleEntry as canceled.

                   # File rinda/tuplespace.rb, line 37
    def cancel
      @cancel = true
    end

canceled?() click to toggle source

Returns the canceled status.

                   # File rinda/tuplespace.rb, line 57
    def canceled?; @cancel; end

expired?() click to toggle source

Has this tuple expired? (true/false).

A tuple has expired when its expiry timer based on the `sec` argument to initialize runs out.

                   # File rinda/tuplespace.rb, line 65
    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

fetch(key) click to toggle source

Fetches `key` from the tuple.

                   # File rinda/tuplespace.rb, line 117
    def fetch(key)
      @tuple.fetch(key)
    end

make_expires(sec=nil) click to toggle source

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)

                   # File rinda/tuplespace.rb, line 96
    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

make_tuple(ary) click to toggle source

Creates a Rinda::Tuple for `ary`.

                   # File rinda/tuplespace.rb, line 131
    def make_tuple(ary)
      Rinda::Tuple.new(ary)
    end

renew(sec_or_renewer) click to toggle source

Reset the expiry time according to `sec_or_renewer`.

`nil`

  it is set to expire in the far future.

`true`

  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.

                   # File rinda/tuplespace.rb, line 84
    def renew(sec_or_renewer)
      sec, @renewer = get_renewer(sec_or_renewer)
      @expires = make_expires(sec)
    end

size() click to toggle source

The size of the tuple.

                   # File rinda/tuplespace.rb, line 124
    def size
      @tuple.size
    end

value() click to toggle source

Return the object which makes up the tuple itself: the Array or Hash.

                   # File rinda/tuplespace.rb, line 52
    def value; @tuple.value; end