Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- Bacula® is a registered trademark of John Walker.
+ Bacula® is a registered trademark of Kern Sibbald.
The licensor of Bacula is the Free Software Foundation Europe
(FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich,
Switzerland, email:ftf@fsfeurope.org.
*/
struct RES_ITEM; /* Declare forward referenced structure */
+struct RES_ITEM2; /* Declare forward referenced structure */
class RES; /* Declare forware referenced structure */
typedef void (MSG_RES_HANDLER)(LEX *lc, RES_ITEM *item, int index, int pass);
+typedef void (INC_RES_HANDLER)(LEX *lc, RES_ITEM2 *item, int index, int pass, bool exclude);
+
/* This is the structure that defines
int32_t default_value; /* default value */
};
+struct RES_ITEM2 {
+ const char *name; /* Resource name i.e. Director, ... */
+ INC_RES_HANDLER *handler; /* Routine storing the resource item */
+ union {
+ char **value; /* Where to store the item */
+ char **charvalue;
+ uint32_t ui32value;
+ int32_t i32value;
+ uint64_t ui64value;
+ int64_t i64value;
+ bool boolvalue;
+ utime_t utimevalue;
+ RES *resvalue;
+ RES **presvalue;
+ };
+ int32_t code; /* item code/additional info */
+ uint32_t flags; /* flags: default, required, ... */
+ int32_t default_value; /* default value */
+};
+
+
/* For storing name_addr items in res_items table */
#define ITEM(x) {(char **)&res_all.x}
/*
* Old C style configuration routines -- deprecated do not use.
*/
-int parse_config(const char *cf, LEX_ERROR_HANDLER *scan_error = NULL, int err_type=M_ERROR_TERM);
+//int parse_config(const char *cf, LEX_ERROR_HANDLER *scan_error = NULL, int err_type=M_ERROR_TERM);
void free_config_resources(void);
RES **save_config_resources(void);
RES **new_res_head();
int32_t m_err_type; /* the way to terminate on failure */
void *m_res_all; /* pointer to res_all buffer */
int32_t m_res_all_size; /* length of buffer */
+
/* The below are not yet implemented */
int32_t m_r_first; /* first daemon resource type */
int32_t m_r_last; /* last daemon resource type */
void store_size(LEX *lc, RES_ITEM *item, int index, int pass);
void store_defs(LEX *lc, RES_ITEM *item, int index, int pass);
void store_label(LEX *lc, RES_ITEM *item, int index, int pass);
+
+/* ***FIXME*** eliminate these globals */
+extern int32_t r_first;
+extern int32_t r_last;
+extern RES_TABLE resources[];
+extern RES **res_head;
+extern int32_t res_all_size;