public abstract class RaftReplicateOp extends Operation implements IdentifiedDataSerializable, RaftSystemOperation, ExecutionCallback
GENERIC_PARTITION_ID| Modifier and Type | Method and Description |
|---|---|
String |
getServiceName() |
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) |
protected abstract ICompletableFuture |
replicate(RaftNode raftNode) |
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, writeDataclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetFactoryId, getIdreadData, writeDatapublic final void run()
OperationOperation.run() or Operation.call() method should be implemented; not both.
Runs after wait-support, supposed to do actual operationrun in class OperationOperation.call()protected abstract ICompletableFuture replicate(RaftNode raftNode)
public void onResponse(Object response)
ExecutionCallbackonResponse in interface ExecutionCallbackresponse - the result of the successful executionpublic void onFailure(Throwable t)
ExecutionCallbackonFailure in interface ExecutionCallbackt - the exception that is thrownpublic final boolean returnsResponse()
Operationtrue,
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 Operationpublic final boolean validatesTarget()
validatesTarget in class Operationpublic final String getServiceName()
getServiceName in class Operationprotected void writeInternal(ObjectDataOutput out) throws IOException
writeInternal in class OperationIOExceptionprotected void readInternal(ObjectDataInput in) throws IOException
readInternal in class OperationIOExceptionprotected void toString(StringBuilder sb)
OperationOperation.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.