Jaakko Järvi wrote:
The review of Stjepan Rajko's Dataflow library starts today, September 1st, and will run until September 10th.
--------------------------------------------------------- Description of the library:
Dataflow is a generic library for dataflow programming. Dataflow programs can typically be expressed as a graph in which vertices represent components that process data, and edges represent the flow of data between the components. As such, dataflow programs can be easily reconfigured by changing the components and/or the connections.
This review focuses on the Dataflow.Signals layer of the library. For its data transport mechanism, Dataflow.Signals uses Boost.Signals which can be used to make lasting dataflow connections based on function calls. Dataflow.Signals provides the following to facilitate signals-based dataflow networks:
* A number of useful general-purpose components, and building blocks for implementing new components. * Various free functions and operators for connecting and using components.
The library documentation provides some concrete examples of how Dataflow.Signals layer can be used. Some examples are:
* Implementing distributed dataflow applications using Dataflow.Signals and Boost.Asio * An image processing network using Dataflow.Signals and Boost.GIL * A GUI dataflow editor (located in the Dataflow.Blueprint documentation)
While the Dataflow library contains other layers, only the Dataflow.Signals layer is ready for review. Reviewers are welcome to provide feedback for any part of the library, but please be aware that the documentation and implementation for the other layers may be lacking (for example, there is the generic support layer, which provides concepts applicable to different dataflow frameworks, and can be used to develop generic dataflow code, as well as the Dataflow.Blueprint layer which provides run-time reflection and modeling of dataflow networks in a Boost Graph Library graph for any dataflow framework with implemented Dataflow library support). For the time being, please consider these other layers as implementation details or proof-of-concept examples, as appropriate.
The library is accessible as a tarball at: http://www.boostpro.com/vault/index.php?&directory=Dataflow
The documentation can be accessed here: http://www.dancinghacker.com/code/dataflow/
The documentation particular to the Dataflow.Signals layer under review: http://www.dancinghacker.com/code/dataflow/dataflow/signals.html
Dataflow depends on many existing Boost libraries, such as Fusion and MPL. The Dataflow.Signals layer builds functionality over Boost.Signals. The Dataflow library has been tested using a recent version of the Boost trunk, as well as the 1.35 release. Tests and examples have been built successfuly on OS X (GCC 4.0, 4.2), Linux (GCC 4.2), and Windows (MSVC 8.0 and to some degree MinGW GCC 4.2). ---------------------------------------------------------
--------------------------------------------------------- Questions you may want to answer in your review:
- What is your evaluation of the design? - What is your evaluation of the implementation? - What is your evaluation of the documentation? - What is your evaluation of the potential usefulness of the library? - Did you try to use the library? With what compiler? Did you have any problems? - How much effort did you put into your evaluation? A glance? A quick reading? In-depth study? - Are you knowledgeable about the problem domain?
In particular, please remember to answer the following question explicitly:
- Do you think the library should be accepted as a Boost library?
Jaakko Järvi Review Manager
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Hey, The filter of the GIl example is always processed, whether or whether not it is multiplexed to the output, right? Maybe it would be good to insert a conditional component right before the filter, therefore the data is dropped, if the multiplexer takes data from slot 0. Otherwise a senseless computation is done, if the filter is turned off. I wanted to alter the example as suggested, but i don't know how to use the conditional component? I couldn't find a example for that. Maybe you could point out how to use it. Kind Regards Manuel