C++ operator model
An operator model is an XML document that describes the basic properties of a primitive operator.
Primitive operator developers are tasked with providing operator models that describe the basic syntactic and semantic properties of the new operators that they want to add to the SPL language. The major properties that can be specified with the operator model are shown in the following list:
- Parameters of the operator (for example, the Join operator
has a
match
parameter) - Custom enumerations to be used as types for configuring certain
parameters (for example, In ‘
param format: csv
',csv
is a custom enumeration literal) - Input and output port cardinality (for example the Join operator requires two input ports)
- Input and output port tuple mutability (for example, for efficiency purposes under operator fusion, an operator might want to modify its input tuples and might allow downstream operators to modify its output tuples)
- Punctuation modes that are associated with the input/output ports
(for example, the
Functor
operator has a punctuation-preserving output port with respect to window marker punctuation) - Output port attribute assignment modes of the operator (for example, using custom output functions as in the Aggregate operator or plain as in the Functor operator or no output assignments as in a Filter operator)
- Custom output functions to be used for configuring the output
attribute assignments (for example, in ‘
output OutStream: maxVal = Max(val);
',Max
is a custom output function with a function signature of<ordered T> T Max(T)
) - Library dependencies of the operator (for example, an image-processing
operator might depend on the library
libpng
)