public interface Function extends Identifiable
Function
s can be of different types. Some can have results while others need not return
any result. Some functions require writing in the targeted Region
while some may just
be read operations.
Consider extending FunctionAdapter
which has default values for some of the function attributes.
Even though this interface extends Serializable, functions will only be serialized if they are not registered.
For best performance it is recommended that you implement getId()
to return a non-null identifier
and register your function using FunctionService.registerFunction(Function)
or the cache.xml function
element.
FunctionAdapter
,
FunctionService
Modifier and Type | Method and Description |
---|---|
void |
execute(FunctionContext context)
The method which contains the logic to be executed.
|
String |
getId()
Return a unique function identifier, used to register the function
with
FunctionService |
boolean |
hasResult()
Specifies whether the function sends results while executing.
|
boolean |
isHA()
Specifies whether the function is eligible for re-execution (in case of
failure).
|
boolean |
optimizeForWrite()
Return true to indicate to GemFire the method
requires optimization for writing the targeted
FunctionService.onRegion(com.gemstone.gemfire.cache.Region) and any
associated routing objects. |
boolean hasResult()
If hasResult()
returns false,
ResultCollector.getResult()
throws FunctionException
.
If hasResult()
returns true,
ResultCollector.getResult()
blocks and waits for the
result of function execution
void execute(FunctionContext context)
Execution
.
The context provided to this function is the one which was built using Execution.
The contexts can be data dependent or data-independent so user should check to see if the context
provided in parameter is instance of RegionFunctionContext
.context
- as created by Execution
String getId()
FunctionService
getId
in interface Identifiable
boolean optimizeForWrite()
Return true to indicate to GemFire the method
requires optimization for writing the targeted FunctionService.onRegion(com.gemstone.gemfire.cache.Region)
and any
associated routing objects.
Returning false will optimize for read behavior on the targeted
FunctionService.onRegion(com.gemstone.gemfire.cache.Region)
and any
associated routing objects.
This method is only consulted when Region passed to FunctionService#onRegion(com.gemstone.gemfire.cache.Region) is a partitioned region
FunctionService
boolean isHA()
FunctionContext.isPossibleDuplicate()
Copyright © 1997-2017 Pivotal Software, Inc. All rights reserved.