Imported Upstream version 2.6.1p2
[debian/amanda] / perl / Amanda / Types.pm
1 # This file was automatically generated by SWIG (http://www.swig.org).
2 # Version 1.3.39
3 #
4 # Do not make changes to this file unless you know what you are doing--modify
5 # the SWIG interface file instead.
6
7 package Amanda::Types;
8 use base qw(Exporter);
9 use base qw(DynaLoader);
10 package Amanda::Typesc;
11 bootstrap Amanda::Types;
12 package Amanda::Types;
13 @EXPORT = qw();
14
15 # ---------- BASE METHODS -------------
16
17 package Amanda::Types;
18
19 sub TIEHASH {
20     my ($classname,$obj) = @_;
21     return bless $obj, $classname;
22 }
23
24 sub CLEAR { }
25
26 sub FIRSTKEY { }
27
28 sub NEXTKEY { }
29
30 sub FETCH {
31     my ($self,$field) = @_;
32     my $member_func = "swig_${field}_get";
33     $self->$member_func();
34 }
35
36 sub STORE {
37     my ($self,$field,$newval) = @_;
38     my $member_func = "swig_${field}_set";
39     $self->$member_func($newval);
40 }
41
42 sub this {
43     my $ptr = shift;
44     return tied(%$ptr);
45 }
46
47
48 # ------- FUNCTION WRAPPERS --------
49
50 package Amanda::Types;
51
52
53 ############# Class : Amanda::Types::dumpfile_t ##############
54
55 package Amanda::Types::dumpfile_t;
56 use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
57 @ISA = qw( Amanda::Types );
58 %OWNER = ();
59 %ITERATORS = ();
60 *swig_type_get = *Amanda::Typesc::dumpfile_t_type_get;
61 *swig_type_set = *Amanda::Typesc::dumpfile_t_type_set;
62 *swig_datestamp_get = *Amanda::Typesc::dumpfile_t_datestamp_get;
63 *swig_datestamp_set = *Amanda::Typesc::dumpfile_t_datestamp_set;
64 *swig_dumplevel_get = *Amanda::Typesc::dumpfile_t_dumplevel_get;
65 *swig_dumplevel_set = *Amanda::Typesc::dumpfile_t_dumplevel_set;
66 *swig_compressed_get = *Amanda::Typesc::dumpfile_t_compressed_get;
67 *swig_compressed_set = *Amanda::Typesc::dumpfile_t_compressed_set;
68 *swig_encrypted_get = *Amanda::Typesc::dumpfile_t_encrypted_get;
69 *swig_encrypted_set = *Amanda::Typesc::dumpfile_t_encrypted_set;
70 *swig_comp_suffix_get = *Amanda::Typesc::dumpfile_t_comp_suffix_get;
71 *swig_comp_suffix_set = *Amanda::Typesc::dumpfile_t_comp_suffix_set;
72 *swig_encrypt_suffix_get = *Amanda::Typesc::dumpfile_t_encrypt_suffix_get;
73 *swig_encrypt_suffix_set = *Amanda::Typesc::dumpfile_t_encrypt_suffix_set;
74 *swig_name_get = *Amanda::Typesc::dumpfile_t_name_get;
75 *swig_name_set = *Amanda::Typesc::dumpfile_t_name_set;
76 *swig_disk_get = *Amanda::Typesc::dumpfile_t_disk_get;
77 *swig_disk_set = *Amanda::Typesc::dumpfile_t_disk_set;
78 *swig_program_get = *Amanda::Typesc::dumpfile_t_program_get;
79 *swig_program_set = *Amanda::Typesc::dumpfile_t_program_set;
80 *swig_application_get = *Amanda::Typesc::dumpfile_t_application_get;
81 *swig_application_set = *Amanda::Typesc::dumpfile_t_application_set;
82 *swig_srvcompprog_get = *Amanda::Typesc::dumpfile_t_srvcompprog_get;
83 *swig_srvcompprog_set = *Amanda::Typesc::dumpfile_t_srvcompprog_set;
84 *swig_clntcompprog_get = *Amanda::Typesc::dumpfile_t_clntcompprog_get;
85 *swig_clntcompprog_set = *Amanda::Typesc::dumpfile_t_clntcompprog_set;
86 *swig_srv_encrypt_get = *Amanda::Typesc::dumpfile_t_srv_encrypt_get;
87 *swig_srv_encrypt_set = *Amanda::Typesc::dumpfile_t_srv_encrypt_set;
88 *swig_clnt_encrypt_get = *Amanda::Typesc::dumpfile_t_clnt_encrypt_get;
89 *swig_clnt_encrypt_set = *Amanda::Typesc::dumpfile_t_clnt_encrypt_set;
90 *swig_recover_cmd_get = *Amanda::Typesc::dumpfile_t_recover_cmd_get;
91 *swig_recover_cmd_set = *Amanda::Typesc::dumpfile_t_recover_cmd_set;
92 *swig_uncompress_cmd_get = *Amanda::Typesc::dumpfile_t_uncompress_cmd_get;
93 *swig_uncompress_cmd_set = *Amanda::Typesc::dumpfile_t_uncompress_cmd_set;
94 *swig_encrypt_cmd_get = *Amanda::Typesc::dumpfile_t_encrypt_cmd_get;
95 *swig_encrypt_cmd_set = *Amanda::Typesc::dumpfile_t_encrypt_cmd_set;
96 *swig_decrypt_cmd_get = *Amanda::Typesc::dumpfile_t_decrypt_cmd_get;
97 *swig_decrypt_cmd_set = *Amanda::Typesc::dumpfile_t_decrypt_cmd_set;
98 *swig_srv_decrypt_opt_get = *Amanda::Typesc::dumpfile_t_srv_decrypt_opt_get;
99 *swig_srv_decrypt_opt_set = *Amanda::Typesc::dumpfile_t_srv_decrypt_opt_set;
100 *swig_clnt_decrypt_opt_get = *Amanda::Typesc::dumpfile_t_clnt_decrypt_opt_get;
101 *swig_clnt_decrypt_opt_set = *Amanda::Typesc::dumpfile_t_clnt_decrypt_opt_set;
102 *swig_cont_filename_get = *Amanda::Typesc::dumpfile_t_cont_filename_get;
103 *swig_cont_filename_set = *Amanda::Typesc::dumpfile_t_cont_filename_set;
104 *swig_dle_str_get = *Amanda::Typesc::dumpfile_t_dle_str_get;
105 *swig_dle_str_set = *Amanda::Typesc::dumpfile_t_dle_str_set;
106 *swig_is_partial_get = *Amanda::Typesc::dumpfile_t_is_partial_get;
107 *swig_is_partial_set = *Amanda::Typesc::dumpfile_t_is_partial_set;
108 *swig_partnum_get = *Amanda::Typesc::dumpfile_t_partnum_get;
109 *swig_partnum_set = *Amanda::Typesc::dumpfile_t_partnum_set;
110 *swig_totalparts_get = *Amanda::Typesc::dumpfile_t_totalparts_get;
111 *swig_totalparts_set = *Amanda::Typesc::dumpfile_t_totalparts_set;
112 *swig_blocksize_get = *Amanda::Typesc::dumpfile_t_blocksize_get;
113 *swig_blocksize_set = *Amanda::Typesc::dumpfile_t_blocksize_set;
114 sub new {
115     my $pkg = shift;
116     my $self = Amanda::Typesc::new_dumpfile_t(@_);
117     bless $self, $pkg if defined($self);
118 }
119
120 sub DESTROY {
121     return unless $_[0]->isa('HASH');
122     my $self = tied(%{$_[0]});
123     return unless defined $self;
124     delete $ITERATORS{$self};
125     if (exists $OWNER{$self}) {
126         Amanda::Typesc::delete_dumpfile_t($self);
127         delete $OWNER{$self};
128     }
129 }
130
131 sub DISOWN {
132     my $self = shift;
133     my $ptr = tied(%$self);
134     delete $OWNER{$ptr};
135 }
136
137 sub ACQUIRE {
138     my $self = shift;
139     my $ptr = tied(%$self);
140     $OWNER{$ptr} = 1;
141 }
142
143
144 # ------- VARIABLE STUBS --------
145
146 package Amanda::Types;
147
148 *F_UNKNOWN = *Amanda::Typesc::F_UNKNOWN;
149 *F_WEIRD = *Amanda::Typesc::F_WEIRD;
150 *F_TAPESTART = *Amanda::Typesc::F_TAPESTART;
151 *F_TAPEEND = *Amanda::Typesc::F_TAPEEND;
152 *F_DUMPFILE = *Amanda::Typesc::F_DUMPFILE;
153 *F_CONT_DUMPFILE = *Amanda::Typesc::F_CONT_DUMPFILE;
154 *F_SPLIT_DUMPFILE = *Amanda::Typesc::F_SPLIT_DUMPFILE;
155 *F_EMPTY = *Amanda::Typesc::F_EMPTY;
156
157 @EXPORT_OK = ();
158 %EXPORT_TAGS = ();
159
160 =head1 NAME
161
162 Amanda::Types - Amanda data structures that are shared by several modules
163
164 =head1 SYNOPSIS
165
166 This module includes several types which are not specific to any
167 single other module.
168
169 =head1 API STATUS
170
171 New structures may be added, but existing types are stable.
172
173 =head1 dumpfile_t
174
175 An in-memory representation of an Amanda header, with keys
176
177 =over
178
179 =item C<type>;
180
181 =item C<datestamp>;
182
183 =item C<dumplevel>;
184
185 =item C<compressed>;
186
187 =item C<encrypted>;
188
189 =item C<comp_suffix>;
190
191 =item C<encrypt_suffix>;
192
193 =item C<name> -- hostname or label;
194
195 =item C<disk>;
196
197 =item C<program>;
198
199 =item C<application>;
200
201 =item C<srvcompprog>;
202
203 =item C<clntcompprog>;
204
205 =item C<srv_encrypt>;
206
207 =item C<clnt_encrypt>;
208
209 =item C<recover_cmd>;
210
211 =item C<uncompress_cmd>;
212
213 =item C<encrypt_cmd>;
214
215 =item C<decrypt_cmd>;
216
217 =item C<srv_decrypt_opt>;
218
219 =item C<clnt_decrypt_opt>;
220
221 =item C<cont_filename>;
222
223 =itme C<dle_str>;
224
225 =item C<is_partial>;
226
227 =item C<partnum>;
228
229 =item C<totalparts> (-1 == UNKNOWN); and
230
231 =item C<blocksize>.
232
233 =back
234
235 where C<type> is one of the following constants, which are availble
236 for import in the tag C<:filetype_t>:
237
238 =over
239
240 =item C<F_UNKNOWN>;
241
242 =item C<F_WEIRD>;
243
244 =item C<F_TAPESTART>;
245
246 =item C<F_TAPEEND>;
247
248 =item C<F_DUMPFILE>;
249
250 =item C<F_CONT_DUMPFILE>;
251
252 =item C<F_SPLIT_DUMPFILE>; or
253
254 =item C<F_EMPTY>.
255
256 =back
257
258 NOTE: no methods are currently defined on C<dumpfile_t>; interfaces
259 can be written as needed.  A new dumpfile is created with
260
261     my $hdr = Amanda::Types::dumpfile_t->new();
262
263 =cut
264
265 push @EXPORT_OK, qw(filetype_t_to_strings);
266 push @{$EXPORT_TAGS{"filetype_t"}}, qw(filetype_t_to_strings);
267
268 my %_filetype_t_VALUES;
269 #Convert a flag value to a list of names for flags that are set.
270 sub filetype_t_to_strings {
271     my ($flags) = @_;
272     my @result = ();
273
274     for my $k (keys %_filetype_t_VALUES) {
275         my $v = $_filetype_t_VALUES{$k};
276
277         #is this a matching flag?
278         if (($v == 0 && $flags == 0) || ($v != 0 && ($flags & $v) == $v)) {
279             push @result, $k;
280         }
281     }
282
283 #by default, just return the number as a 1-element list
284     if (!@result) {
285         return ($flags);
286     }
287
288     return @result;
289 }
290
291 push @EXPORT_OK, qw($F_UNKNOWN);
292 push @{$EXPORT_TAGS{"filetype_t"}}, qw($F_UNKNOWN);
293
294 $_filetype_t_VALUES{"F_UNKNOWN"} = $F_UNKNOWN;
295
296 push @EXPORT_OK, qw($F_WEIRD);
297 push @{$EXPORT_TAGS{"filetype_t"}}, qw($F_WEIRD);
298
299 $_filetype_t_VALUES{"F_WEIRD"} = $F_WEIRD;
300
301 push @EXPORT_OK, qw($F_TAPESTART);
302 push @{$EXPORT_TAGS{"filetype_t"}}, qw($F_TAPESTART);
303
304 $_filetype_t_VALUES{"F_TAPESTART"} = $F_TAPESTART;
305
306 push @EXPORT_OK, qw($F_TAPEEND);
307 push @{$EXPORT_TAGS{"filetype_t"}}, qw($F_TAPEEND);
308
309 $_filetype_t_VALUES{"F_TAPEEND"} = $F_TAPEEND;
310
311 push @EXPORT_OK, qw($F_DUMPFILE);
312 push @{$EXPORT_TAGS{"filetype_t"}}, qw($F_DUMPFILE);
313
314 $_filetype_t_VALUES{"F_DUMPFILE"} = $F_DUMPFILE;
315
316 push @EXPORT_OK, qw($F_CONT_DUMPFILE);
317 push @{$EXPORT_TAGS{"filetype_t"}}, qw($F_CONT_DUMPFILE);
318
319 $_filetype_t_VALUES{"F_CONT_DUMPFILE"} = $F_CONT_DUMPFILE;
320
321 push @EXPORT_OK, qw($F_SPLIT_DUMPFILE);
322 push @{$EXPORT_TAGS{"filetype_t"}}, qw($F_SPLIT_DUMPFILE);
323
324 $_filetype_t_VALUES{"F_SPLIT_DUMPFILE"} = $F_SPLIT_DUMPFILE;
325
326 push @EXPORT_OK, qw($F_EMPTY);
327 push @{$EXPORT_TAGS{"filetype_t"}}, qw($F_EMPTY);
328
329 $_filetype_t_VALUES{"F_EMPTY"} = $F_EMPTY;
330 1;