]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/stored/bsr.h
24Mar06
[bacula/bacula] / bacula / src / stored / bsr.h
index 780ca3d0375b7d34e73453880ed5d8cf9c50c996..b7f49a623b91bcccac3a4171c361acf3729003b3 100644 (file)
@@ -7,22 +7,17 @@
  *
  */
 /*
-   Copyright (C) 2000-2003 Kern Sibbald and John Walker
+   Copyright (C) 2002-2006 Kern Sibbald
 
    This program is free software; you can redistribute it and/or
-   modify it under the terms of the GNU General Public License as
-   published by the Free Software Foundation; either version 2 of
-   the License, or (at your option) any later version.
+   modify it under the terms of the GNU General Public License
+   version 2 as amended with additional clauses defined in the
+   file LICENSE in the main source directory.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   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 along with this program; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-   MA 02111-1307, USA.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
+   the file LICENSE for additional details.
 
  */
 
 
 /*
  * List of Volume names to be read by Storage daemon.
- *  Formed by Storage daemon from BSR  
+ *  Formed by Storage daemon from BSR
  */
 struct VOL_LIST {
    VOL_LIST *next;
    char VolumeName[MAX_NAME_LENGTH];
-   int Slot; 
-   int start_file;
+   char MediaType[MAX_NAME_LENGTH];
+   char device[MAX_NAME_LENGTH];   /* ***FIXME*** use alist here */
+   int Slot;
+   uint32_t start_file;
 };
 
 
@@ -54,12 +51,15 @@ struct VOL_LIST {
 struct BSR_VOLUME {
    BSR_VOLUME *next;
    char VolumeName[MAX_NAME_LENGTH];
-};           
+   char MediaType[MAX_NAME_LENGTH];
+   char device[MAX_NAME_LENGTH];   /* ***FIXME*** use alist here */
+   int32_t       Slot;                /* Slot */
+};
 
 struct BSR_CLIENT {
    BSR_CLIENT *next;
    char ClientName[MAX_NAME_LENGTH];
-};           
+};
 
 struct BSR_SESSID {
    BSR_SESSID *next;
@@ -71,7 +71,7 @@ struct BSR_SESSTIME {
    BSR_SESSTIME *next;
    uint32_t sesstime;
    bool done;                         /* local done */
-};             
+};
 
 struct BSR_VOLFILE {
    BSR_VOLFILE *next;
@@ -85,7 +85,7 @@ struct BSR_VOLBLOCK {
    uint32_t sblock;                   /* start block */
    uint32_t eblock;                   /* end block */
    bool done;                         /* local done */
-};             
+};
 
 
 struct BSR_FINDEX {
@@ -93,23 +93,23 @@ struct BSR_FINDEX {
    int32_t findex;                    /* start file index */
    int32_t findex2;                   /* end file index */
    bool done;                         /* local done */
-};           
+};
 
 struct BSR_JOBID {
    BSR_JOBID *next;
    uint32_t JobId;
    uint32_t JobId2;
-};          
+};
 
 struct BSR_JOBTYPE {
    BSR_JOBTYPE *next;
    uint32_t JobType;
-};            
+};
 
 struct BSR_JOBLEVEL {
    BSR_JOBLEVEL *next;
    uint32_t JobLevel;
-};             
+};
 
 struct BSR_JOB {
    BSR_JOB *next;
@@ -120,15 +120,17 @@ struct BSR_JOB {
 struct BSR_STREAM {
    BSR_STREAM *next;
    int32_t stream;                    /* stream desired */
-};           
+};
 
 struct BSR {
    BSR          *next;                /* pointer to next one */
-   bool          done;                /* set when everything found */
+   BSR          *root;                /* root bsr */
+   bool          reposition;          /* set when any bsr is marked done */
+   bool          mount_next_volume;   /* set when next volume should be mounted */
+   bool          done;                /* set when everything found for this bsr */
    bool          use_fast_rejection;  /* set if fast rejection can be used */
    bool          use_positioning;     /* set if we can position the archive */
    BSR_VOLUME   *volume;
-   int32_t       Slot;                /* Slot */
    uint32_t      count;               /* count of files to restore this bsr */
    uint32_t      found;               /* count of restored files this bsr */
    BSR_VOLFILE  *volfile;