Kamaelia

Nuts & Bolts | Components | Tools | Cookbook | Systems
wiki:( guest720897, Dev Console, Index, Recent, Edit )


Home, News
Dev Console

How, Why
Project Blog
Summer of Code

Documentation
Download
SVN (web)
Sourceforge page

Project Admin
License

Contact Us

  Page Tags

No tags are defined for this page yet - how would you classify/think of this page? Add your notes below!

Kamaelia docs : Kamaelia.Chassis.Seq

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

Example Usage

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

Behaviour

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.


Kamaelia.Chassis.Seq.Seq

class Seq(Axon.Component.component)

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:

  • *sequence -- Components that will be run, in sequence. Can also include strings that will be output to the console.

Methods defined here

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.

childrenDone(self)

Unplugs any children that have terminated, and returns true if there are no running child components left (ie. their microproceses have finished)

Feedback

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, 20 Jul 2008 at 03:02:36 UTC/GMT


Your tags for this page: If you had set UserPreferences (name & email) and validated them (simple single click in your email), you would be able to define personal tags

Versions: current , 1


(C) 2005 Kamaelia Contributors, including the British Broadcasting Corporation, All Rights Reserved,
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.