#define JS_Error 'e' /* Non-fatal error */
#define JS_FatalError 'f' /* Fatal error */
#define JS_Differences 'D' /* Verify differences */
-#define JS_Cancelled 'A' /* cancelled by user */
+#define JS_Canceled 'A' /* canceled by user */
#define JS_WaitFD 'F' /* waiting on File daemon */
#define JS_WaitSD 'S' /* waiting on the Storage daemon */
#define JS_WaitMedia 'm' /* waiting for new media */
#define JS_WaitMount 'M' /* waiting for Mount */
+#define JS_WaitStoreRes 's' /* Waiting for storage resource */
+#define JS_WaitJobRes 'j' /* Waiting for job resource */
+#define JS_WaitClientRes 'c' /* Waiting for Client resource */
+#define JS_WaitMaxJobs 'd' /* Waiting for maximum jobs */
+#define JS_WaitStartTime 't' /* Waiting for start time */
-#define job_cancelled(jcr) \
- (jcr->JobStatus == JS_Cancelled || \
+#define job_canceled(jcr) \
+ (jcr->JobStatus == JS_Canceled || \
jcr->JobStatus == JS_ErrorTerminated || \
jcr->JobStatus == JS_FatalError)
+
typedef void (JCR_free_HANDLER)(struct s_jcr *jcr);
/* Job Control Record (JCR) */
/* Director Daemon specific part of JCR */
pthread_t SD_msg_chan; /* Message channel thread id */
pthread_cond_t term_wait; /* Wait for job termination */
+ workq_ele_t *work_item; /* Work queue item if scheduled */
int msg_thread_done; /* Set when Storage message thread terms */
BSOCK *ua; /* User agent */
JOB *job; /* Job resource */
int replace; /* Replace option */
#endif /* DIRECTOR_DAEMON */
+
#ifdef FILE_DAEMON
/* File Daemon specific part of JCR */
uint32_t num_files_examined; /* files examined this job */
uint32_t EndFile;
uint32_t StartBlock;
uint32_t EndBlock;
+ int use_win_backup_api; /* set to use native Win API */
+ pthread_t heartbeat_id; /* id of heartbeat thread */
+ BSOCK *duped_sd; /* duped SD socket */
#endif /* FILE_DAEMON */
+
#ifdef STORAGE_DAEMON
/* Storage Daemon specific part of JCR */
struct s_jcr *next_dev; /* next JCR attached to device */
};
+
+
/*
* Structure for all daemons that keeps some summary
* info on the last job run.