August'24: Kamaelia is in maintenance mode and will recieve periodic updates, about twice a year, primarily targeted around Python 3 and ecosystem compatibility. PRs are always welcome. Latest Release: 1.14.32 (2024/3/24)
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:
Warning!
You should be using the inbox/outbox interface, not these methods (except construction). This documentation is designed as a roadmap as to their functionalilty for maintainers and new component developers.
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