The indications package contains classes that implement the CM logging subsystem that encapsulates IPF.
The main indications class is {@link com.cognos.cm.indications.CMIndications}, and all indications eventually get funneled through {@link com.cognos.cm.indications.CMIndications#_logToIPF}. This class provides support for Audit and Trace indications, and has methods tailored to the various formats required by IPF. This class also contains methods for querying whether a specified category and level are enabled (frequent calls are to be avoided however, and such statuses should be held in {@link com.cognos.cm.indications.CMIndicationGlobals} in order to avoid the overhead of calling log4j.\
The {@link com.cognos.cm.indications.CMPerfIndcations} class handles IPF Perf indications. It holds an array of objects that define the perf indication categories used by CM, and methods that generate perf indications. Since these indications are used at various times in the code, much information about what CM is doing in each thread is kept in the {@link com.cognos.cm.server.CMExecutionContext} object for the thread.
In order to measure calls to various components outside CM, proxy objects are implemented: {@link com.cognos.cm.indications.CMAAAProxy} intercepts calls to CAM; {@link com.cognos.cm.indications.CMCacheProxy} and {@link com.cognos.cm.indications.CMCacheQueryInstanceProxy} intercept calls to the CM cache; and {@link com.cognos.cm.indications.CMStatementProxy} intercepts calls to the database.