HAM API

Updated: May 06, 2022

The basic mechanism to talk to HAM is to use its API. This API is implemented as a library that you can link against. The library is thread-safe as well as cancellation-safe.

To control exactly what/how you're monitoring, the HAM API provides a collection of functions, including:

Function Description
ham_action_control() Perform control operations on an action object.
ham_action_execute() Add an execute action to a condition.
ham_action_fail_execute() Add to an action an execute action that will be executed if the corresponding action fails.
ham_action_fail_log() Insert a log message into the activity log.
ham_action_fail_notify_pulse() Add to an action a notify pulse action that will be executed if the corresponding action fails.
ham_action_fail_notify_pulse_node() Add to an action a node-specific notify pulse action that will be executed if the corresponding action fails.
ham_action_fail_notify_signal() Add to an action a notify signal action that will be executed if the corresponding action fails.
ham_action_fail_notify_signal_node() Add to an action a node-specific notify signal action that will be executed if the corresponding action fails.
ham_action_fail_waitfor() Add to an action a waitfor action that will be executed if the corresponding action fails.
ham_action_handle() Get a handle to an action in a condition in an entity.
ham_action_handle_node() Get a handle to an action in a condition in an entity, using a nodename.
ham_action_handle_free() Free a previously obtained handle to an action in a condition in an entity.
ham_action_heartbeat_healthy() Reset a heartbeat's state to healthy.
ham_action_log() Insert a log message into the activity log.
ham_action_notify_pulse() Add a notify-pulse action to a condition.
ham_action_notify_pulse_node() Add a notify-pulse action to a condition, using a nodename.
ham_action_notify_signal() Add a notify-signal action to a condition.
ham_action_notify_signal_node() Add a notify-signal action to a condition, using a nodename.
ham_action_remove() Remove an action from a condition.
ham_action_restart() Add a restart action to a condition.
ham_action_waitfor() Add a waitfor action to a condition.
ham_attach() Attach an entity.
ham_attach_node() Attach an entity, using a nodename.
ham_attach_self() Attach an application as a self-attached entity.
ham_condition() Set up a condition to be triggered when a certain event occurs.
ham_condition_control() Perform control operations on a condition object.
ham_condition_handle() Get a handle to a condition in an entity.
ham_condition_handle_node() Get a handle to a condition in an entity, using a nodename.
ham_condition_handle_free() Free a previously obtained handle to a condition in an entity.
ham_condition_raise() Attach a condition associated with a condition raise condition that's triggered by an entity raising a condition.
ham_condition_remove() Remove a condition from an entity.
ham_condition_state() Attach a condition associated with a state transition condition that's triggered by an entity reporting a state change.
ham_connect() Connect to a HAM.
ham_connect_nd() Connect to a remote HAM.
ham_connect_node() Connect to a remote HAM, using a nodename.
ham_detach() Detach an entity from a HAM.
ham_detach_name() Detach an entity from a HAM, using an entity name.
ham_detach_name_node() Detach an entity from a HAM, using an entity name and a nodename.
ham_detach_self() Detach a self-attached entity from a HAM.
ham_disconnect() Disconnect from a HAM.
ham_disconnect_nd() Disconnect from a remote HAM.
ham_disconnect_node() Disconnect from a remote HAM, using a nodename.
ham_entity() Create entity placeholder objects in a HAM.
ham_entity_condition_raise() Raise a condition.
ham_entity_condition_state() Notify the HAM of a state transition.
ham_entity_control() Perform control operations on an entity object in a HAM.
ham_entity_handle() Get a handle to an entity.
ham_entity_handle_node() Get a handle to an entity, using a nodename.
ham_entity_handle_free() Free a previously obtained handle to an entity.
ham_entity_node() Create entity placeholder objects in a HAM, using a nodename.
ham_heartbeat() Send a heartbeat to a HAM.
ham_stop() Stop a HAM.
ham_stop_nd() Stop a remote HAM.
ham_stop_node() Stop a remote HAM, using a nodename.
ham_verbose() Modify the verbosity of a HAM.