0.10.8-alpha
ca.uqac.lif.cep.tmf.Decimate Class Referenceabstract

By default, a Decimate acts like a Passthrough for which only certain inputs are allowed to be output. More...

Public Member Functions

 Decimate (boolean should_process_last_inputs)
 Creates a new Decimate processor. More...
 
 Decimate ()
 
- Public Member Functions inherited from ca.uqac.lif.cep.SynchronousProcessor
 SynchronousProcessor (int in_arity, int out_arity)
 Initializes a processor. More...
 
synchronized Pushable getPushableInput (int index)
 
synchronized Pullable getPullableOutput (int index)
 
final SynchronousProcessor setEventTracker (EventTracker tracker)
 
- Public Member Functions inherited from ca.uqac.lif.cep.Processor
 Processor (int in_arity, int out_arity)
 Initializes a processor. More...
 
final synchronized Object getContext (String key)
 Retrieves an object from the processor's context. More...
 
synchronized Context getContext ()
 Gets the context associated to this object. More...
 
synchronized void setContext (String key, Object value)
 Adds an object to the object's context. More...
 
synchronized void setContext (Context context)
 Adds a complete context to this object. More...
 
final int hashCode ()
 Implementation of hashCode() specific to processors. More...
 
final boolean equals (Object o)
 Implementation of equals() specific to processors. More...
 
final int getId ()
 Fetches the processor instance's unique ID. More...
 
synchronized void reset ()
 Resets the processor. More...
 
abstract Pushable getPushableInput (int index)
 Returns the Pushable corresponding to the processor's i-th input trace. More...
 
final synchronized Pushable getPushableInput ()
 Returns the Pushable corresponding to the processor's first input trace. More...
 
abstract Pullable getPullableOutput (int index)
 Returns the Pullable corresponding to the processor's i-th output trace. More...
 
final synchronized Pullable getPullableOutput ()
 Returns the Pullable corresponding to the processor's first output trace. More...
 
synchronized void setPullableInput (int i, Pullable p)
 Assigns a Pullable to the processor's i-th input. More...
 
synchronized Pullable getPullableInput (int i)
 Returns the Pullable corresponding to the processor's i-th input. More...
 
synchronized void setPushableOutput (int i, Pushable p)
 Assigns a Pushable to the processor's i-th output. More...
 
synchronized Pushable getPushableOutput (int i)
 Retrieves the Pushable associated to the processor's i-th output. More...
 
final int getInputArity ()
 Returns the processor's input arity. More...
 
final int getOutputArity ()
 Returns the processor's output arity. More...
 
void duplicateInto (Processor p)
 Copies the contents and state of the current processor into another. More...
 
final Set< Class<?> > getInputType (int index)
 Gets the type of events the processor accepts for its i-th input trace. More...
 
void getInputTypesFor (Set< Class<?>> classes, int index)
 Populates the set of classes accepted by the processor for its i-th input. More...
 
Class<?> getOutputType (int index)
 Returns the type of the events produced by the processor for its i-th output. More...
 
void start ()
 Starts the processor. More...
 
void stop ()
 Stops the processor. More...
 
final EventTracker getEventTracker ()
 Gets the instance of event tracker associated to this processor. More...
 
Processor setEventTracker (EventTracker tracker)
 Associates an event tracker to this processor. More...
 
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. More...
 
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. More...
 
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. More...
 
final int getInputCount ()
 Gets the number of event fronts received so far by this processor. More...
 
final int getOutputCount ()
 Gets the number of event fronts produced so far by this processor. More...
 
final Object print (ObjectPrinter<?> printer) throws ProcessorException
 Prints the contents of this processor into an object printer. More...
 
final Processor read (ObjectReader<?> reader, Object o) throws ProcessorException
 Reads the content of a processor from a serialized object. More...
 
final Processor duplicate ()
 Duplicates an object and sets it to its initial state. More...
 
void copyInputQueue (int index, Collection< Object > to)
 Copies the content of one of the processor's input queue to a collection. More...
 
void copyOutputQueue (int index, Collection< Object > to)
 Copies the content of one of the processor's output queue to a collection. More...
 
abstract Processor duplicate (boolean with_state)
 Duplicates an object. More...
 
Processor or (Processor p)
 Connects the first output pipe of this processor to the first input pipe of another processor. More...
 
Processor or (Pushable p)
 Connects the output at index 0 of the current processor to the input of another processor. More...
 
Pushable getAt (int index)
 Gets the Pushable object corresponding to the processor's input pipe for a given index. More...
 

Protected Member Functions

boolean compute (Object[] inputs, Queue< Object[]> outputs) throws ProcessorException
 
boolean onEndOfTrace (Queue< Object[]> outputs) throws ProcessorException
 
abstract boolean shouldOutput ()
 Indicates if the inputs should be processed and output. More...
 
void postCompute ()
 Called after each compute. More...
 
Object [] processInputs (Object[] inputs)
 Method to override if you do not want to output inputs only but also need to calculate a specific output. More...
 
void postOutput ()
 Called after every output. More...
 
- Protected Member Functions inherited from ca.uqac.lif.cep.SynchronousProcessor
abstract boolean compute (Object[] inputs, Queue< Object[]> outputs)
 Computes one or more output events from its input events. More...
 
- 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. More...
 
final Context newContext ()
 Creates a new empty context map. More...
 
boolean onEndOfTrace (Queue< Object[]> outputs) throws ProcessorException
 Allows to describe a specific behavior when the trace of input fronts has reached its end. More...
 
Object printState ()
 Produces an object that represents the state of the current processor. More...
 
Processor readState (Object o)
 Reads the state of a processor and uses it to create a new instance. More...
 

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. More...
 
Object [] m_lastProcessedInputs
 The last inputs processed by processInputs(Object[]) stored (in case of EOT processing mode). More...
 
- 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. More...
 
final transient Pushable [] m_inputPushables
 An array of input pushables. More...
 
transient Pullable [] m_outputPullables
 An array of output pullables. More...
 
- Protected Attributes inherited from ca.uqac.lif.cep.Processor
int m_inputArity
 The processor's input arity, i.e. More...
 
int m_outputArity
 The processor's output arity, i.e. More...
 
transient Queue< Object > [] m_inputQueues
 An array of input event queues. More...
 
transient EventTracker m_eventTracker = null
 An object that keeps track of the relationship between input and output events. More...
 
transient Queue< Object > [] m_outputQueues
 An array of output event queues. More...
 
transient Pullable [] m_inputPullables
 An array of Pullables, one for each input trace this processor receives. More...
 
transient Pushable [] m_outputPushables
 An array of Pushables, one for each output trace this processor produces. More...
 
int m_inputCount = 0
 A counter incremented upon each input front processed. More...
 
int m_outputCount = 0
 A counter incremented upon each output front processed. More...
 
Context m_context = null
 The context in which the processor is instantiated. More...
 
boolean [] m_hasBeenNotifiedOfEndOfTrace
 Indicates whether the processor has been notified of the end of trace or not. More...
 

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. More...
 
static Queue< Object[]> getEmptyQueue ()
 Gets an instance of an empty event queue. More...
 
static void startAll (Processor ... procs)
 Starts all processors given as an argument. More...
 
static void stopAll (Processor ... procs)
 Stops all processors given as an argument. More...
 
static List< ProvenanceNode > getLeaves (ProvenanceNode root)
 Gets the leaves of a provenance tree. More...
 
- Static Public Attributes inherited from ca.uqac.lif.cep.Processor
static final transient String s_versionString = "0.10.5"
 A string used to identify the program's version. More...
 
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. More...
 
- 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. More...
 

Detailed Description

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).

Author
Quentin Betti
Since
0.7

Definition at line 53 of file Decimate.java.

Constructor & Destructor Documentation

◆ Decimate() [1/2]

ca.uqac.lif.cep.tmf.Decimate.Decimate ( boolean  should_process_last_inputs)

Creates a new Decimate processor.

Parameters
should_process_last_inputsset 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.

◆ Decimate() [2/2]

ca.uqac.lif.cep.tmf.Decimate.Decimate ( )

Definition at line 81 of file Decimate.java.

Member Function Documentation

◆ compute()

boolean ca.uqac.lif.cep.tmf.Decimate.compute ( Object []  inputs,
Queue< Object[]>  outputs 
) throws ProcessorException
protected

Definition at line 87 of file Decimate.java.

◆ onEndOfTrace()

boolean ca.uqac.lif.cep.tmf.Decimate.onEndOfTrace ( Queue< Object[]>  outputs) throws ProcessorException
protected

Definition at line 107 of file Decimate.java.

◆ postCompute()

void ca.uqac.lif.cep.tmf.Decimate.postCompute ( )
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.

Definition at line 143 of file Decimate.java.

◆ postOutput()

void ca.uqac.lif.cep.tmf.Decimate.postOutput ( )
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.

Definition at line 166 of file Decimate.java.

◆ processInputs()

Object [] ca.uqac.lif.cep.tmf.Decimate.processInputs ( Object []  inputs)
protected

Method to override if you do not want to output inputs only but also need to calculate a specific output.

Parameters
inputsthe current input events
Returns
the result that will be added to the outputs, by default returns the inputs as they are

Definition at line 156 of file Decimate.java.

◆ shouldOutput()

abstract boolean ca.uqac.lif.cep.tmf.Decimate.shouldOutput ( )
abstractprotected

Indicates if the inputs should be processed and output.

Returns
true if the inputs should be processed and output, false otherwise

Member Data Documentation

◆ m_lastProcessedInputs

Object [] ca.uqac.lif.cep.tmf.Decimate.m_lastProcessedInputs
protected

The last inputs processed by processInputs(Object[]) stored (in case of EOT processing mode).

Definition at line 65 of file Decimate.java.

◆ m_shouldProcessLastInputs

final boolean ca.uqac.lif.cep.tmf.Decimate.m_shouldProcessLastInputs
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.


The documentation for this class was generated from the following file: