RingFinger is used by RingServer clients to discover the RingServer’s TupleSpace. Typically, all a client needs to do is call RingFinger.primary to retrieve the remote TupleSpace, which it can then begin using.

To find the first available remote TupleSpace:

Rinda::RingFinger.primary

To create a RingFinger that broadcasts to a custom list:

rf = Rinda::RingFinger.new  ['localhost', '192.0.2.1']
rf.primary

Rinda::RingFinger also understands multicast addresses and sets them up properly. This allows you to run multiple RingServers on the same host:

rf = Rinda::RingFinger.new ['239.0.0.1']
rf.primary

You can set the hop count (or TTL) for multicast searches using multicast_hops.

If you use IPv6 multicast you may need to set both an address and the outbound interface index:

rf = Rinda::RingFinger.new ['ff02::1']
rf.multicast_interface = 1
rf.primary

At this time there is no easy way to get an interface index by name.

Attributes
Read & Write

The list of addresses where RingFinger will send query packets.

Read & Write

Maximum number of hops for sent multicast packets (if using a multicast address in the broadcast list). The default is 1 (same as UDP broadcast).

Read & Write

The interface index to send IPv6 multicast packets from.

Read & Write

The port that RingFinger will send query packets to.

Read & Write

Contain the first advertised TupleSpace after lookup_ring_any is called.

Class Methods

Creates a singleton RingFinger and looks for a RingServer. Returns the created RingFinger.

Creates a new RingFinger that will look for RingServers at port on the addresses in broadcast_list.

If broadcast_list contains a multicast address then multicast queries will be made using the given multicast_hops and multicast_interface.

Returns the first advertised TupleSpace.

Contains all discovered TupleSpaces except for the primary.

Instance Methods

Iterates over all discovered TupleSpaces starting with the primary.

Looks up RingServers waiting timeout seconds. RingServers will be given block as a callback, which will be called with the remote TupleSpace.

Returns the first found remote TupleSpace. Any further recovered TupleSpaces can be found by calling to_a.

Contains all discovered TupleSpaces except for the primary.