This is awesome work you've done. There are two or three strong implementations of Pipelines for non-CMS/TSO environments. I don't mean to dis any of them. I'm looking for something written in C for maximum efficiency and portability. Having a core that is pure C does not prohibit some of the STAGES being written in C++ or anything else.
Some months back, I began to assemble the following into runnable code. It is not complete, but the idea is ... two Unix pipe() pairs for each effective Pipelines connection wrapper functions output(), peekto(), and readto() are illustrated below The two Unix pipes go opposite directions. One goes forward and carries data (duh!) and also any meta data (such as length of the record available, if any) from producer to consumer. The other goes backward and carries requests and feedback from consumer to producer. So a record flows something like ... producer calls output() consumer calls peekto() under the covers, peekto() sends "STAT" backward output() sends metadata forward (most interesting being size of the record) assuming the buffer can hold the record, peekto() sends "PEEK" backward output() then sends the data A readto() does all of the above plus sends "NEXT" at the end and output() can return. When output() returns, the producer is unblocked and we get proper record flow. (You can dealy the record ... or not!) The design starts with two Unix pipes but can use shared mem if the platform supports that. The code is accomodating. (A NULL pointer to a shared mem struct means don't use shared mem.) -- R; <>< On Tue, Aug 31, 2010 at 04:17, James Laing <james_la...@hotmail.co.uk> wrote: > Pipelines was never intended to represent a port of CMS Pipelines - nor was > it originally intended for anything other than a useful tool for those times > when you might need to modify/translate some data. > > My background was as a VM/TPF systems programmer and one day I realised that > I could really use a tool 'like' CMS Pipelines - but there wasn't one on my > Windows platform. So I wrote Pipelines. > > James. >