Run components one after the other (in sequence)
A Seq component runs components one after the other in sequence, waiting until one terminates before starting the next.
Strings can also be put in the sequence. They'll be printed to the console
Run several OneShot components running one after the other:
Pipeline( Seq( "BEGIN SEQUENCE", OneShot("Hello\n"), OneShot("Doctor\n"), OneShot("Name\n"), OneShot("Continue\n"), OneShot("Yesterday\n"), OneShot("Tomorrow\n"), "END SEQUENCE", ), ConsoleEchoer(), ).run()
Running this generates the following output:
BEGIN SEQUENCE Hello Doctor Name Continue Yesterday Tomorrow END SEQUENCE
Each component in the sequence is activated as a child component and is wired up so that the "inbox" inbox and "outbox" outbox are forwarded to the "inbox" inbox and "outbox" outbox of the Seq component itself.
When the child component terminates it is replaced with the next in the sequence.
If a string is listed instead of a component then it is printed on the console and Seq immediately moves onto the next in the sequence.
Any messages sent out of the child component's "signal" outbox are dropped - this is so that if you Pipeline a Seq component to another, it does not cause it to terminate when the Seq component switches to a new child.
This component ignores any messages sent to its "control" inbox.
When the end of the sequence is reached, a producerFinished() message is sent out of the "signal" outbox and the component terminates.
Seq(*sequence) -> new Seq component.
Runs a set of components in sequence, one after the other. Their "inbox" inbox and "outbox" outbox are forwarded to the "inbox" inbox and "outbox" outbox of the Seq component.
Methods defined here
Unplugs any children that have terminated, and returns true if there are no running child components left (ie. their microproceses have finished)
Got a problem with the documentation? Something unclear that could be clearer? Want to help improve it? Constructive criticism is very welcome - especially if you can suggest a better rewording!
Please leave you feedback here in reply to the documentation thread in the Kamaelia blog.
-- Automatic documentation generator, 05 Jun 2009 at 03:01:38 UTC/GMT
This is an ongoing community based development site. As a result the contents of this page is the opinions of the contributors of the pages involved not the organisations involved. Specificially, this page may contain personal views which are not the views of the BBC. (the site is powered by a wiki engine)
(C) Copyright 2008 Kamaelia Contributors, including the British Broadcasting Corporation, All Rights Reserved.