X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Frrd_client.h;h=58f5473c7cf4d3becefa8dcf6a7792350df35035;hb=bc1d8aeea1af6821c1530188d8bd1cb465ad8285;hp=92d4c07cb0a6f592bd6f8767284c652207123169;hpb=ac630adec930653637199258efd99024d49325c7;p=rrdtool.git diff --git a/src/rrd_client.h b/src/rrd_client.h index 92d4c07..58f5473 100644 --- a/src/rrd_client.h +++ b/src/rrd_client.h @@ -1,6 +1,6 @@ /** * RRDTool - src/rrd_client.h - * Copyright (C) 2008 Florian octo Forster + * Copyright (C) 2008-2010 Florian octo Forster * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the @@ -22,6 +22,29 @@ #ifndef __RRD_CLIENT_H #define __RRD_CLIENT_H 1 +#ifndef WIN32 +# ifdef HAVE_STDINT_H +# include +# else +# ifdef HAVE_INTTYPES_H +# include +# else +# error "you should have stdint.h or inttypes.h to compile this" +# endif +# endif +#else +# include + typedef signed char int8_t; + typedef unsigned char uint8_t; + typedef signed int int16_t; + typedef unsigned int uint16_t; + typedef signed long int int32_t; + typedef unsigned long int uint32_t; + typedef signed long long int int64_t; + typedef unsigned long long int uint64_t; +#endif + + #ifndef RRDCACHED_DEFAULT_ADDRESS # define RRDCACHED_DEFAULT_ADDRESS "unix:/tmp/rrdcached.sock" #endif @@ -29,12 +52,56 @@ #define RRDCACHED_DEFAULT_PORT "42217" #define ENV_RRDCACHED_ADDRESS "RRDCACHED_ADDRESS" + +// Windows version has no daemon/client support + +#ifndef WIN32 int rrdc_connect (const char *addr); +int rrdc_is_connected(const char *daemon_addr); int rrdc_disconnect (void); int rrdc_update (const char *filename, int values_num, const char * const *values); int rrdc_flush (const char *filename); +int rrdc_flush_if_daemon (const char *opt_daemon, const char *filename); + +int rrdc_fetch (const char *filename, + const char *cf, + time_t *ret_start, time_t *ret_end, + unsigned long *ret_step, + unsigned long *ret_ds_num, + char ***ret_ds_names, + rrd_value_t **ret_data); + +#else +# define rrdc_flush_if_daemon(a,b) 0 +# define rrdc_connect(a) 0 +# define rrdc_is_connected(a) 0 +# define rrdc_flush(a) 0 +# define rrdc_update(a,b,c) 0 +#endif + +struct rrdc_stats_s +{ + const char *name; + uint16_t type; +#define RRDC_STATS_TYPE_GAUGE 0x0001 +#define RRDC_STATS_TYPE_COUNTER 0x0002 + uint16_t flags; + union + { + uint64_t counter; + double gauge; + } value; + struct rrdc_stats_s *next; +}; +typedef struct rrdc_stats_s rrdc_stats_t; + +int rrdc_stats_get (rrdc_stats_t **ret_stats); +void rrdc_stats_free (rrdc_stats_t *ret_stats); #endif /* __RRD_CLIENT_H */ +/* + * vim: set sw=2 sts=2 ts=8 et fdm=marker : + */