]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/plugins/fd/example-plugin-fd.c
More plugin implementation
[bacula/bacula] / bacula / src / plugins / fd / example-plugin-fd.c
index fd5e6326c0b89eac42fd4d03227f4f06a21f09ce..b87a448264ed26d9509d9c99b764603a67209ebf 100644 (file)
@@ -32,7 +32,7 @@
  *
  */
 #include <stdio.h>
-#include "plugin-fd.h"
+#include "fd-plugins.h"
 
 #ifdef __cplusplus
 extern "C" {
@@ -49,7 +49,7 @@ static bpError newPlugin(bpContext *ctx);
 static bpError freePlugin(bpContext *ctx);
 static bpError getPluginValue(bpContext *ctx, pVariable var, void *value);
 static bpError setPluginValue(bpContext *ctx, pVariable var, void *value);
-static bpError handlePluginEvent(bpContext *ctx, bEvent *event);
+static bpError handlePluginEvent(bpContext *ctx, bEvent *event, void *value);
 
 
 /* Pointers to Bacula functions */
@@ -58,7 +58,7 @@ static bInfo  *binfo = NULL;
 
 static pInfo pluginInfo = {
    sizeof(pluginInfo),
-   PLUGIN_INTERFACE,
+   PLUGIN_INTERFACE_VERSION,
    PLUGIN_MAGIC,
    PLUGIN_LICENSE,
    PLUGIN_AUTHOR,
@@ -69,7 +69,7 @@ static pInfo pluginInfo = {
 
 static pFuncs pluginFuncs = {
    sizeof(pluginFuncs),
-   PLUGIN_INTERFACE,
+   PLUGIN_INTERFACE_VERSION,
 
    /* Entry points into plugin */
    newPlugin,                         /* new plugin instance */
@@ -83,7 +83,7 @@ bpError loadPlugin(bInfo *lbinfo, bFuncs *lbfuncs, pInfo **pinfo, pFuncs **pfunc
 {
    bfuncs = lbfuncs;                  /* set Bacula funct pointers */
    binfo  = lbinfo;
-   printf("plugin: Loaded: size=%d version=%d\n", bfuncs->size, bfuncs->interface);
+   printf("plugin: Loaded: size=%d version=%d\n", bfuncs->size, bfuncs->version);
 
    *pinfo  = &pluginInfo;             /* return pointer to our info */
    *pfuncs = &pluginFuncs;            /* return pointer to our functions */
@@ -101,7 +101,7 @@ static bpError newPlugin(bpContext *ctx)
 {
    int JobId = 0;
    bfuncs->getBaculaValue(ctx, bVarJobId, (void *)&JobId);
-   printf("plugin: newPlugin JobId=%d\n", JobId);
+// printf("plugin: newPlugin JobId=%d\n", JobId);
    bfuncs->registerBaculaEvents(ctx, 1, 2, 0);
    return 0;
 }
@@ -110,28 +110,54 @@ static bpError freePlugin(bpContext *ctx)
 {
    int JobId = 0;
    bfuncs->getBaculaValue(ctx, bVarJobId, (void *)&JobId);
-   printf("plugin: freePlugin JobId=%d\n", JobId);
+// printf("plugin: freePlugin JobId=%d\n", JobId);
    return 0;
 }
 
 static bpError getPluginValue(bpContext *ctx, pVariable var, void *value) 
 {
-   printf("plugin: getPluginValue var=%d\n", var);
+// printf("plugin: getPluginValue var=%d\n", var);
    return 0;
 }
 
 static bpError setPluginValue(bpContext *ctx, pVariable var, void *value) 
 {
-   printf("plugin: setPluginValue var=%d\n", var);
+// printf("plugin: setPluginValue var=%d\n", var);
    return 0;
 }
 
-static bpError handlePluginEvent(bpContext *ctx, bEvent *event
+static bpError handlePluginEvent(bpContext *ctx, bEvent *event, void *value)
 {
    char *name;
-   printf("plugin: HandleEvent Event=%d\n", event->eventType);
+   switch (event->eventType) {
+   case bEventJobStart:
+      printf("plugin: JobStart=%s\n", (char *)value);
+      break;
+   case bEventJobEnd:
+      printf("plugin: JobEnd\n");
+      break;
+   case bEventBackupStart:
+      printf("plugin: BackupStart\n");
+      break;
+   case bEventBackupEnd:
+      printf("plugin: BackupEnd\n");
+      break;
+   case bEventPluginCommand:
+      printf("plugin: command=%s\n", (char *)value);
+      break;
+   case bEventLevel:
+      printf("plugin: JobLevel=%c %d\n", (int)value, (int)value);
+      break;
+   case bEventSince:
+      printf("plugin: since=%d\n", (int)value);
+      break;
+   default:
+      printf("plugin: unknown event=%d\n", event->eventType);
+   }
    bfuncs->getBaculaValue(ctx, bVarFDName, (void *)&name);
-   printf("FD Name=%s\n", name);
+// printf("FD Name=%s\n", name);
+// bfuncs->JobMessage(ctx, __FILE__, __LINE__, 1, 0, "JobMesssage message");
+// bfuncs->DebugMessage(ctx, __FILE__, __LINE__, 1, "DebugMesssage message");
    return 0;
 }