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.
Keyword arguments:
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, 19 Oct 2008 at 14:29:09 UTC/GMT