[Pipet Devel] Re: [Pipet Devel] Re: Ideas for network distributed objects

J.W. Bizzaro bizzaro at geoserve.net
Fri Mar 24 23:50:14 EST 2000

Jean-Marc Valin wrote:
> Something I forgot to say about documents... if this document is in the
> VFLOW_PATH, then the whole document can be used as a node in another document.

Right.  Loci can embed workspaces in workspaces too.

> BTW, the network type can be three things: "subnet", "iterator" or
> "threadedIterator". The "threadedIterator" is very experimental, so I will not
> talk about it. A "subnet" is the C equivalent of a function, while the
> "iterator" is the equivalent (not exact) of a loop. Actually an iterator is the
> equivalent of a function that looks like
> void foo(...)
> {
>    while(condition)
>    {
>       do something
>    }
> }


> > Great, this is just like Loci's locus types/classes.
> >
> Just to make sure everyone understand, the definition is the equivalent of a
> function call, not a function prototype/implementation.

Okay, I was showing you some actual locus implementation in XML.  Loci doesn't
keep workspace information in a single flat file like Overflow does.  Loci
(right now) uses the local filesystem to help organize the structure.  I'll
let you, Jarl and Brad work out how VSH will do it.

> > This is like a mime-type for link I/O?  This is also something Loci was going
> > to define.
> I'm not sure what you're talking about...

I mean, when Overflow defines a link, does it also define the type of data
that is passed through the link?

> > I'm not sure what you mean by value=256, cat, or frames.
> >
> Here's the C equivalent:
> void foo(int aNumber);
> main()
> {
>    foo(256);
> }
> This would translate to:
> <Node name="node1" type="foo">
>    <Parameter name="aNumber" type="int" value="256"/>
> </Node>

Gotcha, these are akin to function parameters in C.

> When the node is loaded (its library is dynamically linked), a function puts
> that info in a node "database", which the GUI uses to know what node are
> available (and takes what arguments).

How are you making this 'database'?  Is it an external db like mySQL or your
own creation?

> We used to have links as a property of the nodes (before we switched to XML).
> The reason we changed is that is that a Link in the GUI is an actual object, so
> it was just simpler.

That's a good point.  Loci also treats connectors as objects.  But they are
always a subclass of loci (nodes).

> > What is the actual output?  The screen, a file?  Or is this something the user
> > defines?
> The output is what getOutput() returns... you can do whatever you like with it.
> batchflow (text mode tool) writes it to stdout, vflow (the GUI tool) writes it
> in a subwindow. If you want to save it in a file, all you need to do is to have
> the last node be a "Save" node. ...or the last node can be a soundcard output...
> In most cases, the output of the MAIN network is a nil object.

Excellent.  In Loci, we were going to have unconnected output connectors
(links) be 'outputs' of this type.  If these outputs are left unconnected by
the user, Loci would send the data to the parent of the workspace (document). 
And if there was no parent (the workspace is the highest-level workspace),
Loci would send the data to stdout.

> I'm not that much a fan of XML... The only reason I used it was that it saved me
> so much time (instead of writing a parser myself). So Anything that does the job
> is OK for me.

I like it.

                      |           J.W. Bizzaro           |
                      |                                  |
                      | http://bioinformatics.org/~jeff/ |
                      |                                  |
                      |        BIOINFORMATICS.ORG        |
                      |           The Open Lab           |
                      |                                  |
                      |    http://bioinformatics.org/    |

More information about the Pipet-Devel mailing list