jcr->JobStatus == JS_ErrorTerminated || \
jcr->JobStatus == JS_FatalError)
+#define job_waiting(jcr) \
+ (jcr->JobStatus == JS_WaitFD || \
+ jcr->JobStatus == JS_WaitSD || \
+ jcr->JobStatus == JS_WaitMedia || \
+ jcr->JobStatus == JS_WaitMount || \
+ jcr->JobStatus == JS_WaitStoreRes || \
+ jcr->JobStatus == JS_WaitJobRes || \
+ jcr->JobStatus == JS_WaitClientRes|| \
+ jcr->JobStatus == JS_WaitMaxJobs || \
+ jcr->JobStatus == JS_WaitPriority || \
+ jcr->SDJobStatus == JS_WaitMedia || \
+ jcr->SDJobStatus == JS_WaitMount || \
+ jcr->SDJobStatus == JS_WaitMaxJobs)
+
+
+
#define foreach_jcr(jcr) \
for (jcr=jcr_walk_start(); jcr; (jcr=jcr_walk_next(jcr)) )
/* Forward referenced structures */
class JCR;
-class htable;
struct FF_PKT;
struct B_DB;
struct ATTR_DBR;
struct save_pkt;
#ifdef FILE_DAEMON
+class htable;
+
struct CRYPTO_CTX {
bool pki_sign; /* Enable PKI Signatures? */
bool pki_encrypt; /* Enable PKI Encryption? */
time_t start_time; /* when job actually started */
time_t run_time; /* used for computing speed */
time_t end_time; /* job end time */
+ time_t wait_time; /* when job have started to wait */
POOLMEM *client_name; /* client name */
POOLMEM *RestoreBootstrap; /* Bootstrap file to restore */
POOLMEM *stime; /* start time for incremental/differential */
int replace; /* Replace option */
int NumVols; /* Number of Volume used in pool */
int reschedule_count; /* Number of times rescheduled */
+ int FDVersion; /* File daemon version number */
int64_t spool_size; /* Spool size for this job */
bool spool_data; /* Spool data in SD */
bool acquired_resource_locks; /* set if resource locks acquired */
bool unlink_bsr; /* Unlink bsr file created */
bool VSS; /* VSS used by FD */
bool Encrypt; /* Encryption used by FD */
+ bool stats_enabled; /* Keep all job records in a table for long term statistics */
#endif /* DIRECTOR_DAEMON */
CRYPTO_CTX crypto; /* Crypto ctx */
DIRRES* director; /* Director resource */
bool VSS; /* VSS used by FD */
+#ifdef USE_TCADB
+ TCADB *file_list; /* Previous file list (accurate mode) */
+ POOLMEM *hash_name;
+#else
htable *file_list; /* Previous file list (accurate mode) */
+#endif
#endif /* FILE_DAEMON */