/*
Bacula® - The Network Backup Solution
- Copyright (C) 2000-2009 Free Software Foundation Europe e.V.
+ Copyright (C) 2000-2010 Free Software Foundation Europe e.V.
The main author of Bacula is Kern Sibbald, with contributions from
many others, a complete list can be found in the file AUTHORS.
*
* Kern Sibbald, MM
*
- * Version $Id$
- *
*/
/*
utime_t VolFirstWritten; /* Time of first write */
utime_t VolLastWritten; /* Time of last write */
bool InChanger; /* Set if vol in current magazine */
+ bool is_valid; /* set if this data is valid */
char VolCatStatus[20]; /* Volume status */
char VolCatName[MAX_NAME_LENGTH]; /* Desired volume to mount */
};
public:
DEVICE * volatile swap_dev; /* Swap vol from this device */
dlist *attached_dcrs; /* attached DCR list */
- pthread_mutex_t m_mutex; /* access control */
- pthread_mutex_t spool_mutex; /* mutex for updating spool_size */
- pthread_mutex_t acquire_mutex; /* mutex for acquire code */
+ bthread_mutex_t m_mutex; /* access control */
+ bthread_mutex_t spool_mutex; /* mutex for updating spool_size */
+ bthread_mutex_t acquire_mutex; /* mutex for acquire code */
pthread_cond_t wait; /* thread wait variable */
pthread_cond_t wait_next_vol; /* wait for tape to be mounted */
pthread_t no_wait_id; /* this thread must not wait */
uint32_t EndFile; /* last file written */
uint32_t min_block_size; /* min block size */
uint32_t max_block_size; /* max block size */
+ uint32_t max_concurrent_jobs; /* maximum simultaneous jobs this drive */
uint64_t max_volume_size; /* max bytes to put on one volume */
uint64_t max_file_size; /* max file size to put in one file on volume */
- uint64_t max_concurrent_jobs; /* maximum simultaneous jobs this drive */
uint64_t volume_capacity; /* advisory capacity */
uint64_t max_spool_size; /* maximum spool file size */
uint64_t spool_size; /* current spool size for this device */
char *bstrerror(void) { return errmsg; };
char *print_errmsg() { return errmsg; };
int32_t get_slot() const { return m_slot; };
+ void setVolCatInfo(bool valid) { VolCatInfo.is_valid = valid; };
+ bool haveVolCatInfo() const { return VolCatInfo.is_valid; };
+ void setVolCatName(const char *name) {
+ bstrncpy(VolCatInfo.VolCatName, name, sizeof(VolCatInfo.VolCatName));
+ setVolCatInfo(false);
+ };
+ char *getVolCatName() { return VolCatInfo.VolCatName; };
void set_unload(); /* in dev.c */
void clear_volhdr(); /* in dev.c */
public:
dlink dev_link; /* link to attach to dev */
JCR *jcr; /* pointer to JCR */
- pthread_mutex_t m_mutex; /* access control */
+ bthread_mutex_t m_mutex; /* access control */
DEVICE * volatile dev; /* pointer to device */
DEVRES *device; /* pointer to device resource */
DEV_BLOCK *block; /* pointer to block */
void dunlock() { m_dev_locked = false; dev->dunlock(); }
#endif
void dblock(int why) { dev->dblock(why); }
+ void setVolCatInfo(bool valid) { VolCatInfo.is_valid = valid; };
+ bool haveVolCatInfo() const { return VolCatInfo.is_valid; };
+ void setVolCatName(const char *name) {
+ bstrncpy(VolCatInfo.VolCatName, name, sizeof(VolCatInfo.VolCatName));
+ setVolCatInfo(false);
+ };
+ char *getVolCatName() { return VolCatInfo.VolCatName; };
/* Methods in reserve.c */