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)
Components only have input & output boxes. For data to get from a producer (eg a file reader) to a consumer (eg an encryption component) then the output of one component, the source component, must be linked to the input of another component, the sink component.
All components have a postoffice object, this performs the creation and destruction of linkages. Ask it for a linkage between inboxes and outboxes and a linkage object is returned as a handle describing the linkage. When a message is sent to an outbox, it is immediately delivered along linkage(s) to the destination inbox.
This is not the usual technique for software messaging. Normally you create messages, addressed to something specific, and then the message handler delivers them.
However the method of communication used here is the norm for hardware systems, and generally results in very pluggable components - the aim of this system, hence this design approach rather than the normal. This method of communication is also the norm for one form of software system - unix shell scripting - something that has shown itself time and again to be used in ways the inventors of programs/components never envisioned.
Tests passed:
linkage(source, sink[, passthrough]) -> new linkage object
An object describing a link from a source component's inbox/outbox to a sink component's inbox/outbox.
Keyword arguments: - source -- source component - sink -- sink component - sourcebox -- source component's source box name (default="outbox") - sinkbox -- sink component's sink box name (default="inbox") - passthrough -- 0=link is from inbox to outbox; 1=from inbox to inbox; 2=from outbox to outbox (default=0)
x.__init__(...) initializes x; see x.__class__.__doc__ for signature.
Returns the box object that this linkage goes to.
Returns the box object that this linkage goes from.
Set showTransit to True to cause debugging output whenever a message is delivered along this linkage. The tag can be anything you want to identify this occurrence.
Legacy method for setting the size limit on a linkage. Instead it sets the size limit for the destination inbox. A pipewidth of None specifies that there should be no limit.
This method is likely to be deprecated soon.
Returns (component,boxname) tuple describing where this linkage goes to
Returns (component,boxname) tuple describing where this linkage goes from
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, 09 Dec 2009 at 04:00:25 UTC/GMT