Previous section.

Application Instrumentation and Control (AIC) API, Version 1.0
Copyright © 1999 The Open Group

C Language Header File


<libaic.h>
/************************************************************/
/*                                                          */
/*                 AIC Library Header File                  */
/*                                                          */
/************************************************************/

#ifndef _LIBAIC_H_INCLUDE_
#define _LIBAIC_H_INCLUDE_

#define AIC_MATCH 1
#define AIC_NO_MATCH 0

#define AIC_TRUE 1
#define AIC_FALSE 0

#define AIC_MAX_APP_NAME_LENGTH 32
#define AIC_MAX_HOST_NAME_LENGTH 32

#ifndef _LOG_H_INCLUDE_
#define AIC_LOG_NONE      -1
#define AIC_LOG_FATAL      0
#define AIC_LOG_CRITICAL   1
#define AIC_LOG_SECVIOL    1
#define AIC_LOG_WARNING    2
#define AIC_LOG_INFO       3
#define AIC_LOG_DEBUG      4
#define AIC_LOG_DEBUG1     5
#define AIC_LOG_DEBUG2     6
#define AIC_LOG_DEBUG3     7

#define AIC_LOG_TO_CONSOLE_OFF 0
#define AIC_LOG_TO_CONSOLE_ON 1
#endif

#define AIC_MAXDEPTH 65000  // The maximum number of hierarchy 
                            // levels for matching purposes

/************************************************************/
/*                                                          */
/*                 Function Return Codes                    */
/*                                                          */
/************************************************************/

#define AIC_NOK                                   0  
    // General error code
#define AIC_OK                                    1  
    // Everything OK
#define AIC_NOT_FOUND                             2  
    // can't find the object whose location has been provided.
#define AIC_OBJECT_NOT_CREATED                    3
    // Couldn't create an object - probably run out of memory
#define AIC_NOT_SUPPORTED                         4
    // Functionality that is currently not supported
#define AIC_OBJ_TYPE_MISMATCH                     5
    // Trying the call a value set function on the wrong type of object    
#define AIC_THRESH_MISMATCH                       6
    // Trying to set the wrong type of threshold-type/threshold-value pair
#define AIC_THRESH_OBJECT_MISMATCH                7
    // Trying to set the wrong type of threshold for the object. 
       e.g. a long value for a dateAndTime object.
#define AIC_OBJ_LINK_TO_NOT_FOUND                 8
    // Creating a link object, can't find the one to link to
#define AIC_LINK_NOT_COMPLETED                    9
    // Created most of the link but not the final link to the other object
#define AIC_CANT_LINK_TO_LINK                    10
    // Can't link two link objects together
#define AIC_REFERENCE_COUNT_NOT_ZERO             11 
    // The object has existing links to it so can't be removed yet
#define AIC_CANT_UPDATE_REFERENCE_COUNT          12 
    // Can't update the reference count of the object being linked to
#define AIC_LOCATION_NULL                        13
    // The location name given is empty
#define AIC_EMPTY_OBJECT_PTR                     14
    // Trying to add a NULL point to a list of objects
#define AIC_EMPTY_LIST_PTR                       15
    // Trying to access an empty list pointer
#define AIC_CANT_ALLOCATE_MEMORY                 16
    // General failure to` allocate memory
#define AIC_MSGBUFFER_ADD_FAILED                 17
    // Failed to add requested data to message buffer
#define AIC_LONG_EXTRACT_FAILED                  18
    // Tried to extract a long from a message and failed
#define AIC_BUFF_CREATION_FAILED                 19
    // Failed to create a buffer for writing a message
#define AIC_EMPTY_QUEUE                          20
    // Empty queue encountered
#define AIC_QUEUE_ENT_CREATE_FAILED              21
    // Creation of a queue entry failed.
#define AIC_CANT_ADD_TO_QUEUE                    22
    // Can't add an entry into the queue
#define AIC_UKNOWN_OBJECT_TYPE                   23
    // Trying to prepare an unknown object type for sending
#define AIC_NULL_ATTRIBUTE_POINTER               24
    // Got an attribute pointer which is null
#define AIC_CANT_CREATE_NEW_LIST_OBJECT          25 
    // Trying to create an object from a message buffer, but can't
#define AIC_UNEXPECTED_FUNC_RES                  26
    // Unexpected function return type.
#define AIC_END_OF_LIST                          27
    // End of list reached
#define AIC_UNEXPECTED_ATTRIBUTE                 28
    // Something wrong with list of attributes that can be accessed 
       from an object
#define AIC_BADLY_FORMED_LOCATIONSTRING          29 
    // Something wrong with the supplied location in structure string
#define AIC_APPNAME_NOTFOUND                     30
    // Looking for an app name in a location string, but can't find it
#define AIC_CANT_INITIALISE_CAM                  31
    // Trying to initialise the CAM connection and failing
#define AIC_CANT_DEFINE_UNIQUE_NAME              32
    // Trying to define a unique name for an app (either cam or app 
       name) but can't
#define AIC_CAM_NAME_TOO_LONG                    33
    // Trying to generate a CAM Name but it was too long
#define AIC_CANT_STORE_NAME_MAPPING              34
    // Trying to make a name mapping, but failing
#define AIC_CANT_RETRIEVE_CAMNAME                35
    // Can't get an application name from the Daemon
#define AIC_FAILED_TO_INIT_CACHE                 36  
    // Couldn't initialise the cache for the daemon.
#define AIC_ATTEMPT_TO_ADD_NULL_MAPPING          37
    // Trying to add an empty mapping to the app/cam name mapping table
#define AIC_MAPPING_NOT_FOUND                    38
    // Can't find a mapping in the mapping table
#define AIC_DUPLICATE_OBJECT                     39
    // Tried to create a duplicate object in the object structure
#define AIC_SEC_VIOLATION_NON_DAEMON_MESSAGE     40
    // A process other than the daemon has sent a message to an app.
#define AIC_SECURITY_VIOLATION                   41
    // Attempted security violation in the daemon
#define AIC_HOST_NAME_TOO_LONG                   42
    // Trying to get short version of a fully qualified name which 
       is too long
#define AIC_THREAD_CREATE_FAILED                 43
    // Thread creation failed in library initialisation
#define AIC_STRING_TRUNCATED                     44
    // Copied string truncated because destination too small
#define AIC_STRING_SPACE_TOO_SMALL               45
    // Area of memory supplied to small for string.
#define AIC_NULL_POINTER_ARG                     46
    // Null pointer argument supplied to function
#define AIC_LIB_INITIALISED                      47
    // The call to LibStart has already been made.
#define AIC_LIB_NOTINITIALISED                   48
    // The library is not currently initialised
#define AIC_ENUMORD_OUTOF_RANGE                  49
    // The ordinal value of a supplied enum is outside of range
#define AIC_RETNAME_TIMEOUT                      50
    // Time out when trying to retrieve name from Daemon
#define AIC_EXPECTEDNAME_NOTREC                  51
    // A name request was expected, but something else was retrieved.
#define AIC_CANT_RETRIEVE_APPNAME                52
    // App name can't be retrieved
#define AIC_APPNAMELIST_TRUNC                    53
    // The application name list has been truncated
#define AIC_NO_APPNAMES                          54
    // There are no applications currently registered
#define AIC_FAILED_TO_WRITE_APPNAMES             55
    // Failed to write the list of app names to the buffer
#define AIC_NOHOST_NAME_AVAILABLE                56
    // Used when sending messages if no host name is available from 
       either the host parameter or the location in structure string
#define AIC_SET_FOR_DISCONNECTED_APP             57
    // Set request received for disconnected app
#define AIC_LINK_NAME_IS_NULL                    58
    // The link is unexpectedly empty.
#define AIC_FAILED_TO_OPEN_PROC_FILE_UX          59
    // Can't open the proc file system to read process data (UNIX)
#define AIC_CANT_ACCESS_PROC_DATA_UX             60
    // Can't access the process data from the the proc file system (UNIX)
#define AIC_CANT_ACCESS_UNAME_INFO_UX            61
    // Can't gain access to uname information to find host name
#define AIC_CANT_SET_DATEANDTIME                 62
    // Can't set the date and time value for processdata
#define AIC_CANT_SET_COMMANDLINE                 63
    // Can't set the command line value for processdata
#define AIC_CANT_SET_PROCESSNAME                 64
    // Can't set the process name value for processdata
#define AIC_CANT_SET_PROCESSID                   65
    // Can't set the process id value for processdata
#define AIC_CANT_SET_USERID                      66
    // Can't set the user id value for processdata
#define AIC_CANT_SET_APPNAME                     67
    // Can't set the application name value for processdata
#define AIC_CANT_SET_AICVERSION                  68
    // Can't set the AIC version value for process data 
#define AIC_CANT_SET_HOSTNAME                    69
    // Can't set the hostname value for machine data
#define AIC_CANT_SET_OSPLATFORM                  70
    // Can't set the OS Plaform for machine data
#define AIC_CANT_EXTRACT_LAST_TOKEN              71
    // Can't extract the last token of a location name
#define AIC_CANT_GET_NEXT_OBJECT                 72
    // Can't find the next object in a list of objects
#define AIC_ATTR_NOT_ENUMERATED                  73
    // The attribute requested is not an enumerated one
#defineAIC_INSUFFICIENT_SPACE_FOR_VALUE          74 
    // There is insufficient space for the value to be returned
#define AIC_INSUFFICIENT_SPACE_FOR_THRESHOLD     75 
    // There is insufficient space available for the threshold value 
       to be returned
#define AIC_POLLING_TERMINATED                   76
    // Polling terminated by closing of library.
#define AIC_CANT_FIND_LINKED_OBJECT              77
    // Can't the object this link refers to
#define AIC_EMPTY_APP_NAME                       78
    // Application name is empty
#define AIC_TIMEOUT                              79
    // Timeout on request to remote application
#define AIC_CANT_OPEN_DAEMON_HOST_FILE           80
    // Can't open the supplied daemon host name file
#define AIC_HOST_FILENAME_TOO_LONG               81
    // The name of the Daemons host file is too long for internal buffers
#define AIC_CORE_NAME_TOO_LONG                   82
    // The name of the CORE is too long for internal buffers
#define AIC_APP_NAME_TOO_LONG                    83
    // The application name is too long.
#define AIC_NOT_STARTED_WITH_ALPHA               84
    // The name does not start with an Alphabetic character
#define AIC_CONTAINS_ILLEGAL_CHARACTERS          85
    // The name contains illegal characters (something other than 
       alpha, numeric _ or -)
#define AIC_EMPTY_HOST_NAME                      86
    // Host name is empty
#define AIC_EMPTY_GATEWAY_NAME                   87
    // The gateway name supplied is empty
#define AIC_GATEWAY_REGISTERED                   88
    // The gateway has previously been registered for this Daemon
#define AIC_TOO_MANY_GATEWAYS_REGISTERED         89 
    // The number of gateways registered has exceedd the allowed number
#define AIC_DAEMON_REFERENCE_NOT_FOUND           90
    // The reference to the daemon not found in the connections table
#define AIC_EMPTY_NAME                           91
    // A name supplied is empty
#define AIC_NO_GATEWAYS_REGISTERED               92
    // No gateways are currently registered with this daemon
#define AIC_IN_STRUC_NAME_SHORT                  93
    // The location in structure name is too short to be a sensible name
#define AIC_NEGATIVE_DATA_SIZE_SUPPLIED          94
    // Bad length parameter for space
#define AIC_CORE_OBJECT_CREATION_FAILED          95
    // Creation of the object in the CORE has failed
#define AIC_CORE_OBJECT_DELETION_FAILED          96
    // Deletion of the object from the CORE has failed
#define AIC_CORE_STATE_CHANGE_FAILED             97
    // State change for CORE object has failed
#define AIC_G_OBJECT_EXISTS_IN_CORE              98
    // The object already exists in the CORE
#define AIC_G_TEMPORARY_OBJECT_IN_CORE           99
    // The object is already in the CORE but as a temporary object.
#define AIC_G_TOO_FEW_TOKENS_IN_NAME            100 
    // The name has too few tokens to have host, app, and root object in it
#define AIC_G_NO_APP_HOST_IN_CORE               101
    // The application host has not been found in the CORE.
#define AIC_G_FAILED_TO_ADD_INC                 102
    // Can't create an inclusion for an object (to put it in the 
       hierarchy in World View
#define AIC_G_INCLUSION_COMPLETE                103 
    // Finished the inclusion tree
#define AIC_G_CANT_CREATE_CORE_OBJECT           104
    // Can't create the requested object in the CORE
#define AIC_G_NO_CHILDREN_FOUND                 105 
    // No children found for a temporary object
#define AIC_G_NO_PARENT_FOUND                   106 
    // No parent object found for a temporary object
#define AIC_DO_ACTION_ZERO_DATA_LENGTH          107 
    // Zero data length for a do action
#define AIC_NOT_SETTABLE_WORM_SEMANTICS         108
    // This object has write once, read many semantics and can't be changed.
#define AIC_NOT_DELETABLE_WORM_SEMANTICS        109 
    // Can't delete this object because it has WORM semantics
#define AIC_PREVIOUSLY_SET                      110 
    // A polling running now flag is being tested but has previously been set
#define AIC_DAEMON_ALREADY_CONNECTED_TO_CAM     111 
    // There is already a daemon connected and running
#define AIC_ZERO_LENGTH_STRING_VALUE            112
    // String value has zero length
#define AIC_POLLING_INTERVAL_TOO_SHORT          113
    // The polling interval supplied is too short
#define AIC_CONFIG_NOT_OPENED                   114 
    // Could not open the config file for the security plug-in
#define AIC_CONFIG_READ_ERROR                   115 
    // Error reading the config file
#define AIC_SECURITY_LOG_NOT_OPENED             116 
    // Security log for the securiy plug-in could not be opened
#define AIC_GROUP_COUNT_ERROR                   117 
    // Group counts did not match the groups added from the config file 
       or no group where added
#define AIC_ACCESS_DENIED                       118
    // Access denied due to authorisation or authentication failure
#define AIC_PASSWORD_EXPIRED                    119
    // The users password has expired
#define AIC_INVALID_USER                        120
    // The user id is not known
#define AIC_USER_NOT_INGROUP                    121
    // The user is not in the specified user group
#define AIC_HIGHER_LEVEL_REQUIRED               122
    // The user is authenticated but does not have sufficiently 
       high permissions
#define AIC_INVALID_ENCRYPTION_LEVEL            123
    // The encryption method on user credentials is incompatible 
       with the local version
#define AIC_APP_DISCONNECTED                    124
    // The application with the requested name has disconnected previously.
#define AIC_CAM_NAME_MISSING_FOR_APP            125
    // The cam name in the application mapping is missing for some reason.
#define AIC_CAM_SEND_FAILED                     126
    // CAM send of message failed
#define AIC_EMPTY_LIST_RESULT                   127
    // May not be an error as such - there just may not be anything found
#define AIC_NOT_FOUND_IN_DAEMON                 128
    // A set request has been received for an object not currently 
       in the Daemon cache
#define AIC_EVENT_MESSAGE_MANDATORY             129
    // A raise event request does not have a message associated with it.
#define AIC_BAD_PRAM                            130
    // A Bad paramater was pased to the function.
#define AIC_SETTING_UPDATED                     131
    // Name existed in list, so setting where updated not added
#define AIC_CANT_SET_WORKING_DIR                132
    // Can't set the working directory parameter for process data
#define AIC_CANT_SET_PATH                       133
    // Can't set the library path of process data
#define AIC_CANT_SET_IP_ADDRESS                 134
    // Can't set the ip address for the machine 
#define AIC_CANT_OPEN_CACHE_FILE                135
    // Can't open the requested cache file
#define AIC_CANT_SET_USER_NAME                  136
    // Can't set user name in the process data
#define AIC_CORE_VALUE_CHANGE_FAILED            137
    // A request to change the value of an object in the CORE has failed
#define AIC_MULTIPLE_HOSTS_FOUND                138
    // Trying to find the correct single host in the CORE, but found 
       more than 1
#define AIC_G_CANT_GET_IP_ADDRESS               139
    // Can't get the IP address of the host
#define AIC_G_OBJECT_HAS_CHILDREN               140
    // An object in the DSM that we are trying to delete still has children
#define AIC_G_CANT_CONNECT_TO_ORB               141
    // Can't make a connection to the ORB, and hence the DSM
#define AIC_G_DSM_OBJECT_EXISTS                 142
    // An attempt has been made to create a DSM object that already exists
#define AIC_CANT_OPEN_AICD_REC_FILE             143
    // Attempt to open amid recovery file has failed
#define AIC_CANT_CLOSE_AICD_REC_FILE            144
    // Attempt to close amid recovery file has failed
#define AIC_REC_FILE_CORRUPT                    145
    // The recovery file of amid is corrupt - check number incorrect
#define AIC_TIME_OUT_OF_RANGE                   146
#define AIC_MULTI_CHUNK_HDR_CORRUPT             147
    // The header of a multi-chunk CAM message is corrupt, damage 
       in transit or attempted security breach
#define AIC_CANT_CREATE_MESS_BUFF               148
    // Cannot create buffer for storage of message chunks
#define AIC_CANT_ADD_FRAG_ID                    149
    // Can't add the id of a message fragment to the message
#define AIC_CANT_ADD_TOTAL_FRAGS                150
    // Can't add the total number of fragments in this message to 
       the message
#define AIC_CANT_ADD_BYTES_IN_CHUNK             151
    // Can't add the total number of bytes in this message fragment
#define AIC_CANT_ADD_MSG_ID                     152
    // Can't add the id of the message to the message
#define AIC_CANT_CREATE_HEADER                  153
    // Can't create message header for a CAM message
#define AIC_CANT_EXTRACT_MSG_ID                 154
    // Can't extract the id of a message from the message
#define AIC_CANT_EXTRACT_FRAG_ID                155
    // Can't extract the id of a fragment from the message
#define AIC_CANT_EXTRACT_TOTAL_FRAGS            156
    // Can't extract the total number of fragments from the message
#define AIC_CANT_EXTRACT_BYTES_IN_CHUNK         157
    // Can't extract the total number of bytes in the chunk
#define AIC_MSG_COMPLETE                        158
    // End of message marker
#define AIC_UNEXPECTED_NULL_FRAGMENT_LIST       159 
    // Fragment list is empty when it should not be
#define AIC_G_LABEL_UPDATE_FAILED               160
    // Trying to update the label with the new value change has failed
#define AIC_MESSAGE_TOO_SHORT                   161
    // The received message is too short to be an AIC message
#define AIC_MESSAGE_BAD_FORMAT                  162
    // The message has a bad format. At a minimum it should have an 
       integer/long followed by a space
#define AIC_VALUE_OVERFLOW                      163
    // Data type overflow
 
/************************************************************/
/*                                                          */
/*                         Type Defs                        */
/*                                                          */
/************************************************************/

typedef char *AIC_String;

typedef long AIC_Long;

typedef double AIC_Double;

typedef enum _AIC_Status 
{
    unknownStatus, 
    normal, 
    warning, 
    critical, 
    down 
} AIC_Status;

typedef enum _AIC_SecurityLevel 
{
    level1 = 1, 
    level2 = 2, 
    level3 = 3, 
    level4 = 4, 
    level5 = 5, 
    level6 = 6, 
    denied = 100, 
    unknownSecurity = 101
} AIC_SecurityLevel;

typedef enum _AIC_Visibility 
{
    local, 
    DSM, 
    CORE, 
    unknownVisibility 
} AIC_Visibility;

typedef enum _AIC_ObjectType 
{
    AICBusLong, 
    AICBusDouble, 
    AICBusDateAndTime, 
    AICBusVarChar, 
    AICLinkObject, 
    AICBusUnknown, 
    AICBusApplication 
} AIC_ObjectType;

typedef enum _AIC_ThresholdType
{
    oneArgThld, 
    twoArgThld, 
    threeArgThld, 
    fourArgThld, 
    unknownThreshold 
} AIC_ThresholdType;

typedef enum _AIC_AutomaticName 
{
    fixed, 
    generated
} AIC_AutomaticName;

typedef enum _AIC_OpenType 
{
    mainProgram, 
    Library
} AIC_OpenType;

typedef enum _AIC_EventDestination 
{
    ALERT, 
    LOGONLY
} AIC_EventDestination;

typedef enum _AIC_AttributeType 
{
    locationInStructureA, 
    hashReferenceA, 
    objectTypeA, 
    statusA, 
    valueA,
    lastUpdatedA, 
    secDoActionA, 
    secSetA, 
    thresholdValueA1,   
    thresholdValueA2, 
    thresholdValueA3, 
    thresholdValueA4,
    thresholdFunctionA, 
    objectVisibilityA, 
    doActionA, 
    nextObjectA, 
    unknownA, 
    pollingFunctionA,
    linkedObjectA, 
    referenceCountA, 
    WORMFlagA, 
    pollingNowA, 
    thldDataA,
    lastAttributeA
} AIC_AttributeType;

#define AIC_BYTE signed char

#define NULLYEAR    (short)9999        /* "Null" year value   */
#define NULLMONTH   (AIC_BYTE)1        /* "Null" month value  */
#define NULLDAY     (AIC_BYTE)1        /* "Null" day value    */
#define NULLHOUR    (AIC_BYTE)0        /* "Null" hour value   */
#define NULLMIN     (AIC_BYTE)0        /* "Null" minute value */
#define NULLSEC     (AIC_BYTE)0        /* "Null" second value */

#define ONE_LESS_THAN_TWO    -1 
#define ONE_EQUALS_TWO        0
#define ONE_GREATER_THAN_TWO  1

//- Data type definitions
typedef struct _AIC_DateAndTime  // System date/time
{
   short    sYear;    // Year with Century (1 to 32767)(see note)
   AIC_BYTE bMonth;   // month   (1 to 12)
   AIC_BYTE bDay;     // day     (1 to 31)
   AIC_BYTE bHour;    // hour   (00 to 23)
   AIC_BYTE bMin;     // min    (00 to 59)
   AIC_BYTE bSec;     // second (00 to 59)
}
AIC_DateAndTime, *AIC_DateAndTimePtr;

//- NOTE: Year limit of 32767, is the limit of a short

typedef void * AIC_ListPtr;
typedef void * AIC_ThldDataPtr;
typedef void * AIC_ObjectPtr;
typedef void * AIC_VoidPtr;
typedef int AIC_Bool;
typedef void (*AIC_ThresholdFunction)
    (
        AIC_String szLocation_in_structure
    );

typedef void (*AIC_DoActionFunc)
    (
        AIC_String szLocation_in_structure, 
        AIC_String pUserData,
        int iUserDataLength  
    );

typedef void (*AIC_PollSetCallback)
    (
        AIC_String szLocation_in_structure 
    );

#ifdef _CPLUSPLUS_
extern "C" {
#endif

/************************************************************/
/*                                                          */
/*          Application Side Function Prototypes            */
/*                                                          */
/************************************************************/

extern int AICAL_LibStart (
    AIC_String szRequestedName,
    AIC_AutomaticName eApplicationNaming,
    AIC_OpenType eOpenedBy,
    AIC_String szDerivedName,
    int iDerivedNameSize
    );

extern int AICAL_Create (
    AIC_ObjectType eObjectType,
    AIC_String szLocation_in_structure
    );

extern int AICAL_SetValueLong (
    AIC_String szLocation_in_structure, 
    AIC_Long lValue
    );

extern int AICAL_SetValueVarChar (
    AIC_String szLocation_in_structure,  
    AIC_String szValue
    );

extern int AICAL_SetSemantics (
    AIC_String szLocation_in_structure,  
    AIC_String szValue
    );

extern int AICAL_SetValueDouble (
    AIC_String szLocation_in_structure,  
    AIC_Double dValue
    );

extern int AICAL_SetValueDateAndTime (
    AIC_String szLocation_in_structure,
    AIC_DateAndTime tValue
    );

extern int AICAL_SetStatus (
    AIC_String szLocation_in_structure, 
    AIC_Status eStatusValue
    );

extern int AICAL_SetVisibility (
    AIC_String szLocation_in_structure, 
    AIC_Visibility eVisibility
    );

extern int AICAL_QueryObjectType (
    AIC_String szLocation_in_structure, 
    AIC_ObjectType *peDstObjectType
    );

extern int AICAL_GetValueVarChar (
    AIC_String szLocation_in_structure, 
    AIC_String szDstBuf, 
    int iDstBufSize
    );

extern int AICAL_GetSemantics (
    AIC_String szLocation_in_structure, 
    AIC_String szDstBuf, 
    int iDstBufSize
    );

extern int AICAL_GetValueLong (
    AIC_String szLocation_in_structure, 
    AIC_Long *plDstValue 
    );

extern int AICAL_GetValueDateAndTime (
    AIC_String szLocation_in_structure,
    AIC_DateAndTime *ptDstDateTime
    );

extern int AICAL_GetValueDouble (
    AIC_String szLocation_in_structure,
    AIC_Double *pdDstValue
    );

extern int AICAL_GetThresholdDateAndTime (
    AIC_String szLocation_in_structure,
    AIC_DateAndTime *peDstThldDateTime,
    AIC_ThresholdType eWhichThreshold
    );

extern int AICAL_GetThresholdDouble (
    AIC_String szLocation_in_structure, 
    AIC_Double *pdDstThldValue,
    AIC_ThresholdType eWhichThreshold
    );

extern int AICAL_GetThresholdLong (
    AIC_String szLocation_in_structure,
    AIC_Long *plDstThldValue,
    AIC_ThresholdType eWhichThreshold
    );

extern int AICAL_GetStatus (
    AIC_String szLocation_in_structure,
    AIC_Status *peDstStatus
    );

extern int AICAL_GetSecuritySet (
    AIC_String szLocation_in_structure,
    AIC_SecurityLevel *peDstSecLevel
    );

extern int AICAL_GetSecurityGet (
    AIC_String szLocation_in_structure,
    AIC_SecurityLevel *peDstSecLevel
    );

extern int AICAL_GetVisibility (
    AIC_String szLocation_in_structure,
    AIC_Visibility *peDstVisibility
    );

extern int AICAL_DeleteObject (
    AIC_String szLocation_in_structure
    ); 

extern int AICAL_RegPollSetValue (
    AIC_String szLocation_in_structure,
    AIC_PollSetCallback pfPollSetCallback,
    AIC_String szDescription
    );

extern int AICAL_RegThresholdFunction (
    AIC_String szLocation_in_structure,
    AIC_ThresholdFunction pfThresholdFunction,
    AIC_String szDescription
    );

extern int AICAL_RegDoAction (
    AIC_String szLocation_in_structure, 
    AIC_DoActionFunc pfDoAction,
    AIC_String szDescription
    );

extern int AICAL_DoAction (
    AIC_String szLocation_in_structure,
    AIC_String pszData, 
    AIC_Long lDataLength
    );

extern int AICAL_SetThreshSemantics (
    AIC_String szLocation_in_structure, 
    AIC_String szValue
    );

extern int AICAL_GetThreshSemantics (
    AIC_String szLocation_in_structure, 
    AIC_String szDstBuf, 
    int iDstBufSize
    );

extern int AICAL_GetRegFunctions (
    AIC_String szLocation_in_structure, 
    AIC_String szPollingBuf,  
    int iPollBufSize,
    AIC_String szThresholdBuf,
    int iThreshBufSize,
    AIC_String szDoActionBuf, 
    int iActionBufSize
    );

extern int AICAL_SetThresholdLong (
    AIC_String szLocation_in_structure,
    AIC_Long lValue,
    AIC_ThresholdType eWhichThreshold
    );

extern int AICAL_SetThresholdDateAndTime (
    AIC_String szLocation_in_structure, 
    AIC_DateAndTime tValue,
    AIC_ThresholdType eWhichThreshold
    );

extern int AICAL_SetThresholdDouble (
    AIC_String szLocation_in_structure,
    AIC_Double dValue,
    AIC_ThresholdType eWhichThreshold
    );

extern int AICAL_SetSecuritySet (
    AIC_String szLocation_in_structure,
    AIC_SecurityLevel eSecurityLevel
    );

extern int AICAL_SetSecurityGet (
    AIC_String szLocation_in_structure,
    AIC_SecurityLevel eSecurityLevel
    );

extern int AICAL_SetSecurityDoAction (
    AIC_String szLocation_in_structure,
    AIC_SecurityLevel eSecurityLevel
    );

extern int AICAL_GetSecurityDoAction (
    AIC_String szLocation_in_structure,
    AIC_SecurityLevel *peDstSecLevel
    );

extern int AICAL_List (
    AIC_String szStartLocation,
    AIC_ListPtr *ppDstListPtr
    );

extern int AICAL_Traverse (
    AIC_String szStartLocation, 
    int Levels,
    AIC_ListPtr *ppDstListPtr
    );

extern int AICAL_Dump (
    AIC_String  szStartLocation, 
    AIC_ListPtr *ppDstListPtr
    );

extern int AICAL_Close (
    AIC_OpenType eClosedBy
    );

extern int AICAL_RaiseEvent (
    AIC_String szMessage,
    AIC_String szSourceDetail, 
    AIC_String szCategory, 
    AIC_String szEventId, 
    AIC_EventDestination eDst,
    int iSeverity
    );

extern int AICAL_SetPollingTime (
    AIC_Long lPollingTime
    );

/************************************************************/
/*                                                          */
/*        Function Prototypes For Client Libraries          */
/*                                                          */
/************************************************************/

extern int AICCL_SetReceiveTimeOut (
    int iNewTimeInSeconds
    );

extern int AICCL_Close();

extern int AICCL_SetValueLong (
    AIC_String szLocation_in_structure,
    AIC_Long lValue
    );

extern int AICCL_SetValueVarChar (
    AIC_String szLocation_in_structure,
    AIC_String szValue
    );

extern int AICCL_SetValueDouble (
    AIC_String szLocation_in_structure,  
    AIC_Double dValue
    );

extern int AICCL_SetValueDateAndTime (
    AIC_String  szLocation_in_structure,
    AIC_DateAndTime tValue
    );

extern int AICCL_SetStatus (
    AIC_String szLocation_in_structure, 
    AIC_Status eStatusValue
    );

extern int AICCL_SetVisibility (
    AIC_String szLocation_in_structure, 
    AIC_Visibility eVisibility
    );

extern int AICCL_SetUserCredentials (
    AIC_String szName, 
    AIC_String szGroup,
    AIC_String szPassword
    );

extern int AICCL_SetThresholdLong (
    AIC_String szLocation_in_structure,
    AIC_Long lValue,
    AIC_ThresholdType eWhichThreshold
    );

extern int AICCL_SetThresholdDateAndTime (
    AIC_String szLocation_in_structure, 
    AIC_DateAndTime tValue,
    AIC_ThresholdType eWhichThreshold
    );

extern int AICCL_SetThresholdDouble (
    AIC_String szLocation_in_structure,
    AIC_Double dValue,
    AIC_ThresholdType eWhichThreshold
    );

extern int AICCL_SetSecuritySet (
    AIC_String szLocation_in_structure, 
    AIC_SecurityLevel eSecurityLevel
    );

extern int AICCL_SetSecurityGet (
    AIC_String szLocation_in_structure, 
    AIC_SecurityLevel eSecurityLevel
    );

extern int AICCL_SetSecurityDoAction (
    AIC_String szLocation_in_structure, 
    AIC_SecurityLevel eSecurityLevel
    );

extern int AICCL_GetSecurityDoAction (
    AIC_String szLocation_in_structure,
    AIC_SecurityLevel *peDstSecLevel
    );

extern int AICCL_QueryObjectType (
    AIC_String szLocation_in_structure,
    AIC_ObjectType *peObjectType
    );

extern int AICCL_GetValueVarChar (
    AIC_String szLocation_in_structure,
    AIC_String szDstBuf,
    int iDstBufSize
    );

extern int AICCL_GetSemantics (
    AIC_String szLocation_in_structure,
    AIC_String szDstBuf,
    int iDstBufSize
    );

extern int AICCL_GetValueLong (
    AIC_String szLocation_in_structure,
    AIC_Long *plDstValue
    );

extern int AICCL_GetValueDateAndTime (
    AIC_String szLocation_in_structure,
    AIC_DateAndTime *ptDstDateTim
    );

extern int AICCL_GetValueDouble (
    AIC_String szLocation_in_structure, 
    AIC_Double *pdDstValue
    );

extern int AICCL_GetStatus (
    AIC_String szLocation_in_structure, 
    AIC_Status *peDstStatus
    );

extern int AICCL_GetSecuritySet (
    AIC_String szLocation_in_structure, 
    AIC_SecurityLevel *peDstSecLevel
    );

extern int AICCL_GetSecurityGet (
    AIC_String szLocation_in_structure, 
    AIC_SecurityLevel *peDstSecLevel
    );

extern int AICCL_DoAction ( (
    AIC_String szLocation_in_structure,
    AIC_String pszData,
    AIC_Long lDataLength
    );

extern int AICCL_GetVisibility (
    AIC_String szLocation_in_structure, 
    AIC_Visibility *peDstVisibility
    );

extern int AICCL_GetThreshSemantics  (
    AIC_String szLocation_in_structure,
    AIC_String szDstBuf,
    int iDstBufSize
    );

extern int AICCL_GetThresholdLong (
    AIC_String szLocation_in_structure, 
    AIC_Long *lValue,
    AIC_ThresholdType eWhichThreshold
    );

extern int AICCL_GetThresholdDouble (
    AIC_String szLocation_in_structure, 
    AIC_Double *dValue,
    AIC_ThresholdType eWhichThreshold
    );

extern int AICCL_GetThresholdDateAndTime (
    AIC_String szLocation_in_structure, 
    AIC_DateAndTime *sValue, 
    AIC_ThresholdType eWhichThreshold
    );

extern int AICCL_GetRegFunctions  (
    AIC_String szLocation_in_structure, 
    AIC_String szPollingBuf,   
    int iPollBufSize,
    AIC_String szThresholdBuf, 
    int iThreshBufSize,
    AIC_String szDoActionBuf,  
    int iActionBufSize
    );

extern int AICCL_GetAppNames (
    AIC_String szHostName,
    AIC_String szDstBuf, 
    int iDstBufSize
    );

extern int AICCL_List (
    AIC_String szLocation_in_structure,
    AIC_ListPtr *ppDstListPtr
    );

extern int AICCL_Traverse (
    AIC_String  szLocation_in_structure,
    int iLevels, 
    AIC_ListPtr *ppDstListPtr
    );

extern int AICCL_Dump (
    AIC_String  szLocation_in_structure,
    AIC_ListPtr *ppDstListPtr
    );

extern int AICCL_ChangeDaemonLogging (
    AIC_String szHostName,
    AIC_String pszFileName,
    int iLevel, 
    int iToScreen
    );

extern int AICCL_DaemonShutdown (
    AIC_String szHostName
    );

extern int AICCL_RequestDaemonStatistics (
    AIC_String szHostName,
    char *szDstBuf,
    int iDstBufSize
    );

extern int AICCL_DaemonStatisticsReset (
    AIC_String szHostName
    );

extern int AICCL_FlushAppCacheToFile (
    AIC_String szHostName,
    AIC_String pszAppName,
    AIC_String pszFileName
    );

extern int AICCL_GetAppInfo (
    AIC_String szHostName,
    AIC_String szDstBuf,
    int iDstBufSize
    );

/************************************************************/
/*                                                          */
/*                  Functions Prototypes                    */
/*       For Both Application and Client Libraries          */
/*                                                          */
/************************************************************/

extern int AIC_FreeMemory (
    AIC_ListPtr pList
    );

extern int AIC_GetNextObject (
    AIC_ListPtr pList, 
    AIC_Bool bFirstCall,
    AIC_ObjectPtr *pObjectPtr
    );

extern int AIC_GetBusinessLongV (
    AIC_ObjectPtr pObjectPtr,
    AIC_Long *plDstValue
    );

extern int AIC_GetBusinessLongT (
    AIC_ObjectPtr pObjectPtr,
    AIC_Long *plDstValue,
    AIC_ThresholdType eWhichThreshold
    );

extern int AIC_GetLocationInStructure (
    AIC_ObjectPtr pObjectPtr,
    AIC_String szDstBuf,
    int iDstBufSize
    );

extern int AIC_GetBusinessVarChar (
    AIC_ObjectPtr pObjectPtr,
    AIC_String szDstBuf,
    int iDstBufSize
    );

extern int AIC_GetBusinessDoubleV (
    AIC_ObjectPtr pObjectPtr,
    AIC_Double *pdDstValue
    );

extern int AIC_GetBusinessDoubleT (
    AIC_ObjectPtr pObjectPtr, 
    AIC_Double *pdDstValue,
    AIC_ThresholdType eWhichThreshold
    );

extern int AIC_GetBusinessDateAndTimeV (
    AIC_ObjectPtr pObjectPtr, 
    AIC_DateAndTime *ptDstDateTime
    );

extern int AIC_GetBusinessDateAndTimeT (
    AIC_ObjectPtr pObjectPtr,
    AIC_DateAndTime *ptDstDateTime,
    AIC_ThresholdType eWhichThreshold
    );

extern int AIC_GetEnumeratedValue (
    AIC_ObjectPtr pObjectPtr,
    AIC_Long *peDstEnum,
    AIC_AttributeType eEnum
    );

extern int AIC_GetAllAttributes  (
    AIC_ObjectPtrpObjectPtr,
    AIC_VoidPtr pDstValue, 
    int iDstBufSizeValue,
    AIC_String szDstBufLoc, 
    int iDstBufSizeLoc,
    AIC_VoidPtr pDstThreshold1, 
    int iDstBufSizeThreshold1,
    AIC_VoidPtr pDstThreshold2, 
    int iDstBufSizeThreshold2,
    AIC_VoidPtr pDstThreshold3, 
    int iDstBufSizeThreshold3,
    AIC_VoidPtr pDstThreshold4, 
    int iDstBufSizeThreshold4,
    AIC_Status *peStatus,
    AIC_ObjectType *peObjectType,
    AIC_Visibility *peDstVisibility,
    AIC_SecurityLevel *peDstSecSetLevel,
    AIC_SecurityLevel *peDstSecDoActionLevel,
    AIC_SecurityLevel *peDstSecGetLevel,
    int iDstBufSizeSemantics,       
    AIC_String szDstBufSemantics,
    int iDstBufSizeThreshSemantics, 
    AIC_String szDstBufThreshSemantics
    );

extern int AIC_GetRegFunctions  (
    AIC_ObjectPtr *pObjectPtr,
    AIC_String szPollingBuf,  
    int iPollBufSize,
    AIC_String szThresholdBuf,
    int iThreshBufSize,
    AIC_String szDoActionBuf, 
    int iActionBufSize
    );

extern void AIC_SetLogFileName (
    char *pszLogFileName
    );

extern void AIC_SetLevel (
    int level
    );

extern void AIC_ToScreen (
    short sFlag
    );

extern int AIC_GetDateTime (
    AIC_DateAndTimePtr pDateTimeStmp
    );

extern int AIC_SetTimeStmp (
    AIC_DateAndTimePtr pDateTimeStmp,
    short sYear, 
    AIC_BYTE bMonth, 
    AIC_BYTE bDay,
    AIC_BYTE bHour,
    AIC_BYTE bMinute,
    AIC_BYTE bSeconds
    );

extern int AIC_SetTimeStmpNull (
    AIC_DateAndTimePtr pDateTimeStmp
    );

extern int AIC_IsTimeStmpNull (
    AIC_DateAndTimePtr pDateTimeStmp
    );

extern int AIC_TimeStmpCmp (
    AIC_DateAndTimePtr pDateTimeStmp1,
    AIC_DateAndTimePtr pDateTimeStmp2,
    double *pdDeltaSeconds
    );

extern int AIC_ChgTimeStmp (
    AIC_DateAndTimePtr pDateTimeStmp,
    double dDeltaSec
    );

extern int AIC_TimeStmpToStr (
    AIC_DateAndTimePtr pDateTimeStmp,
    char * pszDst,
    long lDstLength
    );

extern int AIC_StrToTimeStmp (
    char * pszDateTimeString,  
    AIC_DateAndTimePtr pDateTimeStmp
    );

#ifdef _CPLUSPLUS_
}
#endif

#endif



Why not acquire a nicely bound hard copy?
Click here to return to the publication details or order a copy of this publication.

Contents Next section Index