public class RaftQueryOp extends Operation implements IndeterminateOperationStateAware, RaftSystemOperation, ExecutionCallback, IdentifiedDataSerializable
GENERIC_PARTITION_ID
Constructor and Description |
---|
RaftQueryOp() |
RaftQueryOp(CPGroupId groupId,
RaftOp raftOp,
QueryPolicy queryPolicy) |
Modifier and Type | Method and Description |
---|---|
int |
getFactoryId()
Returns DataSerializableFactory factory ID for this class.
|
int |
getId()
Returns type identifier for this class.
|
String |
getServiceName() |
boolean |
isRetryableOnIndeterminateOperationState()
Returns true if duplicate commit of the operation is equivalent to
committing it only once.
|
void |
onFailure(Throwable t)
Called when an execution is completed with an error.
|
void |
onResponse(Object response)
Called when an execution is completed successfully.
|
protected void |
readInternal(ObjectDataInput in) |
boolean |
returnsResponse()
Method is intended to be overridden.
|
void |
run()
Runs the operation.
|
protected void |
toString(StringBuilder sb)
A template method allows for additional information to be passed into
the
Operation.toString() method. |
boolean |
validatesTarget() |
protected void |
writeInternal(ObjectDataOutput out) |
afterRun, beforeRun, call, executedLocally, getCallerAddress, getCallerUuid, getCallId, getCallTimeout, getConnection, getInvocationTime, getLogger, getNodeEngine, getOperationResponseHandler, getPartitionId, getReplicaIndex, getResponse, getService, getWaitTimeout, isUrgent, logError, onExecutionFailure, onInvocationException, onSetCallId, readData, requiresExplicitServiceName, sendResponse, setCallerUuid, setNodeEngine, setOperationResponseHandler, setPartitionId, setReplicaIndex, setService, setServiceName, setValidateTarget, setWaitTimeout, toString, writeData
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
readData, writeData
public RaftQueryOp()
public RaftQueryOp(CPGroupId groupId, RaftOp raftOp, QueryPolicy queryPolicy)
public final void run()
Operation
Operation.run()
or Operation.call()
method should be implemented; not both.
Runs after wait-support, supposed to do actual operationrun
in class Operation
Operation.call()
public boolean isRetryableOnIndeterminateOperationState()
IndeterminateOperationStateAware
isRetryableOnIndeterminateOperationState
in interface IndeterminateOperationStateAware
public void onResponse(Object response)
ExecutionCallback
onResponse
in interface ExecutionCallback
response
- the result of the successful executionpublic void onFailure(Throwable t)
ExecutionCallback
onFailure
in interface ExecutionCallback
t
- the exception that is thrownpublic final boolean returnsResponse()
Operation
true
,
Operation.getResponse()
will be called right after Operation.run()
method.
If it returns false
, Operation.sendResponse(Object)
must be
called later to finish the operation.
In other words, true
is for synchronous operation and
false
is for asynchronous one.
Default implementation is synchronous operation (true
).
returnsResponse
in class Operation
public final boolean validatesTarget()
validatesTarget
in class Operation
public final String getServiceName()
getServiceName
in class Operation
public int getFactoryId()
IdentifiedDataSerializable
getFactoryId
in interface IdentifiedDataSerializable
public int getId()
IdentifiedDataSerializable
getId
in interface IdentifiedDataSerializable
protected void writeInternal(ObjectDataOutput out) throws IOException
writeInternal
in class Operation
IOException
protected void readInternal(ObjectDataInput in) throws IOException
readInternal
in class Operation
IOException
protected void toString(StringBuilder sb)
Operation
Operation.toString()
method. So an Operation subclass can override
this method and add additional debugging content. The default
implementation does nothing so one is not forced to provide an empty
implementation.
It is a good practice to always call the super.toString(stringBuffer)
when implementing this method to make sure that the super class can
inject content if needed.Copyright © 2020 Hazelcast, Inc.. All Rights Reserved.