arm4.h File Reference
ARM 4.0 standard header file. More...
#include "arm4os.h"
#include "arm4dyn.h"
Go to the source code of this file.
Data Structures | |
struct | arm_id |
An ID is a 16-byte binary value, such as a UUID. More... | |
struct | arm_correlator |
ARM 4.0 correlator structure. More... | |
struct | arm_metric_cntrdivr32 |
32-bit integer plus a 32-bit divisor, used to simulate floating-point counter. More... | |
struct | arm_metric_gaugedivr32 |
32-bit integer plus a 32-bit divisor, used to simulate floating-point gauge. More... | |
struct | arm_metric |
used to pass a metric value to the ARM implementation. More... | |
struct | arm_metric_binding |
binds a metric definition (id) to a certain transaction metric slot. More... | |
struct | arm_property |
defines a name value property pair. More... | |
struct | arm_subbuffer |
Generic sub-buffer structure. More... | |
struct | arm_buffer4 |
User data buffer used to pass different kind of data to a function. More... | |
struct | arm_subbuffer_charset |
used to specify which charset the application uses. More... | |
struct | arm_subbuffer_app_identity |
used to specify additional identity properties for an application More... | |
struct | arm_subbuffer_app_context |
used to associate context properties to an application instance. More... | |
struct | arm_subbuffer_tran_identity |
used to specify additional identity properties for a transaction More... | |
struct | arm_subbuffer_tran_context |
used to associate context properties to a transaction instance. More... | |
struct | arm_subbuffer_arrival_time |
used to pass the arrival time for a transaction instance. More... | |
struct | arm_subbuffer_metric_bindings |
used to associate metrics to a transaction More... | |
struct | arm_subbuffer_metric_values |
used to pass a metric values to the ARM implementation. More... | |
struct | arm_subbuffer_user |
used to associate an user name and/or ID to a transaction instance. More... | |
struct | arm_subbuffer_system_address |
used to specify a different system than the one on which the call is executed. More... | |
struct | arm_subbuffer_diag_detail |
used to provide diagnostic detail information for not good transactions. More... | |
Defines | |
#define | ARM_SB(x) (&((x).header)) |
used to cast a specific sub-buffer to a pointer to arm_subbuffer_t. | |
#define | ARM_FALSE 0 |
ARM false boolean. | |
#define | ARM_TRUE 1 |
ARM true boolean. | |
#define | ARM_STATUS_GOOD 0 |
transaction completed successfully | |
#define | ARM_STATUS_ABORTED 1 |
transaction was aborted before it completed. | |
#define | ARM_STATUS_FAILED 2 |
transaction completed in error | |
#define | ARM_STATUS_UNKNOWN 3 |
transaction completed but the status was unknown. | |
#define | ARM_ERROR_CODE_RESERVED_MIN -20999 |
reserved error code minimum start | |
#define | ARM_ERROR_CODE_RESERVED_MAX -20000 |
reserved error code maximum end | |
#define | ARM_SUBBUFFER_USER 3 |
User sub-buffer format see arm_subbuffer_user_t. | |
#define | ARM_SUBBUFFER_ARRIVAL_TIME 4 |
Arrival time sub-buffer format see arm_subbuffer_arrival_time_t. | |
#define | ARM_SUBBUFFER_METRIC_VALUES 5 |
Metric values sub-buffer format see arm_subbuffer_metric_values_t. | |
#define | ARM_SUBBUFFER_SYSTEM_ADDRESS 6 |
System address sub-buffer format see arm_subbuffer_system_address_t. | |
#define | ARM_SUBBUFFER_DIAG_DETAIL 7 |
Diagnostic detail sub-buffer format see arm_subbuffer_diag_detail_t. | |
#define | ARM_SUBBUFFER_APP_IDENTITY 102 |
Application identity sub-buffer format see arm_subbuffer_app_identity_t. | |
#define | ARM_SUBBUFFER_APP_CONTEXT 103 |
Application context sub-buffer format see arm_subbuffer_app_context_t. | |
#define | ARM_SUBBUFFER_TRAN_IDENTITY 104 |
Transaction identity sub-buffer format see arm_subbuffer_tran_identity_t. | |
#define | ARM_SUBBUFFER_TRAN_CONTEXT 105 |
Transaction context sub-buffer format see arm_subbuffer_tran_context_t. | |
#define | ARM_SUBBUFFER_METRIC_BINDINGS 106 |
Metric bindings sub-buffer format see arm_subbuffer_metric_bindings_t. | |
#define | ARM_SUBBUFFER_CHARSET 107 |
Character set encoding sub-buffer format see arm_subbuffer_charset_t. | |
#define | ARM_METRIC_FORMAT_RESERVED 0 |
Reserved metric format. | |
#define | ARM_METRIC_FORMAT_COUNTER32 1 |
arm_int32_t counter | |
#define | ARM_METRIC_FORMAT_COUNTER64 2 |
arm_int64_t counter | |
#define | ARM_METRIC_FORMAT_CNTRDIVR32 3 |
arm_int32_t counter + arm_int32_t divisor | |
#define | ARM_METRIC_FORMAT_GAUGE32 4 |
arm_int32_t gauge | |
#define | ARM_METRIC_FORMAT_GAUGE64 5 |
arm_int64_t gauge | |
#define | ARM_METRIC_FORMAT_GAUGEDIVR32 6 |
arm_int32_t gauge + arm_int32_t divisor | |
#define | ARM_METRIC_FORMAT_NUMERICID32 7 |
arm_int32_t numeric ID | |
#define | ARM_METRIC_FORMAT_NUMERICID64 8 |
arm_int64_t numeric ID | |
#define | ARM_METRIC_FORMAT_STRING32 10 |
string (null-terminated) of a maximum length of 32 characters (33 including the null termination character) | |
#define | ARM_METRIC_USE_GENERAL 0 |
a metric without a specified usage. | |
#define | ARM_METRIC_USE_TRAN_SIZE 1 |
a metric that indicates the "size" of a transaction. | |
#define | ARM_METRIC_USE_TRAN_STATUS 2 |
a metric that further explains the transaction status such as a sense code that explains why a transaction failed. | |
#define | ARM_METRIC_MIN_ARRAY_INDEX 0 |
minimum array index for metric values and bindings. | |
#define | ARM_METRIC_MAX_ARRAY_INDEX 6 |
maximum array index for metric values and bindings. | |
#define | ARM_METRIC_MAX_COUNT 7 |
maximum array count for metric values and bindings. | |
#define | ARM_METRIC_STRING32_MAX_CHARS 31 |
maximum characters for a string metric | |
#define | ARM_METRIC_STRING32_MAX_LENGTH (ARM_METRIC_STRING32_MAX_CHARS*3+1) |
maximum bytes for a string metric | |
#define | ARM_NAME_MAX_CHARS 127 |
maximum characters for names | |
#define | ARM_NAME_MAX_LENGTH (ARM_NAME_MAX_CHARS*3+1) |
maximum number of bytes for names | |
#define | ARM_DIAG_DETAIL_MAX_CHARS 4095 |
maximum characters for diagnostic detail string | |
#define | ARM_DIAG_DETAIL_MAX_LENGTH (ARM_DIAG_DETAIL_MAX_CHARS*3+1) |
maximum number of bytes for diagnostic detail string | |
#define | ARM_MSG_BUFFER_CHARS 255 |
maximum characters for message buffers | |
#define | ARM_MSG_BUFFER_LENGTH (ARM_MSG_BUFFER_CHARS*3+1) |
maximum number of bytes for message buffers | |
#define | ARM_PROPERTY_MIN_ARRAY_INDEX 0 |
minimum array index for property names and values | |
#define | ARM_PROPERTY_MAX_ARRAY_INDEX 19 |
maximum array index for property names and values | |
#define | ARM_PROPERTY_MAX_COUNT 20 |
maximum array count for property names and values | |
#define | ARM_PROPERTY_NAME_MAX_CHARS (ARM_NAME_MAX_CHARS) |
maximum characters for property names | |
#define | ARM_PROPERTY_NAME_MAX_LENGTH (ARM_PROPERTY_NAME_MAX_CHARS*3+1) |
maximum number of bytes for property names | |
#define | ARM_PROPERTY_VALUE_MAX_CHARS 255 |
maximum characters for property values | |
#define | ARM_PROPERTY_VALUE_MAX_LENGTH (ARM_PROPERTY_VALUE_MAX_CHARS*3+1) |
maximum number of bytes for property values | |
#define | ARM_PROPERTY_URI_MAX_CHARS 4095 |
maximum characters for a uri property | |
#define | ARM_PROPERTY_URI_MAX_LENGTH (ARM_PROPERTY_URI_MAX_CHARS*3+1) |
maximum number of bytes for a uri property | |
#define | ARM_SYSADDR_FORMAT_RESERVED 0 |
reserved by the standard | |
#define | ARM_SYSADDR_FORMAT_IPV4 1 |
IP address. | |
#define | ARM_SYSADDR_FORMAT_IPV4PORT 2 |
IP address and port number. | |
#define | ARM_SYSADDR_FORMAT_IPV6 3 |
IP v6 address. | |
#define | ARM_SYSADDR_FORMAT_IPV6PORT 4 |
IP v6 address and port number. | |
#define | ARM_SYSADDR_FORMAT_SNA 5 |
SNA address. | |
#define | ARM_SYSADDR_FORMAT_X25 6 |
X25 address. | |
#define | ARM_SYSADDR_FORMAT_HOSTNAME 7 |
hostname string | |
#define | ARM_SYSADDR_FORMAT_UUID 8 |
UUID address alias. | |
#define | ARM_CHARSET_ASCII 3 |
ASCII-7 (US-ASCII) mandatory on all systems. | |
#define | ARM_CHARSET_UTF8 106 |
UTF-8 (UCS-2 characters only) mandatory on all systems. | |
#define | ARM_CHARSET_UTF16BE 1013 |
UTF-16 Big Endian (UCS-2 characters only). | |
#define | ARM_CHARSET_UTF16LE 1014 |
UTF-16 Little Endian (UCS-2 characters only) mandatory on Microsoft Windows. | |
#define | ARM_CHARSET_UTF16 1015 |
UTF-16 Little and Big Endian (UCS-2 characters only). | |
#define | ARM_CHARSET_IBM037 2028 |
IBM037 mandatory on IBM iSeries. | |
#define | ARM_CHARSET_IBM1047 2102 |
IBM1047 mandatory on IBM zSeries. | |
#define | ARM_FLAG_NONE (0x00000000) |
use instead of zero to be more readable. | |
#define | ARM_FLAG_TRACE_REQUEST (0x00000001) |
is set to 1 if the application requests/suggests a trace. | |
#define | ARM_FLAG_BIND_THREAD (0x00000002) |
is set to 1 if the started transaction is bound to this thread. | |
#define | ARM_FLAG_CORR_IN_PROCESS (0x00000004) |
is set to 1 if the application is stating that it will not send the correlator outside the current process. | |
#define | ARM_CORR_MAX_LENGTH 512 |
total maximal length of an ARM 4.x correlator. | |
#define | ARM_CORR_FLAGNUM_APP_TRACE 1 |
Application trace flag number. | |
#define | ARM_CORR_FLAGNUM_AGENT_TRACE 2 |
Agent trace flag number. | |
#define | ARM_CORR_NONE ((arm_correlator_t *) NULL) |
Used to pass no correlator to various functions calls (e.g. arm_start_transaction()). | |
#define | ARM_USE_CURRENT_TIME ((arm_stop_time_t)-1) |
short cut for capturing the current time within arm_report_transaction(). | |
#define | ARM_BUF4_NONE ((arm_buffer4_t*) NULL) |
to be used instead of a NULL to be more readable for arm_buffer4_t null pointers. | |
#define | ARM_ID_NONE ((arm_id_t *) NULL) |
to be used instead of a NULL to be more readable for arm_id_t null pointers. | |
#define | ARM_STRING_NONE ((arm_char_t *) NULL) |
to be used instead of a NULL to be more readable. | |
Typedefs | |
typedef ARM4_CHAR | arm_char_t |
typedef ARM4_INT8 | arm_int8_t |
typedef ARM4_UINT8 | arm_uint8_t |
typedef ARM4_INT16 | arm_int16_t |
typedef ARM4_UINT16 | arm_uint16_t |
typedef ARM4_INT32 | arm_int32_t |
typedef ARM4_UINT32 | arm_uint32_t |
typedef ARM4_INT64 | arm_int64_t |
typedef ARM4_UINT64 | arm_uint64_t |
typedef arm_int32_t | arm_boolean_t |
typedef arm_int32_t | arm_error_t |
typedef arm_int64_t | arm_arrival_time_t |
typedef arm_int64_t | arm_stop_time_t |
typedef arm_int64_t | arm_response_time_t |
typedef arm_int32_t | arm_tran_status_t |
typedef arm_int32_t | arm_charset_t |
typedef arm_int32_t | arm_sysaddr_format_t |
typedef arm_char_t | arm_message_buffer_t [ARM_MSG_BUFFER_LENGTH] |
typedef arm_int32_t | arm_subbuffer_format_t |
typedef arm_uint8_t | arm_metric_format_t |
typedef arm_uint8_t | arm_metric_slot_t |
typedef arm_int16_t | arm_metric_usage_t |
typedef arm_int64_t | arm_app_start_handle_t |
typedef arm_int64_t | arm_tran_start_handle_t |
typedef arm_int64_t | arm_tran_block_handle_t |
typedef arm_int16_t | arm_correlator_length_t |
typedef struct arm_id | arm_id_t |
An ID is a 16-byte binary value, such as a UUID. | |
typedef struct arm_correlator | arm_correlator_t |
ARM 4.0 correlator structure. | |
typedef arm_int32_t | arm_metric_counter32_t |
32-bit integer metric counter type | |
typedef arm_int64_t | arm_metric_counter64_t |
64-bit integer metric counter type | |
typedef arm_int32_t | arm_metric_divisor32_t |
32-bit integer metric divisor type | |
typedef arm_int32_t | arm_metric_gauge32_t |
32-bit integer metric gauge type | |
typedef arm_int64_t | arm_metric_gauge64_t |
64-bit integer metric gauge type | |
typedef arm_int32_t | arm_metric_numericID32_t |
32-bit integer metric numeric id type | |
typedef arm_int64_t | arm_metric_numericID64_t |
64-bit integer metric numeric id type | |
typedef const arm_char_t * | arm_metric_string32_t |
32 character wide string type. | |
typedef struct arm_metric_cntrdivr32 | arm_metric_cntrdivr32_t |
32-bit integer plus a 32-bit divisor, used to simulate floating-point counter. | |
typedef struct arm_metric_gaugedivr32 | arm_metric_gaugedivr32_t |
32-bit integer plus a 32-bit divisor, used to simulate floating-point gauge. | |
typedef struct arm_metric | arm_metric_t |
used to pass a metric value to the ARM implementation. | |
typedef struct arm_metric_binding | arm_metric_binding_t |
binds a metric definition (id) to a certain transaction metric slot. | |
typedef struct arm_property | arm_property_t |
defines a name value property pair. | |
typedef struct arm_subbuffer | arm_subbuffer_t |
Generic sub-buffer structure. | |
typedef struct arm_buffer4 | arm_buffer4_t |
User data buffer used to pass different kind of data to a function. | |
typedef struct arm_subbuffer_charset | arm_subbuffer_charset_t |
used to specify which charset the application uses. | |
typedef struct arm_subbuffer_app_identity | arm_subbuffer_app_identity_t |
used to specify additional identity properties for an application | |
typedef struct arm_subbuffer_app_context | arm_subbuffer_app_context_t |
used to associate context properties to an application instance. | |
typedef struct arm_subbuffer_tran_identity | arm_subbuffer_tran_identity_t |
used to specify additional identity properties for a transaction | |
typedef struct arm_subbuffer_tran_context | arm_subbuffer_tran_context_t |
used to associate context properties to a transaction instance. | |
typedef struct arm_subbuffer_arrival_time | arm_subbuffer_arrival_time_t |
used to pass the arrival time for a transaction instance. | |
typedef struct arm_subbuffer_metric_bindings | arm_subbuffer_metric_bindings_t |
used to associate metrics to a transaction | |
typedef struct arm_subbuffer_metric_values | arm_subbuffer_metric_values_t |
used to pass a metric values to the ARM implementation. | |
typedef struct arm_subbuffer_user | arm_subbuffer_user_t |
used to associate an user name and/or ID to a transaction instance. | |
typedef struct arm_subbuffer_system_address | arm_subbuffer_system_address_t |
used to specify a different system than the one on which the call is executed. | |
typedef struct arm_subbuffer_diag_detail | arm_subbuffer_diag_detail_t |
used to provide diagnostic detail information for not good transactions. | |
Functions | |
arm_register_application (const arm_char_t *app_name, const arm_id_t *input_app_id, const arm_int32_t flags, const arm_buffer4_t *buffer4, arm_id_t *output_app_id) | |
describes and registers the application with ARM | |
arm_destroy_application (const arm_id_t *app_id, const arm_int32_t flags, const arm_buffer4_t *buffer4) | |
destroy any registered ARM application data | |
arm_register_transaction (const arm_id_t *app_id, const arm_char_t *tran_name, const arm_id_t *input_tran_id, const arm_int32_t flags, const arm_buffer4_t *buffer4, arm_id_t *output_tran_id) | |
describes and register a transaction with ARM | |
arm_register_metric (const arm_id_t *app_id, const arm_char_t *metric_name, const arm_metric_format_t metric_format, const arm_metric_usage_t metric_usage, const arm_char_t *metric_unit, const arm_id_t *input_metric_id, const arm_int32_t flags, const arm_buffer4_t *buffer4, arm_id_t *output_metric_id) | |
describes and register metrics with ARM | |
arm_start_application (const arm_id_t *app_id, const arm_char_t *app_group, const arm_char_t *app_instance, const arm_int32_t flags, const arm_buffer4_t *buffer4, arm_app_start_handle_t *app_handle) | |
indicates that an instance of an application has started running | |
arm_stop_application (const arm_app_start_handle_t app_handle, const arm_int32_t flags, const arm_buffer4_t *buffer4) | |
stop application | |
arm_start_transaction (const arm_app_start_handle_t app_handle, const arm_id_t *tran_id, const arm_correlator_t *parent_correlator, const arm_int32_t flags, const arm_buffer4_t *buffer4, arm_tran_start_handle_t *tran_handle, arm_correlator_t *current_correlator) | |
start transaction | |
arm_stop_transaction (const arm_tran_start_handle_t tran_handle, const arm_tran_status_t tran_status, const arm_int32_t flags, const arm_buffer4_t *buffer4) | |
stop transaction | |
arm_update_transaction (const arm_tran_start_handle_t tran_handle, const arm_int32_t flags, const arm_buffer4_t *buffer4) | |
update transaction status | |
arm_discard_transaction (const arm_tran_start_handle_t tran_handle, const arm_int32_t flags, const arm_buffer4_t *buffer4) | |
discard a started transaction. | |
arm_block_transaction (const arm_tran_start_handle_t tran_handle, const arm_int32_t flags, const arm_buffer4_t *buffer4, arm_tran_block_handle_t *block_handle) | |
indicates that a transaction is blocked. | |
arm_unblock_transaction (const arm_tran_start_handle_t tran_handle, const arm_tran_block_handle_t block_handle, const arm_int32_t flags, const arm_buffer4_t *buffer4) | |
unblock transaction | |
arm_bind_thread (const arm_tran_start_handle_t tran_handle, const arm_int32_t flags, const arm_buffer4_t *buffer4) | |
bind a transaction to the excuting thread | |
arm_unbind_thread (const arm_tran_start_handle_t tran_handle, const arm_int32_t flags, const arm_buffer4_t *buffer4) | |
unbind a transaction from the excuting thread | |
arm_report_transaction (const arm_app_start_handle_t app_handle, const arm_id_t *tran_id, const arm_tran_status_t tran_status, const arm_response_time_t response_time, const arm_stop_time_t stop_time, const arm_correlator_t *parent_correlator, const arm_correlator_t *current_correlator, const arm_int32_t flags, const arm_buffer4_t *buffer4) | |
report transaction statistics | |
arm_generate_correlator (const arm_app_start_handle_t app_handle, const arm_id_t *tran_id, const arm_correlator_t *parent_correlator, const arm_int32_t flags, const arm_buffer4_t *buffer4, arm_correlator_t *current_correlator) | |
generate a correlator or pass instrumentation control information. | |
arm_get_correlator_length (const arm_correlator_t *correlator, arm_correlator_length_t *length) | |
get length of correlator | |
arm_get_correlator_flags (const arm_correlator_t *correlator, const arm_int32_t corr_flag_num, arm_boolean_t *flag) | |
get value of correlator flag | |
arm_get_arrival_time (arm_arrival_time_t *opaque_time) | |
gets current time in opaque format. | |
arm_get_error_message (const arm_charset_t charset, const arm_error_t code, arm_message_buffer_t msg) | |
get an error message | |
arm_is_charset_supported (const arm_charset_t charset, arm_boolean_t *supported) | |
check supported character encoding |
Detailed Description
ARM 4.0 standard header file.
This header file defines all defines, typedefs, structures, and API functions visible for an application which uses an ARM agent. All compiler/platform specifics are handled in a separate header file named <arm4os.h>.
- Note:
- The ARM 4.0 C language binding differs completely from ARM 1.0 and ARM 2.0 bindings.
Typedef Documentation
typedef arm_int64_t arm_app_start_handle_t |
application start handle type
typedef arm_int64_t arm_arrival_time_t |
opaque arrival time
typedef arm_int32_t arm_boolean_t |
ARM boolean type
typedef ARM4_CHAR arm_char_t |
defines an ARM character.
typedef arm_int32_t arm_charset_t |
IANA MIBenum values
typedef arm_int16_t arm_correlator_length_t |
correlator length type
typedef arm_int32_t arm_error_t |
API call return type
An ID is a 16-byte binary value, such as a UUID.
All IDs are 16 bytes on an 8-byte boundary.
- See also:
- Unique ARM ID.
typedef ARM4_INT16 arm_int16_t |
16-bit signed integer
typedef ARM4_INT32 arm_int32_t |
32-bit signed integer
typedef ARM4_INT64 arm_int64_t |
64-bit signed integer
typedef ARM4_INT8 arm_int8_t |
8-bit signed integer
typedef arm_char_t arm_message_buffer_t[ARM_MSG_BUFFER_LENGTH] |
ARM string buffer type used by arm_get_error_message()
typedef arm_uint8_t arm_metric_format_t |
metric format type
typedef arm_uint8_t arm_metric_slot_t |
metric slot type
typedef arm_int16_t arm_metric_usage_t |
metric usage type
typedef arm_int64_t arm_response_time_t |
response time in nano secs
typedef arm_int64_t arm_stop_time_t |
stop time in milli secs
typedef arm_int32_t arm_subbuffer_format_t |
sub-buffer format type
typedef arm_int32_t arm_sysaddr_format_t |
ARM_SYSADDR_* values
typedef arm_int64_t arm_tran_block_handle_t |
transaction block handle type
typedef arm_int64_t arm_tran_start_handle_t |
transaction start handle type
typedef arm_int32_t arm_tran_status_t |
ARM_TRAN_STATUS_* values
typedef ARM4_UINT16 arm_uint16_t |
16-bit unsigned integer
typedef ARM4_UINT32 arm_uint32_t |
32-bit unsigned integer
typedef ARM4_UINT64 arm_uint64_t |
64-bit unsigned integer
typedef ARM4_UINT8 arm_uint8_t |
used to define an opaque byte array