102 #include <winsock2.h> 106 #if defined(__cplusplus) 111 #define LBMMON_ERROR_BASE 4096 113 #define LBMMON_EINVAL (LBMMON_ERROR_BASE + 1) 115 #define LBMMON_ENOMEM (LBMMON_ERROR_BASE + 2) 117 #define LBMMON_EMODFAIL (LBMMON_ERROR_BASE + 3) 119 #define LBMMON_ELBMFAIL (LBMMON_ERROR_BASE + 4) 121 #define LBMMON_EAGAIN (LBMMON_ERROR_BASE + 5) 123 #define LBMMON_EALREADY (LBMMON_ERROR_BASE + 6) 125 #define LBMMON_EOP (LBMMON_ERROR_BASE + 7) 128 #define LBMMON_PACKET_SIGNATURE 0x1b33041b 131 #define LBMMON_PACKET_TYPE_SOURCE 0 133 #define LBMMON_PACKET_TYPE_RECEIVER 1 135 #define LBMMON_PACKET_TYPE_EVENT_QUEUE 2 137 #define LBMMON_PACKET_TYPE_CONTEXT 3 139 #define LBMMON_PACKET_TYPE_RECEIVER_TOPIC 4 141 #define LBMMON_PACKET_TYPE_WILDCARD_RECEIVER 5 179 #define LBMMON_ATTR_SENDER_IPV4 0 181 #define LBMMON_ATTR_TIMESTAMP 1 183 #define LBMMON_ATTR_APPSOURCEID 2 185 #define LBMMON_ATTR_FORMAT_MODULEID 3 187 #define LBMMON_ATTR_OBJECTID 4 191 #define LBMMON_ATTR_CONTEXTID LBMMON_ATTR_OBJECTID 193 #define LBMMON_ATTR_PROCESSID 5 199 #define LBMMON_ATTR_SOURCE 6 201 #define LBMMON_ATTR_CTXINST 7 203 #define LBMMON_ATTR_DOMAINID 8 206 #define LBMMON_ATTR_SOURCE_NORMAL 0 208 #define LBMMON_ATTR_SOURCE_IM 1 246 const void * FormatOptions);
279 unsigned short * ModuleID,
281 void * FormatClientData);
310 unsigned short * ModuleID,
312 void * FormatClientData);
343 unsigned short * ModuleID,
345 void * FormatClientData);
376 unsigned short * ModuleID,
378 void * FormatClientData);
405 unsigned short ModuleID,
406 void * FormatClientData);
430 unsigned short ModuleID,
431 void * FormatClientData);
456 unsigned short ModuleID,
457 void * FormatClientData);
482 unsigned short ModuleID,
483 void * FormatClientData);
516 unsigned short * ModuleID,
520 void * FormatClientData);
548 unsigned short ModuleID,
549 void * FormatClientData);
580 unsigned short * ModuleID,
582 void * FormatClientData);
606 unsigned short ModuleID,
607 void * FormatClientData);
628 typedef const char * (*lbmmon_format_errmsg_t)(void);
793 #define LBMMON_RCTL_RECEIVER_CALLBACK 0 795 #define LBMMON_RCTL_SOURCE_CALLBACK 1 797 #define LBMMON_RCTL_EVENT_QUEUE_CALLBACK 2 799 #define LBMMON_RCTL_CONTEXT_CALLBACK 3 801 #define LBMMON_RCTL_RECEIVER_TOPIC_CALLBACK 4 803 #define LBMMON_RCTL_WILDCARD_RECEIVER_CALLBACK 5 816 const void * TransportOptions);
829 const void * TransportOptions);
841 void * TransportClientData);
862 unsigned int TimeoutMS,
863 void * TransportClientData);
889 typedef const char * (*lbmmon_transport_errmsg_t)(void);
911 struct lbmmon_sctl_t_stct;
916 struct lbmmon_rctl_attr_t_stct;
921 struct lbmmon_rctl_t_stct;
948 const void * FormatOptions,
950 const void * TransportOptions);
1022 const void * FormatOptions,
1024 const void * TransportOptions,
1062 const char * ApplicationSourceID,
1063 unsigned int Seconds);
1108 const char * ApplicationSourceID,
1109 unsigned int Seconds);
1142 const char * ApplicationSourceID,
1143 unsigned int Seconds);
1199 const char * ApplicationSourceID,
1200 unsigned int Seconds);
1244 const char * ApplicationSourceID,
1245 unsigned int Seconds);
1316 time_t * Timestamp);
1327 char * ApplicationSourceID,
1418 #if defined(__cplusplus) 1422 #include <lbm/lbmmonfmtcsv.h> 1423 #include <lbm/lbmmontrlbm.h> 1424 #include <lbm/lbmmontrudp.h> 1425 #include <lbm/lbmmontrlbmsnmp.h> lbmmon_transport_finishsrc_t mFinishSource
Definition: lbmmon.h:904
LBMExpDLL int lbmmon_rctl_attr_create(lbmmon_rctl_attr_t **Attributes)
Create an LBM Monitoring Receive Controller attribute object.
struct lbmmon_rctl_t_stct lbmmon_rctl_t
LBM Monitoring Receiver Controller object (opaque).
Definition: lbmmon.h:924
LBMExpDLL int lbmmon_ssrc_monitor(lbmmon_sctl_t *Control, lbm_ssrc_t *SmartSource, const char *ApplicationSourceID, unsigned int Seconds)
Register a smart source for monitoring.
struct lbmmon_sctl_t_stct lbmmon_sctl_t
LBM Monitoring Source Controller object (opaque).
Definition: lbmmon.h:914
LBMExpDLL int lbmmon_attr_get_source(const void *AttributeBlock, lbm_ulong_t *Source)
Retrieve the source attribute from the statistics attribute block.
const char * lbmmon_next_key_value_pair(const char *String, char *Key, size_t KeySize, char *Value, size_t ValueSize)
Retrieve the next key/value pair from a semicolon-separated list.
LBMExpDLL int lbmmon_attr_get_timestamp(const void *AttributeBlock, time_t *Timestamp)
Retrieve the timestamp attribute from the statistics attribute block.
const char *(* lbmmon_transport_errmsg_t)(void)
Function to return the last error message from a transport module.
Definition: lbmmon.h:889
lbmmon_transport_receive_t mReceive
Definition: lbmmon.h:902
LBMExpDLL int lbmmon_ssrc_unmonitor(lbmmon_sctl_t *Control, lbm_ssrc_t *SmartSource)
Terminate monitoring for a smart source.
Structure that holds statistics for an event queue.
Definition: lbm.h:4294
unsigned short int lbm_ushort_t
For portability.
Definition: lbm.h:1077
struct lbmmon_wildcard_rcv_statistics_func_t_stct lbmmon_wildcard_rcv_statistics_func_t
A structure that holds the callback information for wildcard receiver statistics. ...
LBMExpDLL int lbmmon_attr_get_objectid(const void *AttributeBlock, lbm_ulong_t *ObjectID)
Retrieve the object ID attribute from the statistics attribute block.
LBMExpDLL int lbmmon_evq_monitor(lbmmon_sctl_t *Control, lbm_event_queue_t *EventQueue, const char *ApplicationSourceID, unsigned int Seconds)
Register an event queue for monitoring.
int(* lbmmon_transport_initrcv_t)(void **TransportClientData, const void *TransportOptions)
Function to initialize a transport module to serve as a receiver of statistics.
Definition: lbmmon.h:828
void(* lbmmon_rcv_topic_statistics_cb)(const void *AttributeBlock, const lbm_rcv_topic_stats_t *Statistics, void *ClientData)
For internal use only. Client callback function to process a received receiver topic statistics packe...
Definition: lbmmon.h:757
int(* lbmmon_transport_finishrcv_t)(void *TransportClientData)
Finish processing for a receiver transport.
Definition: lbmmon.h:883
lbm_ushort_t mAttributeBlockLength
Definition: lbmmon.h:159
lbmmon_transport_finishrcv_t mFinishReceiver
Definition: lbmmon.h:906
LBMExpDLL int lbmmon_attr_get_processid(const void *AttributeBlock, lbm_ulong_t *ProcessID)
Retrieve the process ID attribute from the statistics attribute block.
LBMExpDLL int lbmmon_rctl_attr_getopt(lbmmon_rctl_attr_t *Attributes, int Option, void *Value, size_t *Length)
Get an LBMMON receive controller attribute option value.
struct lbmmon_attr_block_t_stct lbmmon_attr_block_t
Statistics attribute block layout. Associated with each statistics message is a set of optional attri...
struct lbmmon_rctl_attr_t_stct lbmmon_rctl_attr_t
LBM Monitoring Receiver Controller Attribute object (opaque).
Definition: lbmmon.h:919
LBMExpDLL int lbmmon_attr_get_ipv4sender(const void *AttributeBlock, lbm_uint_t *Address)
Retrieve the IPV4 sender address attribute from the statistics attribute block.
LBMExpDLL int lbmmon_rctl_destroy(lbmmon_rctl_t *Control)
Destroy a statistics receive controller.
int(* lbmmon_transport_initsrc_t)(void **TransportClientData, const void *TransportOptions)
Function to initialize a transport module to serve as a source of statistics.
Definition: lbmmon.h:815
int(* lbmmon_src_format_serialize_t)(char *Destination, size_t *Size, unsigned short *ModuleID, const lbm_src_transport_stats_t *Statistics, void *FormatClientData)
Function to serialize an lbm_src_transport_stats_t structure.
Definition: lbmmon.h:308
LBMExpDLL int lbmmon_attr_get_appsourceid(const void *AttributeBlock, char *ApplicationSourceID, size_t Length)
Retrieve the application source ID attribute from the statistics attribute block. ...
Statistics attribute entry layout. Each attribute entry within the attributes block consists of an en...
Definition: lbmmon.h:214
void(* lbmmon_rcv_statistics_cb)(const void *AttributeBlock, const lbm_rcv_transport_stats_t *Statistics, void *ClientData)
Client callback function to process a received receiver statistics packet.
Definition: lbmmon.h:673
struct lbmmon_format_func_t_stct lbmmon_format_func_t
Format module function pointer container.
struct lbm_event_queue_t_stct lbm_event_queue_t
Opaque structure that designates a UM event queue object.
Definition: lbm.h:1600
lbmmon_rcv_topic_statistics_cb cbfunc
Definition: lbmmon.h:768
struct lbmmon_packet_hdr_t_stct lbmmon_packet_hdr_t
Statistics packet header layout.
int(* lbmmon_ctx_format_deserialize_t)(lbm_context_stats_t *Statistics, const char *Source, size_t Length, unsigned short ModuleID, void *FormatClientData)
Function to deserialize a buffer into an lbm_context_stats_t structure.
Definition: lbmmon.h:479
lbmmon_evq_statistics_cb cbfunc
Definition: lbmmon.h:726
LBMExpDLL int lbmmon_sctl_sample(lbmmon_sctl_t *Control)
Gather statistics for on-demand objects.
struct lbm_ssrc_t_stct lbm_ssrc_t
Opaque structure that designates a UM Smart Source.
Definition: lbm.h:3047
LBMExpDLL int lbmmon_rcv_unmonitor(lbmmon_sctl_t *Control, lbm_rcv_t *Receiver)
Terminate monitoring for a receiver.
int(* lbmmon_format_init_t)(void **FormatClientData, const void *FormatOptions)
Function to initialize a format module.
Definition: lbmmon.h:245
LBMExpDLL int lbmmon_src_unmonitor(lbmmon_sctl_t *Control, lbm_src_t *Source)
Terminate monitoring for a source.
struct lbmmon_rcv_topic_statistics_func_t_stct lbmmon_rcv_topic_statistics_func_t
For internal use only. A structure that holds the callback information for receiver topic statistics...
Structure that holds statistics for a receiver topic.
Definition: lbm.h:4738
LBMExpDLL int lbmmon_rctl_attr_setopt(lbmmon_rctl_attr_t *Attributes, int Option, void *Value, size_t Length)
Set an LBMMON receive controller attribute option value.
lbmmon_rcv_statistics_cb cbfunc
Definition: lbmmon.h:684
int(* lbmmon_transport_finishsrc_t)(void *TransportClientData)
Finish processing for a source transport.
Definition: lbmmon.h:873
void(* lbmmon_src_statistics_cb)(const void *AttributeBlock, const lbm_src_transport_stats_t *Statistics, void *ClientData)
Client callback function to process a received source statistics packet.
Definition: lbmmon.h:694
lbmmon_ctx_statistics_cb cbfunc
Definition: lbmmon.h:747
LBMExpDLL int lbmmon_attr_get_ctxinst(const void *AttributeBlock, lbm_uint8_t *ContextInstance, size_t Length)
For internal use only. Retrieve the context instance attribute from the statistics attribute block...
LBMExpDLL int lbmmon_attr_get_domainid(const void *AttributeBlock, lbm_uint32_t *DomainID)
For internal use only. Retrieve the domain ID attribute from the statistics attribute block...
lbmmon_transport_initrcv_t mInitReceiver
Definition: lbmmon.h:898
uint8_t lbm_uint8_t
For portability.
Definition: lbm.h:1081
Statistics packet header layout.
Definition: lbmmon.h:152
LBMExpDLL const char * lbmmon_errmsg(void)
Retrieve the error message for the last error encountered.
int(* lbmmon_wildcard_rcv_format_serialize_t)(char *Destination, size_t *Size, unsigned short *ModuleID, const lbm_wildcard_rcv_stats_t *Statistics, void *FormatClientData)
Function to serialize wildcard receiver statistics.
Definition: lbmmon.h:578
LBMExpDLL int lbmmon_sctl_destroy(lbmmon_sctl_t *Control)
Destroy a source monitoring controller.
struct lbmmon_ctx_statistics_func_t_stct lbmmon_ctx_statistics_func_t
A structure that holds the callback information for context statistics.
lbm_ushort_t mLength
Definition: lbmmon.h:219
lbm_ushort_t mEntryCount
Definition: lbmmon.h:173
int(* lbmmon_rcv_topic_format_deserialize_t)(size_t *Count, lbm_rcv_topic_stats_t *Statistics, const char *Source, size_t Length, unsigned short ModuleID, void *FormatClientData)
Function to deserialize a buffer into an lbm_rcv_topic_stats_t structure.
Definition: lbmmon.h:544
lbmmon_wildcard_rcv_statistics_cb cbfunc
Definition: lbmmon.h:789
LBMExpDLL int lbmmon_rctl_attr_delete(lbmmon_rctl_attr_t *Attributes)
Delete an LBM Monitoring Receive Controller attribute object.
struct lbm_rcv_t_stct lbm_rcv_t
Opaque structure that designates a UM receiver.
Definition: lbm.h:3052
int(* lbmmon_evq_format_serialize_t)(char *Destination, size_t *Size, unsigned short *ModuleID, const lbm_event_queue_stats_t *Statistics, void *FormatClientData)
Function to serialize an lbm_event_queue_stats_t structure.
Definition: lbmmon.h:341
unsigned int lbm_uint_t
For portability.
Definition: lbm.h:1073
void(* lbmmon_evq_statistics_cb)(const void *AttributeBlock, const lbm_event_queue_stats_t *Statistics, void *ClientData)
Client callback function to process a received event queue statistics packet.
Definition: lbmmon.h:715
A structure that holds the callback information for context statistics.
Definition: lbmmon.h:744
Transport module function pointer container.
Definition: lbmmon.h:893
LBMExpDLL int lbmmon_context_monitor(lbmmon_sctl_t *Control, lbm_context_t *Context, const char *ApplicationSourceID, unsigned int Seconds)
Register a context for monitoring.
lbm_ushort_t mType
Definition: lbmmon.h:217
LBMExpDLL int lbmmon_sctl_create(lbmmon_sctl_t **Control, const lbmmon_format_func_t *Format, const void *FormatOptions, const lbmmon_transport_func_t *Transport, const void *TransportOptions)
Create an LBM Monitoring Source Controller.
Statistics attribute block layout. Associated with each statistics message is a set of optional attri...
Definition: lbmmon.h:170
int(* lbmmon_rcv_topic_format_serialize_t)(char *Destination, size_t *Size, unsigned short *ModuleID, const char *Topic, lbm_ulong_t SourceCount, const lbm_rcv_topic_stats_t *Sources, void *FormatClientData)
Function to serialize receiver topic statistics.
Definition: lbmmon.h:514
A structure that holds the callback information for source statistics.
Definition: lbmmon.h:702
Structure that holds statistics for a wildcard receiver.
Definition: lbm.h:4757
LBMExpDLL int lbmmon_rctl_create(lbmmon_rctl_t **Control, const lbmmon_format_func_t *Format, const void *FormatOptions, const lbmmon_transport_func_t *Transport, const void *TransportOptions, lbmmon_rctl_attr_t *Attributes, void *ClientData)
Create an LBM Monitoring Receive Controller.
For internal use only. A structure that holds the callback information for receiver topic statistics...
Definition: lbmmon.h:765
struct lbmmon_evq_statistics_func_t_stct lbmmon_evq_statistics_func_t
A structure that holds the callback information for event queue statistics.
unsigned long int lbm_ulong_t
For portability.
Definition: lbm.h:1075
int(* lbmmon_evq_format_deserialize_t)(lbm_event_queue_stats_t *Statistics, const char *Source, size_t Length, unsigned short ModuleID, void *FormatClientData)
Function to deserialize a buffer into an lbm_event_queue_stats_t structure.
Definition: lbmmon.h:453
Structure that holds statistics for a context.
Definition: lbm.h:4593
void(* lbmmon_ctx_statistics_cb)(const void *AttributeBlock, const lbm_context_stats_t *Statistics, void *ClientData)
Client callback function to process a received context statistics packet.
Definition: lbmmon.h:736
struct lbmmon_transport_func_t_stct lbmmon_transport_func_t
Transport module function pointer container.
int(* lbmmon_src_format_deserialize_t)(lbm_src_transport_stats_t *Statistics, const char *Source, size_t Length, unsigned short ModuleID, void *FormatClientData)
Function to deserialize a buffer into an lbm_src_transport_stats_t structure.
Definition: lbmmon.h:427
lbmmon_src_statistics_cb cbfunc
Definition: lbmmon.h:705
void(* lbmmon_wildcard_rcv_statistics_cb)(const void *AttributeBlock, const lbm_wildcard_rcv_stats_t *Statistics, void *ClientData)
For internal use only. Client callback function to process a received wildcard receiver statistics pa...
Definition: lbmmon.h:778
LBMExpDLL int lbmmon_src_monitor(lbmmon_sctl_t *Control, lbm_src_t *Source, const char *ApplicationSourceID, unsigned int Seconds)
Register a source for monitoring.
const char *(* lbmmon_format_errmsg_t)(void)
Function to return the last error message from a format module.
Definition: lbmmon.h:628
int(* lbmmon_wildcard_rcv_format_deserialize_t)(lbm_wildcard_rcv_stats_t *Statistics, const char *Source, size_t Length, unsigned short ModuleID, void *FormatClientData)
Function to deserialize a buffer into an lbm_wildcard_rcv_stats_t structure.
Definition: lbmmon.h:603
int(* lbmmon_ctx_format_serialize_t)(char *Destination, size_t *Size, unsigned short *ModuleID, const lbm_context_stats_t *Statistics, void *FormatClientData)
Function to serialize an lbm_context_stats_t structure.
Definition: lbmmon.h:374
lbm_ushort_t mDataLength
Definition: lbmmon.h:161
int(* lbmmon_rcv_format_deserialize_t)(lbm_rcv_transport_stats_t *Statistics, const char *Source, size_t Length, unsigned short ModuleID, void *FormatClientData)
Function to deserialize a buffer into an lbm_rcv_transport_stats_t structure.
Definition: lbmmon.h:402
A structure that holds the callback information for event queue statistics.
Definition: lbmmon.h:723
lbm_uint_t mSignature
Definition: lbmmon.h:155
lbmmon_transport_errmsg_t mErrorMessage
Definition: lbmmon.h:908
LBMExpDLL int lbmmon_errnum(void)
Retrieve the error number for the last error encountered.
struct lbmmon_attr_entry_t_stct lbmmon_attr_entry_t
Statistics attribute entry layout. Each attribute entry within the attributes block consists of an en...
uint32_t lbm_uint32_t
For portability.
Definition: lbm.h:1085
A structure that holds the callback information for wildcard receiver statistics. ...
Definition: lbmmon.h:786
lbmmon_transport_send_t mSend
Definition: lbmmon.h:900
int(* lbmmon_transport_send_t)(const char *Data, size_t Length, void *TransportClientData)
Send a statistics packet.
Definition: lbmmon.h:839
LBMExpDLL int lbmmon_evq_unmonitor(lbmmon_sctl_t *Control, lbm_event_queue_t *EventQueue)
Terminate monitoring for an event queue.
lbmmon_transport_initsrc_t mInitSource
Definition: lbmmon.h:896
struct lbm_src_t_stct lbm_src_t
Opaque structure that designates a UM source.
Definition: lbm.h:3039
A structure that holds the callback information for receiver statistics.
Definition: lbmmon.h:681
Structure that holds statistics for receiver transports.
Definition: lbm.h:4249
int(* lbmmon_rcv_format_serialize_t)(char *Destination, size_t *Size, unsigned short *ModuleID, const lbm_rcv_transport_stats_t *Statistics, void *FormatClientData)
Function to serialize an lbm_rcv_transport_stats_t structure.
Definition: lbmmon.h:277
lbm_ushort_t mEntryLength
Definition: lbmmon.h:175
int(* lbmmon_format_finish_t)(void *FormatClientData)
Function to finish format module processing.
Definition: lbmmon.h:622
LBMExpDLL int lbmmon_rcv_monitor(lbmmon_sctl_t *Control, lbm_rcv_t *Receiver, const char *ApplicationSourceID, unsigned int Seconds)
Register a receiver for monitoring.
LBMExpDLL int lbmmon_sctl_sample_ex(lbmmon_sctl_t *Control, const char *ApplicationSourceID)
Extended gather statistics for on-demand objects.
Structure that holds statistics for source transports.
Definition: lbm.h:3721
lbm_ushort_t mType
Definition: lbmmon.h:157
struct lbmmon_src_statistics_func_t_stct lbmmon_src_statistics_func_t
A structure that holds the callback information for source statistics.
struct lbm_context_t_stct lbm_context_t
Context object (opaque) for UM.
Definition: lbm.h:1110
int(* lbmmon_transport_receive_t)(char *Data, size_t *Length, unsigned int TimeoutMS, void *TransportClientData)
Receive statistics data.
Definition: lbmmon.h:860
struct lbmmon_rcv_statistics_func_t_stct lbmmon_rcv_statistics_func_t
A structure that holds the callback information for receiver statistics.
LBMExpDLL int lbmmon_context_unmonitor(lbmmon_sctl_t *Control, lbm_context_t *Context)
Terminate monitoring for a context.
LBMExpDLL int lbmmon_attr_get_contextid(const void *AttributeBlock, lbm_ulong_t *ContextID)
Retrieve the context ID attribute from the statistics attribute block.
lbm_ushort_t mFiller
Definition: lbmmon.h:163