Cauldron KTL base classes

The KTL API is defined in Cauldron by four abstract base classes, ClientService, ClientKeyword, DispatcherService and DispatcherKeyword. These base classes are used with a concrete backend implementation, and are available in Cauldron.ktl and Cauldron.DFW at runtime.

These classes are designed to provide a consistent API for KTL services and keywords, irrespective of the KTL backend. They require that various user-facing functions and private functions are implemented, and they specify which functions are not required by the Cauldron KTL API.

Note

Not all KTL API features are implemented in Cauldron, and not all KTL python API functions are available. It is relatively trivial to implement new python API functions (e.g. the procedural KTL interface) using the existing Cauldron modules. Implementing new API features is more difficult.

Reference/API

Cauldron.base.client Module

Implements the abstract-base Keyword and Service classes used for clients. This piece of Cauldron is a rough mock of ktl, the client side interface.

The actual implementation of client side features outside of the Keyword and Service classes is in the ktl module.

Classes

Keyword A client-side KTL keyword object.
Service A client-side KTL service object.
HistorySlice

Class Inheritance Diagram

Inheritance diagram of Cauldron.base.client.Keyword, Cauldron.base.client.Service, Cauldron.base.client.HistorySlice

Cauldron.base.dispatcher Module

Implements the abstract-base Keyword and Service classes used for dispatchers. This piece of Cauldron is a rough mock of DFW, the dispatcher side interface.

Classes

Keyword A dispatcher-based keyword, which should own its own values.
Service A dispatcher is a KTL service server-side.

Class Inheritance Diagram

Inheritance diagram of Cauldron.base.dispatcher.Keyword, Cauldron.base.dispatcher.Service