]> git.ipfire.org Git - thirdparty/rrdtool-1.x.git/commitdiff
Extend rrdcached client API to be able to also send FORGET and other
authorPeter Stamfest <peter@stamfest.at>
Mon, 24 Feb 2014 19:06:32 +0000 (20:06 +0100)
committerPeter Stamfest <peter@stamfest.at>
Wed, 26 Feb 2014 10:29:00 +0000 (11:29 +0100)
filename based commands easily

src/rrd_client.c
src/rrd_client.h

index d796a2bdf7939ed060b3e887ad7d8ea829a6d8d6..d1b22eb418a2ccdc99adfd5511f1fb9bed6e97d9 100644 (file)
@@ -615,6 +615,11 @@ int rrdc_is_connected(const char *daemon_addr) /* {{{ */
 
 } /* }}} int rrdc_is_connected */
 
+/* determine whether we are connected to any daemon */
+int rrdc_is_any_connected(void) {
+  return sd >= 0;
+}
+
 static int rrdc_connect_unix (const char *path) /* {{{ */
 {
 #ifdef WIN32
@@ -888,7 +893,8 @@ int rrdc_update (const char *filename, int values_num, /* {{{ */
   return (status);
 } /* }}} int rrdc_update */
 
-int rrdc_flush (const char *filename) /* {{{ */
+static int rrdc_filebased_command (const char *command, 
+                                   const char *filename) /* {{{ */
 {
   char buffer[RRD_CMD_MAX];
   char *buffer_ptr;
@@ -905,7 +911,7 @@ int rrdc_flush (const char *filename) /* {{{ */
   buffer_ptr = &buffer[0];
   buffer_free = sizeof (buffer);
 
-  status = buffer_add_string ("flush", &buffer_ptr, &buffer_free);
+  status = buffer_add_string (command, &buffer_ptr, &buffer_free);
   if (status != 0)
     return (ENOBUFS);
 
@@ -942,6 +948,14 @@ int rrdc_flush (const char *filename) /* {{{ */
   return (status);
 } /* }}} int rrdc_flush */
 
+int rrdc_flush (const char *filename) {
+  return rrdc_filebased_command("flush", filename);
+}
+
+int rrdc_forget (const char *filename) {
+  return rrdc_filebased_command("forget", filename);
+}
+
 rrd_info_t * rrdc_info (const char *filename) /* {{{ */
 {
   char buffer[RRD_CMD_MAX];
index 5697963c4ebe0a75d34a08239f567313805e4356..af66d775c1cb0992957d621596dca37176db2be2 100644 (file)
@@ -44,6 +44,7 @@
 
 int rrdc_connect (const char *addr);
 int rrdc_is_connected(const char *daemon_addr);
+int rrdc_is_any_connected(void);
 int rrdc_disconnect (void);
 
 int rrdc_update (const char *filename, int values_num,
@@ -61,6 +62,7 @@ int rrdc_create (const char *filename,
 
 
 int rrdc_flush (const char *filename);
+int rrdc_forget (const char *filename);
 int rrdc_flush_if_daemon (const char *opt_daemon, const char *filename);
 
 int rrdc_fetch (const char *filename,