Glossary

This book has introduced many concepts revolving around the concept of event streams. In particular, the BeepBeep library provides a little "zoo" of dozens of Processor and Function objects. In this appendix, you will find a list of the various objects and notions that have been discussed. For entries referring to Java objects (such as processors and functions), a note next to the entry indicates whether these objects are part of BeepBeep's core, or can be found in one of its auxiliary palettes.

For more technical information about each of these objects, the reader is referred to the online API documentation, which provides in-depth and up-to-date information.

AbsoluteValue

Addition

And

AnyElement

ApplyFunction

ApplyFunctionPartial

ApplyToAll

Arity

For a Processor object, refers to the number of pipes it has. The input arity is the number of input streams accepted by the processor, and the output arity is the number of output streams it produces.

For a Function object, refers to the number of arguments it accepts or the number of values it produces.

ArrayPutInto

See also PutInto.

Bags

BinaryFunction

BlackHole

Booleans

Call

CallbackSink

Closed (chain)

A property of a chain of processors, when either all its downstream processors are Sinks, or all its upstream processors are Sources. A chain of processors that is not closed will generally throw Java exceptions when events pass through it.

Concat

Connector

Constant

Contains (Bags)

Contains (Strings)

Context

ContextAssignment

ContextVariable

By convention, context variables are prefixed with a dollar sign in diagrams, to differentiate them from constants.

CountDecimate

Cumulate

CumulativeFunction

Deserialize

Deserialization can be used to restore the state of objects previously saved on a persistent medium, or to receive non-primitive data types over a communication medium such as a network. The opposite operation is called serialization.

Division

EndsWith

Equals

Eventually

Exists

There is also a variant that uses an auxiliary function to compute the set of values to quantify over. It is represented as:

ExpandAsColumns

Explode

Filter

FilterElements

FindPattern

A Processor that extracts chunks of an input stream based on a regular expression. It is represented graphically as:

FindRegex

ForAll

There is a variant of ForAll that uses an auxiliary function to compute the set of values to quantify over. It is represented as:

Fork

Freeze

Front

Given n streams, the front at position k is the tuple made of the event at the k-th position in every stream. BeepBeep Processors that have an input arity greater than 1 handle events one front at a time; this is called synchronous processing.

Function

Functions are represented graphically as rounded rectangles, with a pictogram describing the computation they perform, such as this:

A function with an input arity of m and an output arity of n is often referred to as an m:n function.

FunctionTransition

FunctionTree

Get

GetSize

GetWidgetValue

Globally

GroupProcessor

To create a GroupProcessor, one must first instantiate and connect the processors to be encapsulated. Each processor must then be added to the group through a method called add. Finally, the endpoints of the chain must be associated to the inputs and outputs of the group. From then on, the processor can be moved around, connected and duplicated as if it were a single processor.

In a graphical representation of a GroupProcessor, the processor chain inside the group can also be drawn.

HttpGet

IdentityFunction

The actual colour of the oval depends on the type of events that the function relays.

IfThenElse

Implies

Insert

IsEven

IsGreaterOrEqual, IsGreaterThan

IsLessOrEqual, IsLessThan

IsSubsetOrEqual

JdbcSource

JPathFunction

JsonElement

KeepLast

Limit

ListenerSource

Lists

Maps

Matches

Maximum

Minimum

MooreMachine

Multiplex

Multiplication

Multiset

Next

Not

NumberCast

Numbers

NthElement

Or

Pack

The opposite of Pack in Unpack. See also TimePack.

ParseJson

ParseXml

Passthrough

PeakFinder

The Signal palette implements two variants of PeakFinder called PeakFinderLocalMaximum and PeakFinderTravelRise.

Persist

PlateauFinder

Power

Prefix

Print

Processor

This class itself is abstract; nevertheless, it provides important methods for handling input/output event queues, connecting processors together, etc. However, if you write your own processor, you will most likely want to inherit from its child, SynchronousProcessor, which does some additional work. The Processor class does not assume anything about the type of events being input or output. All its input and output queues are therefore declared as containing instances of Object, Java's most generic type.

Product

Pullable

Pull mode

One of the two operating modes of a chain of processors. In pull mode, a user or an application obtains references to the Pullable objects of the downstream processors of the chain, and calls their pull() method to ask for new output events. When using a chain of processors in pull mode, the chain must be closed at its inputs. The opposite mode is called push mode.

Pump

Graphically, this processor is represented as:

The repeated pulling of events from its input is started by calling this processor's #start() method. In the background, this will instantiate a new thread, which will endlessly call pull() on whatever input is connected to the pump, and then call push() on whatever input is connected to it.

The opposite of the Pump is the Tank.

Pushable

Push mode

One of the two operating modes of a chain of processors. In push mode, a user or an application obtains references to the Pushable objects of the upstream processors of the chain, and calls their push() method to feed new input events. When using a chain of processors in push mode, the chain must be closed at its outputs. The opposite mode is called pull mode.

PutInto (Maps)

See also ArrayPutInto.

PutInto (Sets)

See also PutIntoNew.

PutIntoNew (Sets)

See also PutInto (Sets).

QueueSink

QueueSource

RaiseArity

Randomize

ReadInputStream

ReadLines

ReadStringStream

RunOn

If the collection c is unordered and P is sensitive to event ordering, the output of RunOn on this collection may not always be the same.

Serialize

Serialization can be used to store the state of objects on a persistent medium, or to transmit non-primitive data types over a communication medium such as a network. The opposite operation is called deserialization.

Sets

Signum

SynchronousProcessor

Sink

SinkLast

Slice

Smooth

Source

Splice

SplitString

The comma in the figure is to be replaced by the actual character used to separate the input string.

SquareRoot

StartsWith

StreamVariable

The number inside the diamond represents the stream number. By convention, stream numbers start at 1 in diagrams.

Strings

Stutter

Subtraction

Tank

Graphically, this processor is represented as:

The opposite of the tank is the Pump.

TankLast

Threshold

TimeDecimate

Note that this processor uses System.currentTimeMillis() as its clock. Moreover, a mode can be specified in order to output the last input event of the trace if it has not been output already.

TimePack

The opposite of TimePack in Unpack. See also Pack.

ToArray, ToList, ToSet

ToImageIcon

ToString

Transition

TransitionOtherwise

Trim

Tuple

TupleFeeder

TurnInto

UnaryFunction

Uniform (processor)

A Processor that produces the same number of output fronts for every input front it receives. Occasionally, the number of output fronts produced is explicitly mentioned: a k-uniform processor produces exactly k output fronts for every input front.

Unpack

The opposite of Unpack is Pack.

Until

Values

VariableStutter

Variant

A special class that can be returned by a call to a processor's getInputTypesFor or getOutputType methods. The occurrence of such a type in an input or output pipe disables the type checking step that the Connector class normally performs before connecting two processors together.

Window

WindowFunction

WriteOutputStream

XmlElement

XPathFunction

Last updated