]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/lib/plugins.h
First cut of bat rerun a Job from Jobs Run
[bacula/bacula] / bacula / src / lib / plugins.h
index 456b5fc6994cf92f0e13fe9c70493ac49a2620ff..89eb1e086da6d00da35d0746147a1fa62fc14735 100644 (file)
@@ -1,12 +1,12 @@
 /*
    Bacula® - The Network Backup Solution
 
-   Copyright (C) 2007-2008 Free Software Foundation Europe e.V.
+   Copyright (C) 2007-2009 Free Software Foundation Europe e.V.
 
    The main author of Bacula is Kern Sibbald, with contributions from
    many others, a complete list can be found in the file AUTHORS.
    This program is Free Software; you can redistribute it and/or
-   modify it under the terms of version two of the GNU General Public
+   modify it under the terms of version three of the GNU Affero General Public
    License as published by the Free Software Foundation, which is 
    listed in the file LICENSE.
 
@@ -15,7 +15,7 @@
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
    General Public License for more details.
 
-   You should have received a copy of the GNU General Public License
+   You should have received a copy of the GNU Affero General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
@@ -39,7 +39,9 @@
  *                                                                          *
  ****************************************************************************/
 
+#ifndef BUILD_PLUGIN
 extern DLL_IMP_EXP alist *plugin_list;
+#endif
 
 /* Universal return codes from all plugin functions */
 typedef enum {
@@ -47,10 +49,14 @@ typedef enum {
   bRC_Stop   = 1,                        /* Stop calling other plugins */
   bRC_Error  = 2,                        /* Some kind of error */
   bRC_More   = 3,                        /* More files to backup */
-  bRC_Term   = 4                         /* Unload me */
+  bRC_Term   = 4,                        /* Unload me */
+  bRC_Seen   = 5,                        /* Return code from checkFiles */
+
+  bRC_Max    = 9999                      /* Max code Bacula can use */
 } bRC;
 
 
+
 /* Context packet as first argument of all functions */
 struct bpContext {
   void *bContext;                        /* Bacula private context */
@@ -74,8 +80,14 @@ public:
 
 /* Functions */
 extern Plugin *new_plugin();
-extern bool load_plugins(void *binfo, void *bfuncs, const char *plugin_dir, const char *type);
+extern bool load_plugins(void *binfo, void *bfuncs, const char *plugin_dir, 
+        const char *type, bool is_plugin_compatible(Plugin *plugin));
 extern void unload_plugins();
 
+/* Each daemon can register a debug hook that will be called
+ * after a fatal signal
+ */
+typedef void (dbg_plugin_hook_t)(Plugin *plug, FILE *fp);
+extern void dbg_plugin_add_hook(dbg_plugin_hook_t *fct);
 
 #endif /* __PLUGINS_H */