[Pipet Devel] Re: overflow<->loci translation and 3 basic gui objects

Jean-Marc Valin jean-marc.valin at hermes.usherb.ca
Tue Mar 28 08:53:06 EST 2000


"J.W. Bizzaro" a écrit :
> 
> jarl van katwijk wrote:
> >
> > > > If you can find a way to do that in C, you have found how to do it with
> > > > Overflow. If not, forget it :-). I don't see how, it's really two different
> > > > things... If I had to replace Document by something existing, I'd choose Network
> > > > (which, remember, derives from Node!).
> > >
> > > I didn't realize Overflow had that limitation.  Perhaps then the GMS layer can
> > > provide the recursion?
> >
> > Uhh.. sorry, dont get it what this 'call\implementation' is about?
> > Somebody could explain?
> 
> In procedural languages you define a procedure with its parameters.  This is
> what Jean-Marc means by 'implementation'.  Then somewhere else in the program
> you give the procedure 'call'.
> 
> But Jean-Marc, you can call a procedure from within its implementation, giving
> you some recursion, right?  Can Overflow do that?

Yes, you can do that in Overflow. There are two ways to do it, but you don't
need to have <Node> mean two different things. You can see in TimeFilter.cc that
the getOutput method calls this->getOutput() so the output is the node is fed
back in the node. I'd call this implicit recursion. The other way is not fully
implemented yet. When it is, you'll be able to explicitly connect the output of
a node to its input (or the input of a node "upstream"). The overflow model
already supports that, but for now, the network initialization will fail.

Also, about node parameters. I think there's a little misunderstanding. The
<Parameter> tag in the <Node> doesn't say which parameters are available, but
which argument is passed to the node. The parameter "declarations" are in two
places:

-For built-in nodes (.cc files), the parameters are declared as an argument to
NODE_INFO on top of the file.
-For networks (that can be used as nodes), every time there's an argument of
type "subnet_param" for a node in that network, the network will have this
parameter. example:

<Network name="foo" type="subnet">
   <Node name="bar" type="SomeNode">
      <Parameter name="param1" type="Int" value="1"/>
      <Parameter name="param2" type="subnet_param" value="myParam"/>
   </Node>
</Network>

Here, when including network "foo" as a node, you will need to provide a
parameter named "myParam" that will be substituted as "param2" in node bar.

	Jean-Marc




More information about the Pipet-Devel mailing list