Boost logo

Boost :

From: Roland Schwarz (roland.schwarz_at_[hidden])
Date: 2007-11-12 06:00:22


Stjepan Rajko wrote:
> I am getting close to having the Dataflow library ready to be
> submitted for review, and would like to respark some interest. The
> current version of the library offers a generic layer for dataflow
> programming that can be applied to various data transport mechanisms,
> and a Dataflow.Signals support layer for Boost.Signals that provides a
> number of general-purpose components and easy connectability.

I just skimmed over the docs, and I have some questions:

1) How would I specify the control flow? I.e. How would I choose between
    "source driven" and "sink driven"?

2) Is there a mechanism that will give support for block oriented
    processing, or will a function be called on every data item?
    To clarify: I do not mean a couple of primitive data items blocked
    together into a larger container which is itself a data item on
    its own, but something like the fread() function is able to do:
    *) request a number of items
    *) return as much as currently available (may be less than wanted)
    *) block process what has been received
    *) wait for more data

You are using VTK as an example and so I suspect you are using the
demand driven processing in your library. Are you also providing
a caching and timestamping mechanism to hold intermediary results
that need no updating?

Which special concepts for memory management are you suggesting (if
at all)? Memory management is one of the crucial parts of data flow
programming. Will you provide a single copy mechanism?

I always found that in data flow paradigm these are the hard parts.
It is not the hard part to come up with a "nice syntax".

Roland aka speedsnail


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk