public interface EPRuntime
Modifier and Type | Method and Description |
---|---|
EPOnDemandQueryResult |
executeQuery(EPOnDemandPreparedQueryParameterized parameterizedQuery)
Execute an on-demand parameterized query.
|
EPOnDemandQueryResult |
executeQuery(EPOnDemandPreparedQueryParameterized parameterizedQuery,
ContextPartitionSelector[] contextPartitionSelectors)
Execute an on-demand parameterized query.
|
EPOnDemandQueryResult |
executeQuery(EPStatementObjectModel model)
Execute an on-demand query.
|
EPOnDemandQueryResult |
executeQuery(EPStatementObjectModel model,
ContextPartitionSelector[] contextPartitionSelectors)
For use with named windows that have a context declared and that may therefore have multiple context partitions,
allows to target context partitions for query execution selectively.
|
EPOnDemandQueryResult |
executeQuery(String epl)
Execute an on-demand query.
|
EPOnDemandQueryResult |
executeQuery(String epl,
ContextPartitionSelector[] contextPartitionSelectors)
For use with named windows that have a context declared and that may therefore have multiple context partitions,
allows to target context partitions for query execution selectively.
|
long |
getCurrentTime()
Returns current engine time.
|
EPDataFlowRuntime |
getDataFlowRuntime()
Returns the data flow runtime.
|
EventRenderer |
getEventRenderer()
Returns the event renderer for events generated by this runtime.
|
EventSender |
getEventSender(String eventTypeName)
Returns a facility to process event objects that are of a known type.
|
EventSender |
getEventSender(URI[] uris)
For use with plug-in event representations, returns a facility to process event objects that are of one of a number of types
that one or more of the registered plug-in event representation extensions can reflect upon and provide an
event for.
|
Long |
getNextScheduledTime()
Returns the time at which the next schedule execution is expected, returns null if no schedule execution is
outstanding.
|
long |
getNumEventsEvaluated()
Number of events evaluated over the lifetime of the event stream processing runtime,
or since the last resetStats() call.
|
Map<String,Object> |
getVariableValue(Set<String> variableNames)
Returns current variable values for each of the global variable names passed in,
guaranteeing consistency in the face of concurrent updates to the variables.
|
Map<String,List<ContextPartitionVariableState>> |
getVariableValue(Set<String> variableNames,
ContextPartitionSelector contextPartitionSelector)
Returns the current variable values for a context-partitioned variable, per context partition.
|
Object |
getVariableValue(String variableName)
Returns the current variable value for a global variable.
|
Map<String,Object> |
getVariableValueAll()
Returns current variable values for all global variables,
guaranteeing consistency in the face of concurrent updates to the variables.
|
boolean |
isExternalClockingEnabled()
Returns true for external clocking, false for internal clocking.
|
EPOnDemandPreparedQuery |
prepareQuery(EPStatementObjectModel model)
Prepare an unparameterized on-demand query before execution and for repeated execution.
|
EPOnDemandPreparedQuery |
prepareQuery(String epl)
Prepare an unparameterized on-demand query before execution and for repeated execution.
|
EPOnDemandPreparedQueryParameterized |
prepareQueryWithParameters(String epl)
Prepare a parameterized on-demand query for repeated parameter setting and execution.
|
void |
resetStats()
Reset number of events received and emitted
|
void |
route(Map map,
String eventTypeName)
Route the event object back to the event stream processing runtime for internal dispatching,
to avoid the possibility of a stack overflow due to nested calls to sendEvent.
|
void |
route(Node node)
Route the event object back to the event stream processing runtime for internal dispatching,
to avoid the possibility of a stack overflow due to nested calls to sendEvent.
|
void |
route(Object theEvent)
Route the event object back to the event stream processing runtime for internal dispatching,
to avoid the possibility of a stack overflow due to nested calls to sendEvent.
|
void |
route(Object[] objectArray,
String eventTypeName)
Route the event object back to the event stream processing runtime for internal dispatching,
to avoid the possibility of a stack overflow due to nested calls to sendEvent.
|
void |
routeAvro(Object avroGenericDataDotRecord,
String avroEventTypeName)
Route the event object back to the event stream processing runtime for internal dispatching,
to avoid the possibility of a stack overflow due to nested calls to sendEvent.
|
void |
sendEvent(Map map,
String mapEventTypeName)
Send a map containing event property values to the event stream processing runtime.
|
void |
sendEvent(Node node)
Send an event represented by a DOM node to the event stream processing runtime.
|
void |
sendEvent(Object object)
Send an event represented by a plain Java object to the event stream processing runtime.
|
void |
sendEvent(Object[] objectarray,
String objectArrayEventTypeName)
Send an object array containing event property values to the event stream processing runtime.
|
void |
sendEventAvro(Object avroGenericDataDotRecord,
String avroEventTypeName)
Send an event represented by a Avro GenericData.Record to the event stream processing runtime.
|
void |
setUnmatchedListener(UnmatchedListener listener)
Sets a listener to receive events that are unmatched by any statement.
|
void |
setVariableValue(Map<String,Object> variableValues)
Sets the value of multiple global variables in one update, applying all or none of the changes
to variable values in one atomic transaction.
|
void |
setVariableValue(Map<String,Object> variableValues,
int agentInstanceId)
Sets the value of multiple context-partitioned variables in one update, applying all or none of the changes
to variable values in one atomic transaction.
|
void |
setVariableValue(String variableName,
Object variableValue)
Sets the value of a single global variable.
|
void sendEvent(Object object) throws EPException
Use the route method for sending events into the runtime from within UpdateListener code,
to avoid the possibility of a stack overflow due to nested calls to sendEvent
(except with the outbound-threading configuration), see route(Object)
).
object
- is the event to sent to the runtimeEPException
- is thrown when the processing of the event lead to an errorvoid sendEvent(Map map, String mapEventTypeName) throws EPException
Use the route method for sending events into the runtime from within UpdateListener code.
to avoid the possibility of a stack overflow due to nested calls to sendEvent
(except with the outbound-threading configuration), see route(java.util.Map, String)
).
map
- - map that contains event property values. Keys are expected to be of type String while values
can be of any type. Keys and values should match those declared via Configuration for the given eventTypeName.mapEventTypeName
- - the name for the Map event type that was previously configuredEPException
- - when the processing of the event leads to an errorvoid sendEvent(Object[] objectarray, String objectArrayEventTypeName)
Use the route method for sending events into the runtime from within UpdateListener code.
to avoid the possibility of a stack overflow due to nested calls to sendEvent
(except with the outbound-threading configuration), see route(Object[], String)
).
objectarray
- - array that contains event property values. Your application must ensure that property values
match the exact same order that the property names and types have been declared, and that the array length matches the number of properties declared.objectArrayEventTypeName
- - the name for the Object-array event type that was previously configuredEPException
- - when the processing of the event leads to an errorvoid sendEvent(Node node) throws EPException
Use the route method for sending events into the runtime from within UpdateListener code.
to avoid the possibility of a stack overflow due to nested calls to sendEvent
(except with the outbound-threading configuration), see route(org.w3c.dom.Node)
).
node
- is the DOM node as an eventEPException
- is thrown when the processing of the event lead to an errorlong getNumEventsEvaluated()
void resetStats()
void route(Object theEvent)
Note: when outbound-threading is enabled, the thread delivering to listeners is not the thread processing the original event. Therefore with outbound-threading enabled the sendEvent method should be used by listeners instead.
theEvent
- to route internally for processing by the event stream processing runtimevoid route(Map map, String eventTypeName) throws EPException
Note: when outbound-threading is enabled, the thread delivering to listeners is not the thread processing the original event. Therefore with outbound-threading enabled the sendEvent method should be used by listeners instead.
map
- - map that contains event property values. Keys are expected to be of type String while values
can be of any type. Keys and values should match those declared via Configuration for the given eventTypeName.eventTypeName
- - the name for Map event type that was previously configuredEPException
- - when the processing of the event leads to an errorvoid route(Object[] objectArray, String eventTypeName) throws EPException
Note: when outbound-threading is enabled, the thread delivering to listeners is not the thread processing the original event. Therefore with outbound-threading enabled the sendEvent method should be used by listeners instead.
objectArray
- - object array that contains event property values. Your application must ensure that property values
match the exact same order that the property names and types have been declared, and that the array length matches the number of properties declared.eventTypeName
- - the name for Object-array event type that was previously configuredEPException
- - when the processing of the event leads to an errorvoid route(Node node) throws EPException
Note: when outbound-threading is enabled, the thread delivering to listeners is not the thread processing the original event. Therefore with outbound-threading enabled the sendEvent method should be used by listeners instead.
node
- is the DOM node as an eventEPException
- is thrown when the processing of the event lead to an errorvoid setUnmatchedListener(UnmatchedListener listener)
Events that can be unmatched are all events that are send into a runtime via one of the sendEvent methods, or that have been generated via insert-into clause.
For an event to be unmatched by any statement, the event must not match any statement's event stream filter criteria (a where-clause is NOT a filter criteria for a stream, as below).
Note: In the following statement a MyEvent event does always match this statement's event stream filter criteria, regardless of the value of the 'quantity' property.
select * from MyEvent where quantity > 5
select * from MyEvent(quantity > 5)For patterns, if no pattern sub-expression is active for such event, the event is also unmatched.
listener
- is the listener to receive notification of unmatched events, or null to unregister a
previously registered listenerObject getVariableValue(String variableName) throws VariableNotFoundException
variableName
- is the name of the variable to return the value forVariableNotFoundException
- if a variable by that name has not been declaredMap<String,List<ContextPartitionVariableState>> getVariableValue(Set<String> variableNames, ContextPartitionSelector contextPartitionSelector) throws VariableNotFoundException
variableNames
- are the names of the variables to return the value forcontextPartitionSelector
- selector for the context partition to return the value forVariableNotFoundException
- if a variable by that name has not been declaredMap<String,Object> getVariableValue(Set<String> variableNames) throws VariableNotFoundException
variableNames
- is a set of variable names for which to return valuesVariableNotFoundException
- if any of the variable names has not been declaredMap<String,Object> getVariableValueAll()
void setVariableValue(String variableName, Object variableValue) throws VariableValueException, VariableNotFoundException
Note that the thread setting the variable value queues the changes, i.e. it does not itself re-evaluate such new variable value for any given statement. The timer thread performs this work.
Not for use with context-partitioned variables.variableName
- is the name of the variable to change the value ofvariableValue
- is the new value of the variable, with null an allowed valueVariableValueException
- if the value does not match variable type or cannot be safely coerced
to the variable typeVariableNotFoundException
- if the variable name has not been declaredvoid setVariableValue(Map<String,Object> variableValues) throws VariableValueException, VariableNotFoundException
Note that the thread setting the variable value queues the changes, i.e. it does not itself re-evaluate such new variable value for any given statement. The timer thread performs this work.
Not for use with context-partitioned variables.variableValues
- is the map of variable name and variable value, with null an allowed valueVariableValueException
- if any value does not match variable type or cannot be safely coerced
to the variable typeVariableNotFoundException
- if any of the variable names has not been declaredvoid setVariableValue(Map<String,Object> variableValues, int agentInstanceId) throws VariableValueException, VariableNotFoundException
Note that the thread setting the variable value queues the changes, i.e. it does not itself re-evaluate such new variable value for any given statement. The timer thread performs this work.
Only for use with context-partitioned variables.variableValues
- is the map of variable name and variable value, with null an allowed valueagentInstanceId
- the id of the context partitionVariableValueException
- if any value does not match variable type or cannot be safely coerced
to the variable typeVariableNotFoundException
- if any of the variable names has not been declaredEventSender getEventSender(String eventTypeName) throws EventTypeException
Given an event type name this method returns a sender that allows to send in event objects of that type. The event objects send in via the event sender are expected to match the event type, thus the event sender does not inspect the event object other then perform basic checking.
For events backed by a Java class (JavaBean events), the sender ensures that the object send in matches in class, or implements or extends the class underlying the event type for the given event type name. Note that event type identity for Java class events is the Java class. When assigning two different event type names to the same Java class the names are an alias for the same event type i.e. there is always a single event type to represent a given Java class.
For events backed by a Object[] (Object-array events), the sender does not perform any checking other then checking that the event object indeed is an array of object.
For events backed by a java.util.Map (Map events), the sender does not perform any checking other then checking that the event object indeed implements Map.
For events backed by a org.w3c.Node (XML DOM events), the sender checks that the root element name indeed does match the root element name for the event type name.
eventTypeName
- is the name of the event typeEventTypeException
- thrown to indicate that the name does not existEventSender getEventSender(URI[] uris) throws EventTypeException
uris
- is the URIs that specify which plug-in event representations may process an event object.
URIs do not need to match event representation URIs exactly, a child (hierarchical) match is enough for an event representation to participate.
The order of URIs is relevant as each event representation's factory is asked in turn to process the event, until the first factory processes the event.
EventTypeException
- thrown to indicate that the URI list was invalidEPOnDemandQueryResult executeQuery(String epl)
On-demand queries are EPL queries that execute non-continuous fire-and-forget queries against named windows.
epl
- is the EPL query to executeEPOnDemandQueryResult executeQuery(String epl, ContextPartitionSelector[] contextPartitionSelectors)
epl
- is the EPL query to executecontextPartitionSelectors
- selects context partitions to considerEPOnDemandQueryResult executeQuery(EPStatementObjectModel model)
On-demand queries are EPL queries that execute non-continuous fire-and-forget queries against named windows.
model
- is the EPL query to execute, obtain a model object using EPAdministrator.compileEPL(String)
or via the APIEPOnDemandQueryResult executeQuery(EPStatementObjectModel model, ContextPartitionSelector[] contextPartitionSelectors)
model
- is the EPL query to execute, obtain a model object using EPAdministrator.compileEPL(String)
or via the APIcontextPartitionSelectors
- selects context partitions to considerEPOnDemandPreparedQuery prepareQuery(String epl)
epl
- to prepareEPOnDemandPreparedQuery prepareQuery(EPStatementObjectModel model)
model
- is the EPL query to prepare, obtain a model object using EPAdministrator.compileEPL(String)
or via the APIEPOnDemandPreparedQueryParameterized prepareQueryWithParameters(String epl)
executeQuery(EPOnDemandPreparedQueryParameterized)
.epl
- to prepareEPOnDemandQueryResult executeQuery(EPOnDemandPreparedQueryParameterized parameterizedQuery)
On-demand queries are EPL queries that execute non-continuous fire-and-forget queries against named windows.
parameterizedQuery
- contains the query and parameter valuesEPOnDemandQueryResult executeQuery(EPOnDemandPreparedQueryParameterized parameterizedQuery, ContextPartitionSelector[] contextPartitionSelectors)
On-demand queries are EPL queries that execute non-continuous fire-and-forget queries against named windows.
parameterizedQuery
- contains the query and parameter valuescontextPartitionSelectors
- selects context partitions to considerEventRenderer getEventRenderer()
long getCurrentTime()
If time is provided externally via timer events, the function returns current time as externally provided.
Long getNextScheduledTime()
EPDataFlowRuntime getDataFlowRuntime()
boolean isExternalClockingEnabled()
void sendEventAvro(Object avroGenericDataDotRecord, String avroEventTypeName)
Use the route method for sending events into the runtime from within UpdateListener code,
to avoid the possibility of a stack overflow due to nested calls to sendEvent
(except with the outbound-threading configuration), see routeAvro(Object, String)
}).
avroGenericDataDotRecord
- is the event to sent to the runtimeavroEventTypeName
- event type nameEPException
- is thrown when the processing of the event lead to an errorvoid routeAvro(Object avroGenericDataDotRecord, String avroEventTypeName) throws EPException
Note: when outbound-threading is enabled, the thread delivering to listeners is not the thread processing the original event. Therefore with outbound-threading enabled the sendEvent method should be used by listeners instead.
avroGenericDataDotRecord
- is the event to sent to the runtimeavroEventTypeName
- event type nameEPException
- is thrown when the processing of the event lead to an error