Package org.jgroups.blocks
Class Request
java.lang.Object
org.jgroups.blocks.Request
- All Implemented Interfaces:
Future,RspCollector,Command,NotifyingFuture
- Direct Known Subclasses:
GroupRequest,MultiRequest,UnicastRequest
Abstract class for a unicast or multicast request
- Author:
- Bela Ban
-
Nested Class Summary
Nested classes/interfaces inherited from interface java.util.concurrent.Future
Future.State -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected booleanprotected final ConditionIs set as soon as the request has received all required responsesprotected final RequestCorrelatorprotected booleanstatic final intreturn majority (of all members, may block)static final intreturn all responsesstatic final intreturn only first responsestatic final intreturn majority (of all non-faulty members)static final intDeprecated.static final intreturn no response (async call)protected FutureListenerprotected final Lockprotected static final Logprotected final RequestOptionsprotected final longprotected static final AtomicLongTo generate unique request IDs (see getRequestId())protected final Messageprotected final Transport -
Constructor Summary
ConstructorsConstructorDescriptionRequest(Message request, RequestCorrelator corr, Transport transport, RequestOptions options) Request(Message request, RequestCorrelator corr, Transport transport, RspFilter filter, int mode, long timeout) Deprecated. -
Method Summary
Modifier and TypeMethodDescriptionbooleancancel(boolean mayInterruptIfRunning) protected voidcheckCompletion(Future future) booleanexecute()booleanprotected static longGenerates a new unique request IDbooleanbooleanbooleanisDone()static StringmodeToString(int m) abstract voidreceiveResponse(Object response_value, Address sender) protected abstract booleanprotected booleanresponsesComplete(long timeout) This method runs with lock locked (called byexecute()).protected abstract voidvoidsetBlockForResults(boolean block_for_results) setListener(FutureListener listener) Attaches a listener and returns the same future instance, to allow for 'building' futures.voidsetResponseFilter(RspFilter filter) abstract voidtoString()abstract voidviewChange(View new_view) protected booleanwaitForResults(long timeout)
-
Field Details
-
GET_FIRST
public static final int GET_FIRSTreturn only first response- See Also:
-
GET_ALL
public static final int GET_ALLreturn all responses- See Also:
-
GET_MAJORITY
public static final int GET_MAJORITYreturn majority (of all non-faulty members)- See Also:
-
GET_ABS_MAJORITY
public static final int GET_ABS_MAJORITYreturn majority (of all members, may block)- See Also:
-
GET_N
Deprecated.return n responses (may block)- See Also:
-
GET_NONE
public static final int GET_NONEreturn no response (async call)- See Also:
-
log
-
REQUEST_ID
To generate unique request IDs (see getRequestId()) -
lock
-
completed
Is set as soon as the request has received all required responses -
request_msg
-
corr
-
transport
-
options
-
done
protected volatile boolean done -
block_for_results
protected boolean block_for_results -
req_id
protected final long req_id -
listener
-
-
Constructor Details
-
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 Details
-
setResponseFilter
-
getBlockForResults
public boolean getBlockForResults() -
setBlockForResults
public void setBlockForResults(boolean block_for_results) -
setListener
Description copied from interface:NotifyingFutureAttaches a listener and returns the same future instance, to allow for 'building' futures.- Specified by:
setListenerin interfaceNotifyingFuture- Parameters:
listener- listener to attach- Returns:
- the same future instance
-
execute
-
sendRequest
- Throws:
Exception
-
receiveResponse
- Specified by:
receiveResponsein interfaceRspCollector
-
viewChange
- Specified by:
viewChangein interfaceRspCollector
-
suspect
- Specified by:
suspectin interfaceRspCollector
-
responsesComplete
protected abstract boolean responsesComplete() -
getResponsesComplete
public boolean getResponsesComplete() -
cancel
public boolean cancel(boolean mayInterruptIfRunning) -
isCancelled
public boolean isCancelled()- Specified by:
isCancelledin interfaceFuture
-
isDone
public boolean isDone() -
toString
-
checkCompletion
-
getRequestId
protected static long getRequestId()Generates a new unique request ID -
responsesComplete
This method runs with lock locked (called byexecute()).- Throws:
InterruptedException
-
waitForResults
protected boolean waitForResults(long timeout) -
modeToString
-