Class ResponseCollector<T>

java.lang.Object
org.jgroups.util.ResponseCollector<T>
Direct Known Subclasses:
ResponseCollectorTask

public class ResponseCollector<T> extends Object
Similar to AckCollector, but collects responses from cluster members, not just acks. Null is not a valid key.
  • Field Details

    • responses

      private final Map<Address,T> responses
    • lock

      private final Lock lock
    • cond

      private final CondVar cond
  • Constructor Details

    • ResponseCollector

      public ResponseCollector(Collection<Address> members)
      Parameters:
      members - List of members from which we expect responses
    • ResponseCollector

      public ResponseCollector(Address... members)
    • ResponseCollector

      public ResponseCollector()
  • Method Details

    • add

      public boolean add(Address member, T data)
    • remove

      public void remove(Address member)
    • remove

      public void remove(List<Address> members)
    • retainAll

      public boolean retainAll(List<Address> members)
    • suspect

      public void suspect(Address member)
    • hasAllResponses

      public boolean hasAllResponses()
    • numberOfValidResponses

      public int numberOfValidResponses()
    • getMissing

      public List<Address> getMissing()
      Returns a list of members which didn't send a valid response
    • getValidResults

      public List<Address> getValidResults()
    • getResults

      public Map<Address,T> getResults()
    • size

      public int size()
    • waitForAllResponses

      public boolean waitForAllResponses(long timeout)
      Waits until all responses have been received, or until a timeout has elapsed.
      Parameters:
      timeout - Number of milliseconds to wait max. This value needs to be greater than 0, or else it will be adjusted to 2000
      Returns:
      boolean True if all responses have been received within timeout ms, else false (e.g. if interrupted)
    • reset

      public void reset()
    • reset

      public void reset(Collection<Address> members)
    • reset

      public void reset(Address... members)
    • toString

      public String toString()
      Overrides:
      toString in class Object