[comp.sys.amiga.tech] Manifold possibilities...

pete@violet.berkeley.edu (Pete Goodeve) (12/12/90)

For anyone who wants to check out my "IP:" pipe device, I've posted the
latest version to new Xanth (abcfd20.larc.nasa.gov) as an lharc'd package
(ipdevice.lzh).  This is the latest version (rather faster than the one on
Fish Disk #374), and also has the "manifold" module -- a multi-way tee that
lets you clone one IP: data stream into many.

For those who missed my earlier description, an "IP:" pipe is like other
named pipes, except that it DOESN'T block until the buffer is filled:
the reader gets each packet sent by the writer immediately.  This means,
for example, that programs can INTERACT through these pipes.  (It also
works fine with REXX scripts -- via OPEN/WRITELN etc -- in places where you
otherwise wouldn't be able to use ARexx.)

A couple of other features are unique to the IP device.  You can have more
than one writer, so that a channel acts as a "funnel".  Also, you can
arrange for a particular (named) channel to remain open even when all its
sources have terminated. (It is finally closed by a separate command.)  You
could for instance have a "logging" funnel driving 'compress' that would
collect and compress any data dumped into it.

There is a special facility for connecting input and output channels to
a shell process, so it can be managed by program generated output.

A single IP: channel can only have one destination, but if this is the
'mani' module you can drive as many further pipes and processes as you
like.  (I use it with 'lmk', for example, to both display error info
as it is generated, and create a file for later reference.)

[I should I guess mention that it is all based on the ppipc.library
(included), so there are possibilities -- as yet mostly unrealized -- for
direct IPCMessage access to these programs.]

                                                -- Pete --

I also had better mention that I am outta here (in England, actually)
for a month.  Don't bother sending any mail on the subject for a while...
or at least don't expect a quick answer.