index e4aa759df1a8c0131bdc8fd155b0b3dd554ecc65..36b1d4d28a3debe925c8074d06bf1285c2c7c9ea 100644 (file)
#ifndef LIBCOLLECTD_COLLECTDCLIENT_H
#define LIBCOLLECTD_COLLECTDCLIENT_H 1
+#include "lcc_features.h"
+
/*
* Includes (for data types)
*/
-#include <stdint.h>
+#if HAVE_STDINT_H
+# include <stdint.h>
+#endif
#include <inttypes.h>
#include <time.h>
/*
* Defines
*/
-#define LCC_VERSION 0
#define LCC_NAME_LEN 64
#define LCC_DEFAULT_PORT "25826"
/*
* Types
*/
+#define LCC_TYPE_COUNTER 0
+#define LCC_TYPE_GAUGE 1
+#define LCC_TYPE_DERIVE 2
+#define LCC_TYPE_ABSOLUTE 3
+
+LCC_BEGIN_DECLS
+
typedef uint64_t counter_t;
typedef double gauge_t;
+typedef uint64_t derive_t;
+typedef uint64_t absolute_t;
union value_u
{
counter_t counter;
gauge_t gauge;
+ derive_t derive;
+ absolute_t absolute;
};
typedef union value_u value_t;
struct lcc_value_list_s
{
value_t *values;
+ int *values_types;
size_t values_len;
time_t time;
int interval;
lcc_identifier_t identifier;
};
typedef struct lcc_value_list_s lcc_value_list_t;
-#define LCC_VALUE_LIST_INIT { NULL, 0, 0, 0, LCC_IDENTIFIER_INIT }
+#define LCC_VALUE_LIST_INIT { NULL, NULL, 0, 0, 0, LCC_IDENTIFIER_INIT }
struct lcc_connection_s;
typedef struct lcc_connection_s lcc_connection_t;
int lcc_putval (lcc_connection_t *c, const lcc_value_list_t *vl);
-int lcc_flush (lcc_connection_t *c, lcc_identifier_t *ident, int timeout);
+int lcc_flush (lcc_connection_t *c, const char *plugin,
+ lcc_identifier_t *ident, int timeout);
int lcc_listval (lcc_connection_t *c,
lcc_identifier_t **ret_ident, size_t *ret_ident_num);
int lcc_string_to_identifier (lcc_connection_t *c,
lcc_identifier_t *ident, const char *string);
+int lcc_sort_identifiers (lcc_connection_t *c,
+ lcc_identifier_t *idents, size_t idents_num);
+
+LCC_END_DECLS
+
/* vim: set sw=2 sts=2 et : */
#endif /* LIBCOLLECTD_COLLECTDCLIENT_H */