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.CoordinatingAssistantTracker.py
Version: Axon 1.0
The co-ordinating assistant tracker is designed to allow components
to register services and statistics they wish to make public to the rest
of the system. Components can also query the co-ordinating assistant
tracker to create linkages to specific services, and for specific global
statistics.
Microprocesses can also use the co-ordinating assistant tracker to
log/retrieve statistics/information. Co-ordinating assistant trackers
are designed to work in a singleton manner accessible via a local or
class interface.This singleton nature of the co-ordinatin assistant
tracker is not enforced.
Pydoc Style
Documentation
class coordinatingassistanttracker(__builtin__.object)
Methods defined here:
__init__(self, parent=None)
deRegisterService(self,
service)
- Services are run by components - these by definition die and need to
be de-registered
informationItemsLogged(self)
main(self)
registerService(self, service,
thecomponent, inbox)
- t.registerService('service',component,inbox)
- Registers that a component is willing to offer a service over a
specific inbox
retrieveService(self, name)
retrieveValue(self, name)
servicesRegistered(self)
- Returns list of names of registered services
trackValue(self, name,
value)
- Once we start tracking a value, we have it's value forever (for
now). Adding the same named value more than once causes a NamespaceClash
to capture problems between interacting components
updateValue(self, name,
value)
...
Testdoc
Documentation
__init__
- Called with a single argument results in it being the parent for the
tracker
- Called with no arguments should succeed.
- Trying to set a anything other than a coordinated assistant tracker
as the parent causes a BadParentTracker
exception
informationItemsLogged
- returns the names of pieces of information logged with this
tracker
registerService
- adding a duplicate service fails, even with same arguments
- adding a service but not to as a component fails - raises BadComponent assertion
- adding a service but to a bad/nonexistant inbox fails - raises BadInbox assertion
- adds the named component/inbox to the list of named registered
services
retrieveService
- Attempting to retrieve a non-tracked service results in KeyError exception being
thrown
- Retrieving a tracked service should return the component/inbox pair
we supplied under a specific name
deRegisterService
- allows a component to remove their service from being public
- deleting a non-existant service raises MultipleServiceDeletion
exception
trackValue
- Adding a value to be tracked twice raises NamespaceClash
- Adds the name/value pair to the set of info items logged
updateValue
- Updating a value not declared as tracked should raise AccessToUndeclaredTrackedVariable
- Updating a value should result in the value stored being
updated
retrieveValue
- Retrieving a tracked value should return the value we asked to be
tracked
- attempting to retrieve a value we're not tracking should raise AccessToUndeclaredTrackedVariable
Class methods defined here:
- getcat(cls) from __builtin__.type
Michael, December 2004