]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/filed/fd_plugins.h
Pass Delta Sequence to save_pkt and restore_pkt
[bacula/bacula] / bacula / src / filed / fd_plugins.h
index adf82df4c50f68f17306ce368f581c886ccacce0..9975a9f3e3690c7e9b0712ff755e411f931d671a 100644 (file)
@@ -6,7 +6,7 @@
    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.
@@ -81,7 +81,9 @@ struct restore_object_pkt {
    char *object;                      /* restore object data to save */
    int32_t object_type;               /* FT_xx for this file */             
    int32_t object_len;                /* restore object length */
+   int32_t object_full_len;           /* restore object uncompressed length */
    int32_t object_index;              /* restore object index */
+   int32_t object_compression;        /* set to compression type */
    int32_t stream;                    /* attribute stream id */
    uint32_t JobId;                    /* JobId object came from */
    int32_t pkt_end;                   /* end packet sentinel */
@@ -99,10 +101,12 @@ struct save_pkt {
    uint32_t flags;                    /* Bacula internal flags */
    bool portable;                     /* set if data format is portable */
    char *cmd;                         /* command */
+   uint32_t delta_seq;                /* Delta sequence number */
    char *object_name;                 /* Object name to create */
    char *object;                      /* restore object data to save */
    int32_t object_len;                /* restore object length */
    int32_t index;                     /* restore object index */
+   int32_t delta_seq;                 /* Delta sequence number */
    int32_t pkt_end;                   /* end packet sentinel */
 };
 
@@ -125,6 +129,7 @@ struct restore_pkt {
    const char *RegexWhere;            /* regex where */
    int replace;                       /* replace flag */
    int create_status;                 /* status from createFile() */
+   int32_t delta_seq;                 /* Delta sequence number */
    int32_t pkt_end;                   /* end packet sentinel */
 };
 
@@ -172,7 +177,11 @@ typedef enum {
   bVarAccurate  = 9,
   bVarFileSeen  = 10,
   bVarVssObject = 11,
-  bVarVssDllHandle = 12
+  bVarVssDllHandle = 12,
+  bVarWorkingDir = 13,
+  bVarWhere      = 14,
+  bVarRegexWhere = 15,
+  bVarExePath    = 16
 } bVariable;
 
 /* Events that are passed to plugin */
@@ -189,11 +198,14 @@ typedef enum {
   bEventRestoreCommand                  = 10,
   bEventLevel                           = 11,
   bEventSince                           = 12,
-  bEventCancelCommand                   = 13,
+  bEventCancelCommand                   = 13, /* Executed by another thread */
   bEventVssBackupAddComponents          = 14,
   bEventVssRestoreLoadComponentMetadata = 15,
   bEventVssRestoreSetComponentsSelected = 16,
   bEventRestoreObject                   = 17,
+  bEventEndFileSet                      = 18,
+  bEventPluginCommand                   = 19, /* Sent during FileSet creation */
+  bEventVssBeforeCloseRestore           = 20
 } bEventType;
 
 typedef struct s_bEvent {
@@ -243,6 +255,13 @@ typedef struct s_baculaFuncs {
        size_t size);
    void (*baculaFree)(bpContext *ctx, const char *file, int line, void *mem);
    bRC (*AddExclude)(bpContext *ctx, const char *file);
+   bRC (*AddInclude)(bpContext *ctx, const char *file);
+   bRC (*AddOptions)(bpContext *ctx, const char *opts);
+   bRC (*AddRegex)(bpContext *ctx, const char *item, int type);
+   bRC (*AddWild)(bpContext *ctx, const char *item, int type);
+   bRC (*NewOptions)(bpContext *ctx);
+   bRC (*NewInclude)(bpContext *ctx);
+   bRC (*checkChanges)(bpContext *ctx, struct save_pkt *sp);
 } bFuncs;
 
 
@@ -261,7 +280,7 @@ typedef enum {
 
 
 #define FD_PLUGIN_MAGIC     "*FDPluginData*" 
-#define FD_PLUGIN_INTERFACE_VERSION  4
+#define FD_PLUGIN_INTERFACE_VERSION  5
 
 typedef struct s_pluginInfo {
    uint32_t size;