Introduction

Reference Documents

[RD1]
Central Control System Development Standards;

Introspection Interface

Introspection interface instrospectionif is the interface that provides information on the running application and its offered commands, topics and its OLDB path. Its purpose is to facilitate clients to get information in a formal/authorative manner, since the application is the one that serves commands and publishes data.

This documentation provides an overview of the interface. When complex structures are to be transmitted, the selected method is to use JSON and a schema will be provided.

Interfaces

class introspectionif.Introspection

Introspection interface.

GetInterfaces(service) String

Requests the application to return the interface declaration for the service in particular.

Parameters:

service (String) – service name of interest. If empty, the method returns every available service in the application server instance.

Returns:

A JSON formatted string that carries pairs of service and its respective MAL ICD XML.

Return type:

String

Raises:

stdif::ExceptionErr – On error.

GetTopics(topic) String

Requests the application to return the topic (structure) declaration for the topic in particular.

Parameters:

topic (String) – topic name of interest. If empty, the method returns every available topic in the application server instance.

Returns:

A JSON formatted string that carries a dictionary of topic URIs and their respective MAL ICD XMLs.

Return type:

String

Raises:

stdif::ExceptionErr – On error.

GetOldbPrefix() String

Requests the application to return the common prefix to all its OLDB datapoints.

Returns:

A URI that is the prefix to all application OLDB datapoints.

Return type:

String

Raises:

stdif::ExceptionErr – On error.

JSON Schemas

GetInterfaces

The GetInterfaces() method returns a JSON formatted string. This JSON string follows the schema expressed here:

{
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "$id": "https://www.eso.org/~eltmgr/elt/stdif/getinterfaces.schema.json",
    "title": "GetInterfaces Reply",
    "description": "ELT Server App Request Reply to GetInterfaces containing requested services",
    "type" : "object",
    "additionalProperties": { "type": "string" }
}

An example of such response is given below:

{
    "zpb.rr://127.0.0.1:8501/StdCmds": "<?xml version=\"1.0\" ... </types>",
    "zpb.rr://127.0.0.1:8501/Introspection": "<?xml version=\"1.0\" ... </types>"
}