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)

Axon.Linkage.py

Version: Axon 1.0

TODO: test suite doesn't emit API docs quite right

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.

These need to be registered with a postman (see below) who takes messages from the outputs and delivers them to the appropriate destination. 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.

Pydoc Style Documentation

class linkage(Axon.Axon.AxonObject)

Linkage - Since components can only talk to local interfaces, this defines the linkages between inputs and outputs of a component. At present no argument is really optional.

Methods defined here:

__init__(self, source, sink, sourcebox='outbox', sinkbox='inbox', postoffice=None, passthrough=0, pipewidth=0, synchronous=None)

__str__(self)

dataToMove(self)

moveData(self, force=False)

moveDataWithCheck(self)

setShowTransit(self, showtransit)

setSynchronous(self, pipewidth=None)

sinkPair(self)

sourcePair(self)

Testdoc Documentation

__init__

__str__

dataToMove

moveData

setSynchronous

Michael, December 2004