The metadataAPI is the LDAS custom Database Client used to interface with the LIGO Database server in the LDAS distributed computing environment. It will use an interpreted command language for control. It will provide for all database functions such as table creation, inserts, queries, etc.
The Metadata API is divided into two layers, the TCL layer and the C++ layer. The TCL layer is what the end-user "sees" -- they write code which the TCL layer executes. The C++ layer, on the other hand, is available only indirectly.
TCL provides a mechanism for extending the command-set by writing functions in C or C++. These functions are loaded into TCL as a shared object using the "package require" or "load" command. When this is done, the extended commands become available. The C++ layer consists of these extended commands and the memory space which they use to store and manipulate data.
In order to create C or C++ functions which TCL can understand, one must write them in a special format. In LDAS, this is handled by a program known as SWIG (Simplified Wrapper and Interface Generator). The SWIG program uses 1 or more SWIG interface files to create a set of C functions which TCL can understand. These functions are written to a source file (.c or .cc) which is then compiled into the shared object.
This document is divided into the following areas:
The metadata API creates objects in the C++ layer which need to be manipulated by TCL. In order to do so, each of these objects must have a unique label. The pointer value of the object in the C++ layer is used as the label. This value is converted by SWIG into an ascii representation of the pointer with the format:
_<font color="#3366FF">xxxxxxxx</font>_<font color="#3366FF">ObjectName</font>_p
where:
_555f0_dbEasy_p
1.5.4