]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/jcr.h
ebl add Error status in update volume=xxx status=yyyy
[bacula/bacula] / bacula / src / jcr.h
index effa5580a048254544ddf42e979e1339650d9c11..8d15a91ef9a6d1bf1f5aeb991385244a468132a1 100644 (file)
@@ -9,19 +9,32 @@
  *   Version $Id$
  */
 /*
-   Copyright (C) 2000-2006 Kern Sibbald
+   Bacula® - The Network Backup Solution
 
-   This program is free software; you can redistribute it and/or
-   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.
+   Copyright (C) 2000-2006 Free Software Foundation Europe e.V.
 
-   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 
-   the file LICENSE for additional details.
+   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
+   License as published by the Free Software Foundation plus additions
+   that are listed in the file LICENSE.
 
- */
+   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., 51 Franklin Street, Fifth Floor, Boston, MA
+   02110-1301, USA.
+
+   Bacula® is a registered trademark of John Walker.
+   The licensor of Bacula is the Free Software Foundation Europe
+   (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich,
+   Switzerland, email:ftf@fsfeurope.org.
+*/
 
 
 #ifndef __JCR_H_
@@ -43,6 +56,7 @@
 
 /* Job Types. These are stored in the DB */
 #define JT_BACKUP                'B'  /* Backup Job */
+#define JT_MIGRATED_JOB          'M'  /* A previous backup job that was migrated */
 #define JT_VERIFY                'V'  /* Verify Job */
 #define JT_RESTORE               'R'  /* Restore Job */
 #define JT_CONSOLE               'c'  /* console program */
@@ -50,7 +64,7 @@
 #define JT_ADMIN                 'D'  /* admin job */
 #define JT_ARCHIVE               'A'  /* Archive Job */
 #define JT_COPY                  'C'  /* Copy Job */
-#define JT_MIGRATE               'M'  /* Migration Job */
+#define JT_MIGRATE               'g'  /* Migration Job */
 #define JT_SCAN                  'S'  /* Scan Job */
 
 /* Job Status. Some of these are stored in the DB */
@@ -113,13 +127,13 @@ private:
    pthread_mutex_t mutex;             /* jcr mutex */
    volatile int _use_count;           /* use count */
 public:
-   void inc_use_count(void) {P(mutex); _use_count++; V(mutex); };
-   void dec_use_count(void) {P(mutex); _use_count--; V(mutex); };
+   void lock() {P(mutex); };
+   void unlock() {V(mutex); };
+   void inc_use_count(void) {lock(); _use_count++; unlock(); };
+   void dec_use_count(void) {lock(); _use_count--; unlock(); };
    int  use_count() { return _use_count; };
    void init_mutex(void) {pthread_mutex_init(&mutex, NULL); };
    void destroy_mutex(void) {pthread_mutex_destroy(&mutex); };
-   void lock() {P(mutex); };
-   void unlock() {V(mutex); };
    bool is_job_canceled() {return job_canceled(this); };
 
    /* Global part of JCR common to all daemons */
@@ -184,8 +198,10 @@ public:
    BSOCK *ua;                         /* User agent */
    JOB *job;                          /* Job resource */
    JOB *verify_job;                   /* Job resource of verify previous job */
-   alist *storage;                    /* Storage possibilities */
-   STORE *store;                      /* Storage daemon selected */
+   alist *rstorage;                   /* Read storage possibilities */
+   STORE *rstore;                     /* Selected read storage */
+   alist *wstorage;                   /* Write storage possibilities */
+   STORE *wstore;                     /* Selected write storage */
    CLIENT *client;                    /* Client resource */
    POOL *pool;                        /* Pool resource */
    POOL *full_pool;                   /* Full backup pool resource */
@@ -211,7 +227,7 @@ public:
    JOB_DBR jr;                        /* Job DB record for current job */
    JOB_DBR previous_jr;               /* previous job database record */
    JOB *previous_job;                 /* Job resource of migration previous job */
-   JCR *previous_jcr;                 /* previous job control record */
+   JCR *mig_jcr;                      /* JCR for migration/copy job */
    char FSCreateTime[MAX_TIME_LENGTH]; /* FileSet CreateTime as returned from DB */
    char since[MAX_TIME_LENGTH];       /* since time */
    union {
@@ -272,7 +288,10 @@ public:
    uint8_t *pki_session_encoded;      /* Cached DER-encoded copy of pki_session */
    int32_t pki_session_encoded_size;  /* Size of DER-encoded pki_session */
    POOLMEM *crypto_buf;               /* Encryption/Decryption buffer */
+   int32_t crypto_count;              /* Count of bytes currently in crypto_buf */
+   int32_t crypto_size;               /* Total bytes in packet */
    DIRRES* director;                  /* Director resource */
+   bool runscript_after;              /* Don't run After Script twice */
 #endif /* FILE_DAEMON */
 
 
@@ -350,7 +369,7 @@ struct s_last_job {
 };
 
 extern struct s_last_job last_job;
-extern dlist *last_jobs;
+extern DLL_IMP_EXP dlist * last_jobs;
 
 
 /* The following routines are found in lib/jcr.c */
@@ -362,6 +381,7 @@ extern JCR *get_jcr_by_partial_name(char *Job);
 extern JCR *get_jcr_by_full_name(char *Job);
 extern JCR *get_next_jcr(JCR *jcr);
 extern void set_jcr_job_status(JCR *jcr, int JobStatus);
+extern int DLL_IMP_EXP num_jobs_run;
 
 #ifdef DEBUG
 extern void b_free_jcr(const char *file, int line, JCR *jcr);