
OA&M API for Linux Programming Guide — August 2005 19
4
4.Application Development 
GuidelinesThis chapter provides information about developing applications using the OA&M API. It includes 
the following sections:
•General Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
•Designing CT Bus Clocking Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
•Designing High Availability into Applications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.1 General Guidelines
The OA&M API contains four System Component classes:
•CCTDomain
•ICTNode
•ICTBoard
•ICTClockAgent
When an object is created from any one of these classes, the class member functions can be 
invoked to provide information about the created object. However, classes in the OA&M API are 
arranged in a hierarchy as shown in Figure1, “OA&M API Classes”, on page 10. Only 
CCTDomain objects can be directly instantiated. You must perform the following procedure to 
instantiate System Component objects in the OA&M API:
1. Use the CCTDomain::CCTDomain( ) class constructor to instantiate an instance of the 
CCTDomain class.
2. Use the CCTDomain::GetNode( ) function to get a pointer to an instance of the ICTNode 
class. The application is responsible for freeing the memory that is allocated for the pointer to 
the ICTNode object.
3. Use the ICTNode::GetAllInstalledBoards( ) function to get a pointer to a C++ Standard 
Template Library (STL) list of pointers to ICTBoard objects. The application is responsible for 
freeing the memory that is allocated for the list of pointers to ICTBoard objects.
4. Walk the returned board list and use the ICTBoard::GetClockingAgents( ) function to get a 
pointer to an STL list of pointers to ICTClockAgent objects. The application is responsible for 
freeing the memory that is allocated for the list of pointers to ICTClockAgent objects.
You can then use any of the following functions to get/set the TDM bus information of any one of 
the ICTClockAgent objects in the returned STL list:
•ICTClockAgent::GetTDMBusCapabilities() 
•ICTClockAgent::GetTDMBusConfiguration( )