]> git.sur5r.net Git - bacula/bacula/blob - bacula/src/dird/protos.h
New var.c file + implement multiple simultaneous jobs
[bacula/bacula] / bacula / src / dird / protos.h
1 /*
2  * Director external function prototypes
3  *
4  *   Version $Id$
5  */
6 /*
7    Copyright (C) 2000, 2001, 2002 Kern Sibbald and John Walker
8
9    This program is free software; you can redistribute it and/or
10    modify it under the terms of the GNU General Public License as
11    published by the Free Software Foundation; either version 2 of
12    the License, or (at your option) any later version.
13
14    This program is distributed in the hope that it will be useful,
15    but WITHOUT ANY WARRANTY; without even the implied warranty of
16    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17    General Public License for more details.
18
19    You should have received a copy of the GNU General Public
20    License along with this program; if not, write to the Free
21    Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
22    MA 02111-1307, USA.
23
24  */
25
26 /* authenticate.c */
27 extern int authenticate_storage_daemon(JCR *jcr);
28 extern int authenticate_file_daemon(JCR *jcr);
29 extern int authenticate_user_agent(BSOCK *ua);
30
31 /* autoprune.c */
32 extern int do_autoprune(JCR *jcr);
33 extern int prune_volumes(JCR *jcr);
34 void create_ua_context(JCR *jcr, UAContext *ua);
35 void free_ua_context(UAContext *ua);
36
37 /* autorecycle.c */
38 extern int recycle_oldest_purged_volume(JCR *jcr, MEDIA_DBR *mr);
39 extern int find_recycled_volume(JCR *jcr, MEDIA_DBR *mr);
40
41 /* backup.c */
42 extern int wait_for_job_termination(JCR *jcr);
43
44 /* bsr.c */
45 RBSR *new_bsr();
46 void free_bsr(RBSR *bsr);
47 int complete_bsr(UAContext *ua, RBSR *bsr);
48 int write_bsr_file(UAContext *ua, RBSR *bsr);
49 void add_findex(RBSR *bsr, uint32_t JobId, int32_t findex);
50 RBSR_FINDEX *new_findex();
51
52
53 /* catreq.c */
54 extern void catalog_request(JCR *jcr, BSOCK *bs, char *buf);
55 extern void catalog_update(JCR *jcr, BSOCK *bs, char *buf);
56
57 /* dird_conf.c */
58 extern char *level_to_str(int level);
59
60 /* fd_cmds.c */
61 extern int connect_to_file_daemon(JCR *jcr, int retry_interval,
62                                   int max_retry_time, int verbose);
63 extern int send_include_list(JCR *jcr);
64 extern int send_exclude_list(JCR *jcr);
65 extern int send_bootstrap_file(JCR *jcr);
66 extern int get_attributes_and_put_in_catalog(JCR *jcr);
67 extern int get_attributes_and_compare_to_catalog(JCR *jcr, JobId_t JobId);
68 extern int put_file_into_catalog(JCR *jcr, long file_index, char *fname, 
69                           char *link, char *attr, int stream);
70
71 /* getmsg.c */
72 enum e_prtmsg {
73    DISPLAY_ERROR,
74    NO_DISPLAY
75 };
76 extern int response(JCR *jcr, BSOCK *fd, char *resp, char *cmd, e_prtmsg prtmsg);
77
78 /* job.c */
79 extern void set_jcr_defaults(JCR *jcr, JOB *job);
80 extern void create_unique_job_name(JCR *jcr, char *base_name);
81 extern void update_job_end_record(JCR *jcr);
82 extern int get_or_create_client_record(JCR *jcr);
83
84 /* mountreq.c */
85 extern void mount_request(JCR *jcr, BSOCK *bs, char *buf);
86
87 /* msgchan.c */
88 extern int connect_to_storage_daemon(JCR *jcr, int retry_interval,    
89                               int max_retry_time, int verbose);
90 extern int start_storage_daemon_job(JCR *jcr);
91 extern int start_storage_daemon_message_thread(JCR *jcr);
92 extern int bget_dirmsg(BSOCK *bs);
93 extern void wait_for_storage_daemon_termination(JCR *jcr);
94
95 /* newvol.c */
96 int newVolume(JCR *jcr, MEDIA_DBR *mr);
97
98 /* ua_cmds.c */
99 int do_a_command(UAContext *ua, char *cmd);
100 int do_a_dot_command(UAContext *ua, char *cmd);
101 int qmessagescmd(UAContext *ua, char *cmd);
102 int open_db(UAContext *ua);
103 void close_db(UAContext *ua);
104 enum e_pool_op {
105    POOL_OP_UPDATE, 
106    POOL_OP_CREATE
107 };
108 int create_pool(JCR *jcr, B_DB *db, POOL *pool, e_pool_op op);
109 void set_pool_dbr_defaults_in_media_dbr(MEDIA_DBR *mr, POOL_DBR *pr);
110
111 /* ua_input.c */
112 int get_cmd(UAContext *ua, char *prompt);
113 int get_pint(UAContext *ua, char *prompt);
114 int get_yesno(UAContext *ua, char *prompt);
115 void parse_ua_args(UAContext *ua);
116
117 /* ua_label.c */
118 int is_volume_name_legal(UAContext *ua, char *name);
119
120 /* ua_output.c */
121 void prtit(void *ctx, char *msg);
122
123 /* ua_server.c */
124 void bsendmsg(void *sock, char *fmt, ...);
125
126 /* ua_select.c */
127 STORE   *select_storage_resource(UAContext *ua);
128 JOB     *select_job_resource(UAContext *ua);
129 JOB     *select_restore_job_resource(UAContext *ua);
130 CLIENT  *select_client_resource(UAContext *ua);
131 FILESET *select_fileset_resource(UAContext *ua);
132 int     select_pool_and_media_dbr(UAContext *ua, POOL_DBR *pr, MEDIA_DBR *mr);
133 int     select_media_dbr(UAContext *ua, MEDIA_DBR *mr);
134 int     select_pool_dbr(UAContext *ua, POOL_DBR *pr);
135 int     select_client_dbr(UAContext *ua, CLIENT_DBR *cr);
136
137 void    start_prompt(UAContext *ua, char *msg);
138 void    add_prompt(UAContext *ua, char *prompt);
139 int     do_prompt(UAContext *ua, char *automsg, char *msg, char *prompt, int max_prompt);
140 CAT    *get_catalog_resource(UAContext *ua);           
141 STORE  *get_storage_resource(UAContext *ua, int use_default);
142 int     get_media_type(UAContext *ua, char *MediaType, int max_media);
143 int     get_pool_dbr(UAContext *ua, POOL_DBR *pr);
144 int     get_client_dbr(UAContext *ua, CLIENT_DBR *cr);
145 POOL   *get_pool_resource(UAContext *ua);
146 POOL   *select_pool_resource(UAContext *ua);
147 CLIENT *get_client_resource(UAContext *ua);
148 int     get_job_dbr(UAContext *ua, JOB_DBR *jr);
149
150 int find_arg_keyword(UAContext *ua, char **list);
151 int find_arg(UAContext *ua, char *keyword);
152 int find_arg_with_value(UAContext *ua, char *keyword);
153 int do_keyword_prompt(UAContext *ua, char *msg, char **list);
154 int confirm_retention(UAContext *ua, utime_t *ret, char *msg);
155
156 /* ua_tree.c */
157 void user_select_files_from_tree(TREE_CTX *tree);
158 int insert_tree_handler(void *ctx, int num_fields, char **row);
159
160 /* ua_prune.c */
161 int prune_files(UAContext *ua, CLIENT *client);
162 int prune_jobs(UAContext *ua, CLIENT *client, int JobType);
163 int prune_volume(UAContext *ua, POOL_DBR *pr, MEDIA_DBR *mr);
164
165 /* ua_purge.c */
166 int purge_jobs_from_volume(UAContext *ua, MEDIA_DBR *mr);