/** \file lbmmontrudp.h
\brief Ultra Messaging (UM) Monitoring API
\author David K. Ameiss - Informatica Inc.
\version $Id: //UMprod/REL_6_16_1/29West/lbm/src/mon/lbm/lbmmontrudp.h#1 $
The Ultra Messaging (UM) Monitoring API Description. Included
are types, constants, and functions related to the API. Contents are
subject to change.
All of the documentation and software included in this and any
other Informatica Inc. Ultra Messaging Releases
Copyright (C) Informatica Inc. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted only as covered by the terms of a
valid software license agreement with Informatica Inc.
(C) Copyright 2006,2023 Informatica Inc. All Rights Reserved.
THE SOFTWARE IS PROVIDED "AS IS" AND INFORMATICA DISCLAIMS ALL WARRANTIES
EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION, ANY IMPLIED WARRANTIES OF
NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR
PURPOSE. INFORMATICA DOES NOT WARRANT THAT USE OF THE SOFTWARE WILL BE
UNINTERRUPTED OR ERROR-FREE. INFORMATICA SHALL NOT, UNDER ANY CIRCUMSTANCES, BE
LIABLE TO LICENSEE FOR LOST PROFITS, CONSEQUENTIAL, INCIDENTAL, SPECIAL OR
INDIRECT DAMAGES ARISING OUT OF OR RELATED TO THIS AGREEMENT OR THE
TRANSACTIONS CONTEMPLATED HEREUNDER, EVEN IF INFORMATICA HAS BEEN APPRISED OF
THE LIKELIHOOD OF SUCH DAMAGES.
*/
#ifndef LBMMONTRUDP_H
#define LBMMONTRUDP_H
#include <stdlib.h>
#ifdef _WIN32
#include <winsock2.h>
#endif
#include <lbm/lbmmon.h>
#if defined(__cplusplus)
extern "C" {
#endif /* __cplusplus */
/*! \brief Return a pointer to the LBMMON_TRANSPORT_UDP module structure.
\return Pointer to LBMMON_TRANSPORT_UDP.
*/
LBMExpDLL const lbmmon_transport_func_t * lbmmon_transport_udp_module(void);
/*! \brief Initialize the UDP transport module to send statistics.
\param TransportClientData A pointer which may be filled in (by this function) with
a pointer to transport-specific client data.
\param TransportOptions The TransportOptions argument originally passed to
lbmmon_sctl_create().
\return Zero if successful, -1 otherwise.
*/
LBMExpDLL int lbmmon_transport_udp_initsrc(void * * TransportClientData,
const void * TransportOptions);
/*! \brief Initialize the UDP transport module to receive statistics.
\param TransportClientData A pointer which may be filled in (by this function) with
a pointer to transport-specific client data.
\param TransportOptions The TransportOptions argument originally passed to
lbmmon_sctl_create().
\return Zero if successful, -1 otherwise.
*/
LBMExpDLL int lbmmon_transport_udp_initrcv(void * * TransportClientData,
const void * TransportOptions);
/*! \brief Send a statistics packet.
\param Data The data to be sent.
\param Length The length of the data.
\param TransportClientData A pointer to transport-specific client data.
\return Zero if successful, -1 otherwise.
*/
LBMExpDLL int lbmmon_transport_udp_send(const char * Data,
size_t Length,
void * TransportClientData);
/*! \brief Receive statistics packet data.
\param Data A pointer to a buffer to receive the packet data.
\param Length A pointer to a size_t. On entry, it contains the maximum number of bytes
to receive. On exit, it contains the actual number of bytes received.
\param TimeoutMS Maximum timeout in milliseconds. If no data is available within
the timeout value, return.
\param TransportClientData A pointer to transport-specific client data.
\return Zero if successful, -1 otherwise.
*/
LBMExpDLL int lbmmon_transport_udp_receive(char * Data,
size_t * Length,
unsigned int TimeoutMS,
void * TransportClientData);
/*! \brief Finish UDP transport module source processing.
\param TransportClientData A pointer to transport-specific client data.
\return Zero if successful, -1 otherwise.
*/
LBMExpDLL int lbmmon_transport_udp_src_finish(void * TransportClientData);
/*! \brief Finish UDP transport module receiver processing.
\param TransportClientData A pointer to transport-specific client data.
\return Zero if successful, -1 otherwise.
*/
LBMExpDLL int lbmmon_transport_udp_rcv_finish(void * TransportClientData);
/*! \brief Return a messages describing the last error encountered.
\return A string containing a description of the last error encountered by the module.
*/
LBMExpDLL const char * lbmmon_transport_udp_errmsg(void);
#if defined(__cplusplus)
}
#endif /* __cplusplus */
#endif