![]() |
0.11.4
|
By default, a Decimate acts like a Passthrough for which only certain inputs are allowed to be output.
We call decimation interval the interval between two outputs. The strategy to allow events to be output should be defined in shouldOutput(), and an update of the state should be done in postCompute(). However, it is possible to completely customize a Decimate by overriding processInputs(Object[]) and postOutput().
Practical examples of Decimate processors are the CountDecimate, which outputs the first event of a window of size n and discards all the other, and the TimeDecimate which outputs an input event and discards all others for the next n nanoseconds.
In case the processor is notified of the end of the trace (EOT, i.e. there is no more event to compute), by default the processor does not output anything, meaning that the last input event will never be processed nor output (except if it matched the decimation interval). Nevertheless, it is possible to specify that you do want to process and output the last input even if it does not match the decimation interval by passing true to Decimate(boolean).
Definition at line 53 of file Decimate.java.
Public Member Functions | |
| Decimate (boolean should_process_last_inputs) | |
| Creates a new Decimate processor. | |
| Decimate () | |
| Public Member Functions inherited from ca.uqac.lif.cep.SynchronousProcessor | |
| SynchronousProcessor (int in_arity, int out_arity) | |
| Initializes a processor. | |
| Pushable | getPushableInput (int index) |
Returns the Pushable corresponding to the processor's i-th input trace. | |
| Pullable | getPullableOutput (int index) |
Returns the Pullable corresponding to the processor's i-th output trace. | |
| final SynchronousProcessor | setEventTracker (EventTracker tracker) |
| Associates an event tracker to this processor. | |
| Public Member Functions inherited from ca.uqac.lif.cep.Processor | |
| Processor (int in_arity, int out_arity) | |
| Initializes a processor. | |
| final Object | getContext (String key) |
| Retrieves an object from the processor's context. | |
| Context | getContext () |
| Gets the context associated to this object. | |
| void | setContext (String key, Object value) |
| Adds an object to the object's context. | |
| void | setContext (Context context) |
| Adds a complete context to this object. | |
| final int | hashCode () |
Implementation of hashCode() specific to processors. | |
| final boolean | equals (Object o) |
Implementation of equals() specific to processors. | |
| final int | getId () |
| Fetches the processor instance's unique ID. | |
| void | reset () |
| Resets the processor. | |
| final Pushable | getPushableInput () |
Returns the Pushable corresponding to the processor's first input trace. | |
| final Pullable | getPullableOutput () |
Returns the Pullable corresponding to the processor's first output trace. | |
| void | setPullableInput (int i, Pullable p) |
Assigns a Pullable to the processor's i-th input. | |
| Pullable | getPullableInput (int i) |
Returns the Pullable corresponding to the processor's i-th input. | |
| void | setPushableOutput (int i, Pushable p) |
Assigns a Pushable to the processor's i-th output. | |
| Pushable | getPushableOutput (int i) |
Retrieves the Pushable associated to the processor's i-th output. | |
| final int | getInputArity () |
| Returns the processor's input arity. | |
| final int | getOutputArity () |
| Returns the processor's output arity. | |
| void | duplicateInto (Processor p) |
| Copies the contents and state of the current processor into another. | |
| final Set< Class<?> > | getInputType (int index) |
| Gets the type of events the processor accepts for its i-th input trace. | |
| void | getInputTypesFor (Set< Class<?> > classes, int index) |
| Populates the set of classes accepted by the processor for its i-th input. | |
| Class<?> | getOutputType (int index) |
| Returns the type of the events produced by the processor for its i-th output. | |
| void | start () |
| Starts the processor. | |
| void | stop () |
| Stops the processor. | |
| final EventTracker | getEventTracker () |
| Gets the instance of event tracker associated to this processor. | |
| void | associateToInput (int in_stream_index, int in_stream_pos, int out_stream_index, int out_stream_pos) |
| Associates an input event to an output event. | |
| void | associateTo (NodeFunction f, int out_stream_index, int out_stream_pos) |
| Associates a node function to a particular event of processor's output stream. | |
| void | associateToOutput (int in_stream_index, int in_stream_pos, int out_stream_index, int out_stream_pos) |
| Associates an input event to an output event. | |
| final int | getInputCount () |
| Gets the number of event fronts received so far by this processor. | |
| final int | getOutputCount () |
| Gets the number of event fronts produced so far by this processor. | |
| final Object | print (ObjectPrinter<?> printer) throws ProcessorException |
| Prints the contents of this processor into an object printer. | |
| final Processor | read (ObjectReader<?> reader, Object o) throws ProcessorException |
| Reads the content of a processor from a serialized object. | |
| final Processor | duplicate () |
| Duplicates an object and sets it to its initial state. | |
| void | copyInputQueue (int index, Collection< Object > to) |
| Copies the content of one of the processor's input queue to a collection. | |
| void | copyOutputQueue (int index, Collection< Object > to) |
| Copies the content of one of the processor's output queue to a collection. | |
| abstract Processor | duplicate (boolean with_state) |
| Duplicates an object. | |
| Processor | or (Processor p) |
| Connects the first output pipe of this processor to the first input pipe of another processor. | |
| Processor | or (CallAfterConnect c) |
Operates similar to or(Processor), but also calls a method after the connection has been established. | |
| Processor | or (SelectedInputPipe p) |
| Connects the output at index 0 of the current processor to the input of another processor. | |
| PipeSelector | getAt (int index) |
Gets the PipeSelector object corresponding to the processor's input or output pipe for a given index. | |
| Pushable | rightShift (int index) |
| Pullable | leftShift (int index) |
| Queue< Object > | getInputQueue (int index) |
| Gets the content of the processor's input queue at a given index. | |
| Queue< Object > | getOutputQueue (int index) |
| Gets the content of the processor's output queue at a given index. | |
Protected Member Functions | |
| boolean | compute (Object[] inputs, Queue< Object[]> outputs) throws ProcessorException |
| Computes one or more output events from its input events. | |
| boolean | onEndOfTrace (Queue< Object[]> outputs) throws ProcessorException |
| Allows to describe a specific behavior when the trace of input fronts has reached its end. | |
| abstract boolean | shouldOutput () |
| Indicates if the inputs should be processed and output. | |
| void | postCompute () |
| Called after each compute. | |
| Object[] | processInputs (Object[] inputs) |
| Method to override if you do not want to output inputs only but also need to calculate a specific output. | |
| void | postOutput () |
| Called after every output. | |
| Protected Member Functions inherited from ca.uqac.lif.cep.Processor | |
| boolean | allNotifiedEndOfTrace () |
| Determines if all the upstream pushables have sent the end of trace notification. | |
| final Context | newContext () |
| Creates a new empty context map. | |
| Object | printState () |
| Produces an object that represents the state of the current processor. | |
| Processor | readState (Object o) |
| Reads the state of a processor and uses it to create a new instance. | |
Protected Attributes | |
| final boolean | m_shouldProcessLastInputs |
| Indicates whether or not the last input event of the trace should be processed and output even if it should not due to the decimation interval. | |
| Object[] | m_lastProcessedInputs |
The last inputs processed by processInputs(Object[]) stored (in case of EOT processing mode). | |
| Protected Attributes inherited from ca.uqac.lif.cep.SynchronousProcessor | |
| final transient Queue< Object[]> | m_tempQueue |
A queue object that will be passed to the compute(Object[], Queue) method. | |
| final transient Pushable[] | m_inputPushables |
| An array of input pushables. | |
| transient Pullable[] | m_outputPullables |
| An array of output pullables. | |
| Protected Attributes inherited from ca.uqac.lif.cep.Processor | |
| int | m_inputArity |
| The processor's input arity, i.e. | |
| int | m_outputArity |
| The processor's output arity, i.e. | |
| transient Queue< Object >[] | m_inputQueues |
| An array of input event queues. | |
| transient EventTracker | m_eventTracker = null |
| An object that keeps track of the relationship between input and output events. | |
| transient Queue< Object >[] | m_outputQueues |
| An array of output event queues. | |
| transient Pullable[] | m_inputPullables |
An array of Pullables, one for each input trace this processor receives. | |
| transient Pushable[] | m_outputPushables |
An array of Pushables, one for each output trace this processor produces. | |
| int | m_inputCount = 0 |
| A counter incremented upon each input front processed. | |
| int | m_outputCount = 0 |
| A counter incremented upon each output front processed. | |
| Context | m_context = null |
| The context in which the processor is instantiated. | |
| boolean[] | m_hasBeenNotifiedOfEndOfTrace |
| Indicates whether the processor has been notified of the end of trace or not. | |
| boolean | m_notifiedEndOfTraceDownstream |
| Indicates whether the processor has notified the end of the trace to the downstream processors it is connected to. | |
Additional Inherited Members | |
| Static Public Member Functions inherited from ca.uqac.lif.cep.Processor | |
| static boolean | allNull (Object[] v) |
| Checks if all objects in the array are null. | |
| static Queue< Object[]> | getEmptyQueue () |
| Gets an instance of an empty event queue. | |
| static void | startAll (Processor ... procs) |
| Starts all processors given as an argument. | |
| static void | stopAll (Processor ... procs) |
| Stops all processors given as an argument. | |
| static List< ProvenanceNode > | getLeaves (ProvenanceNode root) |
| Gets the leaves of a provenance tree. | |
| Static Public Attributes inherited from ca.uqac.lif.cep.Processor | |
| static final transient String | s_versionString = "0.11.2" |
| A string used to identify the program's version. | |
| static final transient int | MAX_PULL_RETRIES = 10000000 |
Number of times the Pullable#hasNext() method tries to produce an output from the input before giving up. | |
| Static Protected Member Functions inherited from ca.uqac.lif.cep.Processor | |
| static void | getLeaves (ProvenanceNode root, List< ProvenanceNode > leaves) |
| Accumulates the leaves of a provenance tree in a list. | |
| ca.uqac.lif.cep.tmf.Decimate.Decimate | ( | boolean | should_process_last_inputs | ) |
Creates a new Decimate processor.
| should_process_last_inputs | set it to true if you want the last input to be processed even if it does not correspond to the decimation interval, by default is false |
Definition at line 74 of file Decimate.java.
| ca.uqac.lif.cep.tmf.Decimate.Decimate | ( | ) |
Definition at line 81 of file Decimate.java.
|
protected |
Computes one or more output events from its input events.
| inputs | An array of input events; its length corresponds to the processor's input arity |
| outputs | A queue of arrays of objects. The processor should push arrays into this queue for every output front it produces. The size of each array should be equal to the processor's output arity, although this is not enforced. |
true if this processor may output other events in the future, false otherwise Reimplemented from ca.uqac.lif.cep.SynchronousProcessor.
Definition at line 87 of file Decimate.java.
|
protected |
Allows to describe a specific behavior when the trace of input fronts has reached its end.
Called in "push mode" only. In "pull mode", implementing such a behavior can be done by using Pullable#hasNext() or Pullable#hasNextSoft().
| outputs | A queue of arrays of objects. The processor should push arrays into this queue for every output front it produces. The size of each array should be equal to the processor's output arity, although this is not enforced. |
| ProcessorException | An exception thrown when a problem occurs with the operation |
Reimplemented from ca.uqac.lif.cep.Processor.
Definition at line 107 of file Decimate.java.
|
protected |
Called after each compute.
It should mainly be used to update the state of the decimation (e.g. update a counter). By default does nothing.
Reimplemented in ca.uqac.lif.cep.tmf.CountDecimate.
Definition at line 143 of file Decimate.java.
|
protected |
Called after every output.
Should be used to update a state after an output front has been produced (e.g. storing the time of the last output event production). By default does nothing.
Reimplemented in ca.uqac.lif.cep.tmf.TimeDecimate.
Definition at line 166 of file Decimate.java.
|
protected |
Method to override if you do not want to output inputs only but also need to calculate a specific output.
| inputs | the current input events |
Definition at line 156 of file Decimate.java.
|
abstractprotected |
Indicates if the inputs should be processed and output.
Reimplemented in ca.uqac.lif.cep.tmf.CountDecimate, and ca.uqac.lif.cep.tmf.TimeDecimate.
|
protected |
The last inputs processed by processInputs(Object[]) stored (in case of EOT processing mode).
Definition at line 65 of file Decimate.java.
|
protected |
Indicates whether or not the last input event of the trace should be processed and output even if it should not due to the decimation interval.
Definition at line 59 of file Decimate.java.