I encountered the term dataflow after starting this
library. Although the information I can find about dataflow as a programming
paradigm seems to be a little sub-par, it seems like the right name for this
programming paradigm. As a part of developing this library and doing the
accompanying research I can work on improving the information that i out
there (on Wikipedia, etc.)
I chose component to refer to a processing element of
a dataflow network, because the term has no prior (to my knowledge) C++ meaning.
In differentiating components that output data from those that input data,
I originally thought about using "input component" and "output
component". However, I realized that "input" and "output"
switch depending on perspective - from the perspective of a component, it
is "output" if it outputs data, but from the perspective of a corresponding
connection, that same component is the "input". A better choice
might be producer and consumer
as they don't suffer from the same problem. Perhaps "provider"
would be more accurate (since the component does not necessarily need to
produce new data each time, but can keep providing the same data), but there
is a precedent for using producer and consumer. The filter class might be
renamed to producer.