org.jgroups.blocks

## Class Request

- java.lang.Object
- - org.jgroups.blocks.Request

- All Implemented Interfaces:
    java.util.concurrent.Future, RspCollector, Command, NotifyingFuture
  Direct Known Subclasses:
    GroupRequest, MultiRequest, UnicastRequest

      public abstract class Request
      extends java.lang.Object
      implements RspCollector, Command, NotifyingFuture

  Abstract class for a unicast or multicast request
  Author:
    Bela Ban

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected boolean` | `block_for_results`
    `protected java.util.concurrent.locks.Condition` | `completed` Is set as soon as the request has received all required responses
    `protected RequestCorrelator` | `corr`
    `protected boolean` | `done`
    `static int` | `GET_ABS_MAJORITY` return majority (of all members, may block)
    `static int` | `GET_ALL` return all responses
    `static int` | `GET_FIRST` return only first response
    `static int` | `GET_MAJORITY` return majority (of all non-faulty members)
    `static int` | `GET_N` Deprecated.
    `static int` | `GET_NONE` return no response (async call)
    `protected FutureListener` | `listener`
    `protected java.util.concurrent.locks.Lock` | `lock`
    `protected static Log` | `log`
    `protected RequestOptions` | `options`
    `protected long` | `req_id`
    `protected static java.util.concurrent.atomic.AtomicLong` | `REQUEST_ID` To generate unique request IDs (see getRequestId())
    `protected Message` | `request_msg`
    `protected Transport` | `transport`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Request(Message request, RequestCorrelator corr, Transport transport, RequestOptions options)`
    `Request(Message request, RequestCorrelator corr, Transport transport, RspFilter filter, int mode, long timeout)` Deprecated.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `cancel(boolean mayInterruptIfRunning)`
    `protected void` | `checkCompletion(java.util.concurrent.Future future)`
    `boolean` | `execute()`
    `boolean` | `getBlockForResults()`
    `protected static long` | `getRequestId()` Generates a new unique request ID
    `boolean` | `getResponsesComplete()`
    `boolean` | `isCancelled()`
    `boolean` | `isDone()`
    `static java.lang.String` | `modeToString(int m)`
    `abstract void` | `receiveResponse(java.lang.Object response_value, Address sender)`
    `protected abstract boolean` | `responsesComplete()`
    `protected boolean` | `responsesComplete(long timeout)` This method runs with lock locked (called by `execute()`).
    `protected abstract void` | `sendRequest()`
    `void` | `setBlockForResults(boolean block_for_results)`
    `NotifyingFuture` | `setListener(FutureListener listener)` Attaches a listener and returns the same future instance, to allow for 'building' futures.
    `void` | `setResponseFilter(RspFilter filter)`
    `abstract void` | `suspect(Address mbr)`
    `java.lang.String` | `toString()`
    `abstract void` | `viewChange(View new_view)`
    `protected boolean` | `waitForResults(long timeout)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface java.util.concurrent.Future

      `get, get`

- - ### Field Detail

    - #### GET_FIRST

          public static final int GET_FIRST

      return only first response
      See Also:
        Constant Field Values

    - #### GET_ALL

          public static final int GET_ALL

      return all responses
      See Also:
        Constant Field Values

    - #### GET_MAJORITY

          public static final int GET_MAJORITY

      return majority (of all non-faulty members)
      See Also:
        Constant Field Values

    - #### GET_ABS_MAJORITY

          public static final int GET_ABS_MAJORITY

      return majority (of all members, may block)
      See Also:
        Constant Field Values

    - #### GET_N

          @Deprecated
          public static final int GET_N

      Deprecated.
      return n responses (may block)
      See Also:
        Constant Field Values

    - #### GET_NONE

          public static final int GET_NONE

      return no response (async call)
      See Also:
        Constant Field Values

    - #### log

          protected static final Log log

    - #### REQUEST_ID

          protected static final java.util.concurrent.atomic.AtomicLong REQUEST_ID

      To generate unique request IDs (see getRequestId())

    - #### lock

          protected final java.util.concurrent.locks.Lock lock

    - #### completed

          protected final java.util.concurrent.locks.Condition completed

      Is set as soon as the request has received all required responses

    - #### request_msg

          protected final Message request_msg

    - #### corr

          protected final RequestCorrelator corr

    - #### transport

          protected final Transport transport

    - #### options

          protected final RequestOptions options

    - #### done

          protected volatile boolean done

    - #### block_for_results

          protected boolean block_for_results

    - #### req_id

          protected final long req_id

    - #### listener

          protected volatile FutureListener listener

  - ### Constructor Detail

    - #### Request

          @Deprecated
          public Request(Message request,
                            RequestCorrelator corr,
                            Transport transport,
                            RspFilter filter,
                            int mode,
                            long timeout)

      Deprecated.

    - #### Request

          public Request(Message request,
                 RequestCorrelator corr,
                 Transport transport,
                 RequestOptions options)

  - ### Method Detail

    - #### setResponseFilter

          public void setResponseFilter(RspFilter filter)

    - #### getBlockForResults

          public boolean getBlockForResults()

    - #### setBlockForResults

          public void setBlockForResults(boolean block_for_results)

    - #### setListener

          public NotifyingFuture setListener(FutureListener listener)

      Description copied from interface: `NotifyingFuture`
      Attaches a listener and returns the same future instance, to allow for 'building' futures.
      Specified by:
        `setListener` in interface `NotifyingFuture`
      Parameters:
        `listener` - listener to attach
      Returns:
        the same future instance

    - #### execute

          public boolean execute()
                          throws java.lang.Exception

      Specified by:
        `execute` in interface `Command`
      Throws:
        `java.lang.Exception`

    - #### sendRequest

          protected abstract void sendRequest()
                                       throws java.lang.Exception

      Throws:
        `java.lang.Exception`

    - #### receiveResponse

          public abstract void receiveResponse(java.lang.Object response_value,
                             Address sender)

      Specified by:
        `receiveResponse` in interface `RspCollector`

    - #### viewChange

          public abstract void viewChange(View new_view)

      Specified by:
        `viewChange` in interface `RspCollector`

    - #### suspect

          public abstract void suspect(Address mbr)

      Specified by:
        `suspect` in interface `RspCollector`

    - #### responsesComplete

          protected abstract boolean responsesComplete()

    - #### getResponsesComplete

          public boolean getResponsesComplete()

    - #### cancel

          public boolean cancel(boolean mayInterruptIfRunning)

      Specified by:
        `cancel` in interface `java.util.concurrent.Future`

    - #### isCancelled

          public boolean isCancelled()

      Specified by:
        `isCancelled` in interface `java.util.concurrent.Future`

    - #### isDone

          public boolean isDone()

      Specified by:
        `isDone` in interface `java.util.concurrent.Future`

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`

    - #### checkCompletion

          protected void checkCompletion(java.util.concurrent.Future future)

    - #### getRequestId

          protected static long getRequestId()

      Generates a new unique request ID

    - #### responsesComplete

          protected boolean responsesComplete(long timeout)
                                       throws java.lang.InterruptedException

      This method runs with lock locked (called by `execute()`).
      Throws:
        `java.lang.InterruptedException`

    - #### waitForResults

          protected boolean waitForResults(long timeout)

    - #### modeToString

          public static java.lang.String modeToString(int m)

Copyright © 1998-2009 Bela Ban / Red Hat. All Rights Reserved.