[Pipet Devel] NetInputs and NetOutputs

Jean-Marc Valin jean-marc.valin at hermes.usherb.ca
Mon Jun 19 14:10:06 EDT 2000

>         I've been working on getting Overflow ideas and concepts worked
> into Piper, but am not sure how we are planning on integrating the concept
> of NetInputs and NetOutputs from Overflow.

NetInputs, NetOutputs and NetConditions are used to specify what goes in and out
of the subnet. Since every subnet has at least one output, it needs at least on
e NetOutput. All non-toplevel networks can also have NetInputs, that take data
from outside. Iterators must have ONE NetCondition. These Net* can be added by
shift-clicking (or ctrl-clicking) in the node terminals. When you include a
subnet in another network, it will appear as a regular node. The inputs of this
node will be the NetInputs tags, the same applies to NetOutputs (You don't see
NetConditions however, since it is used "internally" by the Iterator)

>         So, first let me try to explain what NetInputs and NetOutputs are.
> Overflow has the ideas of Networks, which are equivalent to Workspaces in
> Loci, and the idea of Subnets, which are equivalent to composite loci in
> Loci. The idea is that Subnets are like little functions, that take some
> kind of input, process it, and then generate some kind of output. This is
> cool since it lets you simplify the overall workflow diagram, and also lets
> you reuse useful internal functions. One of the key concepts that goes
> along with this is the ideas of the Inputs that flow into a subnet, and the
> Outputs that go out (which are just like the parameters and return values
> of a function).
>         Now, I'm trying to think of how to make this work in Piper, using
> the gnome GUI (pied) from Loci. I attached a screenshot from the current

Did I mention that "pied" in french (with the same spelling) means "foot". It's
pronounced "pié".

> Piper which shows what this looks like. In the simple example, we have a
> Constant value putting its input into a composite (which is analagous to a
> Subnet in Overflow), and a TextViewer recieving the output from the
> composite. Inside the composite, we just have a NetExec locus, which will
> process the input, and return the output.
>         Now, the question is, what is the process by which we will direct
> the input from the Constant into, say, input connector 1 of the NetExec.
> Similarly, how will we direct the output of say, output connector 1 of the
> NetExec into the TextViewer?

If I understand correctly, that's exactly where NetInputs and NetOutputs are
used. If you compare subnets to C functions, then NetInputs are the arguments
and NetOutputs are the return value(s).


Jean-Marc Valin
Universite de Sherbrooke - Genie Electrique
valj01 at gel.usherb.ca

More information about the Pipet-Devel mailing list