public final class Backup extends Operation implements BackupOperation, AllowedDuringPassiveState, IdentifiedDataSerializable
GENERIC_PARTITION_ID
Constructor and Description |
---|
Backup() |
Backup(Data backupOpData,
Address originalCaller,
long[] replicaVersions,
boolean sync) |
Backup(Operation backupOp,
Address originalCaller,
long[] replicaVersions,
boolean sync) |
Modifier and Type | Method and Description |
---|---|
void |
afterRun()
Is executed called after
Operation.run() or Operation.call() method completes normally and the operation is not
blocked, see CallStatus.WAIT . |
void |
beforeRun()
The beforeRun is called before either the
Operation.run() or the Operation.call() method is called. |
Operation |
getBackupOp() |
int |
getFactoryId()
Returns DataSerializableFactory factory ID for this class.
|
int |
getId()
Returns type identifier for this class.
|
void |
logError(Throwable e)
Logs Exception/Error thrown during operation execution.
|
void |
onExecutionFailure(Throwable e)
Called when an Exception/Error is thrown during
operation execution.
|
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) |
call, executedLocally, getCallerAddress, getCallerUuid, getCallId, getCallTimeout, getConnection, getInvocationTime, getLogger, getNodeEngine, getOperationResponseHandler, getPartitionId, getReplicaIndex, getResponse, getService, getServiceName, getWaitTimeout, isUrgent, 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
getPartitionId
readData, writeData
public Backup()
public Backup(Operation backupOp, Address originalCaller, long[] replicaVersions, boolean sync)
public Operation getBackupOp()
public void beforeRun()
Operation
Operation.run()
or the Operation.call()
method is called.
runs before wait-supportpublic void run() throws Exception
Operation
Operation.run()
or Operation.call()
method should be implemented; not both.
Runs after wait-support, supposed to do actual operationrun
in class Operation
Exception
Operation.call()
public void afterRun() throws Exception
Operation
Operation.run()
or Operation.call()
method completes normally and the operation is not
blocked, see CallStatus.WAIT
.
Runs after backups, before wait-notify.public 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 boolean validatesTarget()
validatesTarget
in class Operation
public void onExecutionFailure(Throwable e)
Operation
onExecutionFailure
in class Operation
e
- Exception/Error thrown during operation executionpublic void logError(Throwable e)
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 © 2019 Hazelcast, Inc.. All Rights Reserved.