/* Definition of the contents of each Resource */
/* Needed for forward references */
-struct SCHED;
-struct CLIENT;
-struct FILESET;
-struct POOL;
-struct RUN;
-struct DEVICE;
+class SCHED;
+class CLIENT;
+class FILESET;
+class POOL;
+class RUN;
+class DEVICE;
+class RUNSCRIPT;
/*
* Director Resource
bool tls_enable; /* Enable TLS */
bool tls_require; /* Require TLS */
bool tls_verify_peer; /* TLS Verify Client Certificate */
+
+ /* Methods */
+ char *name() const;
};
+inline char *DIRRES::name() const { return hdr.name; }
+
/*
* Device Resource
* This resource is a bit different from the other resources
char ChangerName[MAX_NAME_LENGTH];
char VolumeName[MAX_NAME_LENGTH];
char MediaType[MAX_NAME_LENGTH];
+
+ /* Methods */
+ char *name() const;
};
+inline char *DEVICE::name() const { return hdr.name; }
+
/*
* Console ACL positions
*/
bool tls_enable; /* Enable TLS */
bool tls_require; /* Require TLS */
bool tls_verify_peer; /* TLS Verify Client Certificate */
+
+ /* Methods */
+ char *name() const;
};
+inline char *CONRES::name() const { return hdr.name; }
+
/*
* Catalog Resource
char *db_user;
char *db_name;
int mult_db_connections; /* set if multiple connections wanted */
+
+ /* Methods */
+ char *name() const;
};
+inline char *CAT::name() const { return hdr.name; }
+
/*
* Client Resource
bool tls_enable; /* Enable TLS */
bool tls_require; /* Require TLS */
bool AutoPrune; /* Do automatic pruning? */
+
+ /* Methods */
+ char *name() const;
};
+inline char *CLIENT::name() const { return hdr.name; }
+
+
/*
* Store Resource
*
int RestoreJobId; /* What -- JobId to restore */
char *RestoreWhere; /* Where on disk to restore -- directory */
char *RestoreBootstrap; /* Bootstrap file */
- char *RunBeforeJob; /* Run program before Job */
- char *RunAfterJob; /* Run program after Job */
- char *RunAfterFailedJob; /* Run program after Job that errs */
- char *ClientRunBeforeJob; /* Run client program before Job */
- char *ClientRunAfterJob; /* Run client program after Job */
+ alist *RunScripts; /* Run {client} program {after|before} Job */
union {
char *WriteBootstrap; /* Where to write bootstrap Job updates */
char *WriteVerifyList; /* List of changed files */
POOL *pool; /* Where is media -- Media Pool */
POOL *full_pool; /* Pool for Full backups */
POOL *inc_pool; /* Pool for Incremental backups */
- POOL *dif_pool; /* Pool for Differental backups */
+ POOL *diff_pool; /* Pool for Differental backups */
POOL *next_pool; /* Next Pool for Migration */
char *selection_pattern;
int selection_type;
JOB *jobdefs; /* Job defaults */
alist *run_cmds; /* Run commands */
uint32_t NumConcurrentJobs; /* number of concurrent jobs running */
+
+ /* Methods */
+ char *name() const;
};
+inline char *JOB::name() const { return hdr.name; }
+
#undef MAX_FOPTS
#define MAX_FOPTS 34
alist wild; /* wild card strings */
alist wilddir; /* wild card strings for directories */
alist wildfile; /* wild card strings for files */
+ alist wildbase; /* wild card strings for files without '/' */
alist base; /* list of base names */
alist fstype; /* file system type limitation */
+ alist drivetype; /* drive type limitation */
char *reader; /* reader program */
char *writer; /* writer program */
};
char MD5[30]; /* base 64 representation of MD5 */
bool ignore_fs_changes; /* Don't force Full if FS changed */
bool enable_vss; /* Enable Volume Shadow Copy */
+
+ /* Methods */
+ char *name() const;
};
+inline char *FILESET::name() const { return hdr.name; }
/*
* Schedule Resource
COUNTER *WrapCounter; /* Wrap counter name */
CAT *Catalog; /* Where to store */
bool created; /* Created in DB */
+ /* Methods */
+ char *name() const;
};
+inline char *COUNTER::name() const { return hdr.name; }
+
/*
* Pool Resource
*
char *pool_type; /* Pool type */
char *label_format; /* Label format string */
char *cleaning_prefix; /* Cleaning label prefix */
- int LabelType; /* Bacula/ANSI/IBM label type */
+ int32_t LabelType; /* Bacula/ANSI/IBM label type */
uint32_t max_volumes; /* max number of volumes */
utime_t VolRetention; /* volume retention period in seconds */
utime_t VolUseDuration; /* duration volume can be used */
uint32_t MaxVolFiles; /* Maximum files on the Volume */
uint64_t MaxVolBytes; /* Maximum bytes on the Volume */
utime_t MigrationTime; /* Time to migrate to next pool */
- uint32_t MigrationHighBytes; /* When migration starts */
- uint32_t MigrationLowBytes; /* When migration stops */
+ uint64_t MigrationHighBytes; /* When migration starts */
+ uint64_t MigrationLowBytes; /* When migration stops */
POOL *NextPool; /* Next pool for migration */
alist *storage; /* Where is device -- list of Storage to be used */
bool use_catalog; /* maintain catalog for media */
bool catalog_files; /* maintain file entries in catalog */
bool use_volume_once; /* write on volume only once */
- bool accept_any_volume; /* accept any volume */
bool purge_oldest_volume; /* purge oldest volume */
bool recycle_oldest_volume; /* attempt to recycle oldest volume */
bool recycle_current_volume; /* attempt recycle of current volume */
bool AutoPrune; /* default for pool auto prune */
bool Recycle; /* default for media recycle yes/no */
+
+ /* Methods */
+ char *name() const;
};
+inline char *POOL::name() const { return hdr.name; }
+
COUNTER res_counter;
DEVICE res_dev;
RES hdr;
+ RUNSCRIPT res_runscript;
};
POOL *pool; /* Pool override */
POOL *full_pool; /* Pool override */
POOL *inc_pool; /* Pool override */
- POOL *dif_pool; /* Pool override */
+ POOL *diff_pool; /* Pool override */
STORE *storage; /* Storage override */
MSGS *msgs; /* Messages override */
char *since;