perl plugin: Pass on identifiers to Perl flush callbacks.
authorSebastian Harl <sh@tokkee.org>
Thu, 21 Aug 2008 08:47:18 +0000 (10:47 +0200)
committerFlorian Forster <octo@huhu.verplant.org>
Thu, 21 Aug 2008 09:12:59 +0000 (11:12 +0200)
Signed-off-by: Sebastian Harl <sh@tokkee.org>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
src/collectd-perl.pod
src/perl.c

index dac80bf..7cd5d72 100644 (file)
@@ -263,8 +263,9 @@ string. For the layout of I<data-set> and I<value-list> see above.
 
 =item TYPE_FLUSH
 
-The only argument passed is I<timeout> which indicates that only data older
-than I<timeout> seconds is to be flushed.
+The arguments passed are I<timeout> and I<identifier>. I<timeout> indicates
+that only data older than I<timeout> seconds is to be flushed. I<identifier>
+specifies which values are to be flushed.
 
 =item TYPE_LOG
 
index e6bb25e..8106360 100644 (file)
@@ -767,8 +767,10 @@ static int pplugin_call_all (pTHX_ int type, ...)
        else if (PLUGIN_FLUSH == type) {
                /*
                 * $_[0] = $timeout;
+                * $_[1] = $identifier;
                 */
                XPUSHs (sv_2mortal (newSViv (va_arg (ap, int))));
+               XPUSHs (sv_2mortal (newSVpv (va_arg (ap, char *), 0)));
        }
 
        PUTBACK;
@@ -1263,7 +1265,6 @@ static int perl_notify (const notification_t *notif)
        return pplugin_call_all (aTHX_ PLUGIN_NOTIF, notif);
 } /* static int perl_notify (const notification_t *) */
 
-/* TODO: Implement flushing of single identifiers. */
 static int perl_flush (int timeout, const char *identifier)
 {
        dTHX;
@@ -1280,7 +1281,7 @@ static int perl_flush (int timeout, const char *identifier)
 
                aTHX = t->interp;
        }
-       return pplugin_call_all (aTHX_ PLUGIN_FLUSH, timeout);
+       return pplugin_call_all (aTHX_ PLUGIN_FLUSH, timeout, identifier);
 } /* static int perl_flush (const int) */
 
 static int perl_shutdown (void)