It's an interesting question that I have been asking myself while redesigning FScape. Eventually my conclusion was that one can distinguish types of processes
- those that require random access or repeated access to some input data
- those that can use a linear input stream but require stream information such as total input length
- those that can use a linear input stream blindly (typical of DSP processes that otherwise run in real-time)
- and the same for the output ports
So, yes, in the general case the assumption would have to be that input and output must be fully buffered. That's how I implemented the PoC right now.
- those that require random access or repeated access to some input data
- those that can use a linear input stream but require stream information such as total input length
- those that can use a linear input stream blindly (typical of DSP processes that otherwise run in real-time)
- and the same for the output ports
So, yes, in the general case the assumption would have to be that input and output must be fully buffered. That's how I implemented the PoC right now.