02ed893d3acee3b81c8cfdf7cb051da21ccc6391
[debian/amanda] / perl / Amanda / Types.pm
1 # This file was automatically generated by SWIG (http://www.swig.org).
2 # Version 1.3.33
3 #
4 # Don't modify this file, modify the SWIG interface instead.
5
6 package Amanda::Types;
7 require Exporter;
8 require DynaLoader;
9 @ISA = qw(Exporter 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_dumper_get = *Amanda::Typesc::dumpfile_t_dumper_get;
81 *swig_dumper_set = *Amanda::Typesc::dumpfile_t_dumper_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_is_partial_get = *Amanda::Typesc::dumpfile_t_is_partial_get;
105 *swig_is_partial_set = *Amanda::Typesc::dumpfile_t_is_partial_set;
106 *swig_partnum_get = *Amanda::Typesc::dumpfile_t_partnum_get;
107 *swig_partnum_set = *Amanda::Typesc::dumpfile_t_partnum_set;
108 *swig_totalparts_get = *Amanda::Typesc::dumpfile_t_totalparts_get;
109 *swig_totalparts_set = *Amanda::Typesc::dumpfile_t_totalparts_set;
110 *swig_blocksize_get = *Amanda::Typesc::dumpfile_t_blocksize_get;
111 *swig_blocksize_set = *Amanda::Typesc::dumpfile_t_blocksize_set;
112 sub new {
113     my $pkg = shift;
114     my $self = Amanda::Typesc::new_dumpfile_t(@_);
115     bless $self, $pkg if defined($self);
116 }
117
118 sub DESTROY {
119     return unless $_[0]->isa('HASH');
120     my $self = tied(%{$_[0]});
121     return unless defined $self;
122     delete $ITERATORS{$self};
123     if (exists $OWNER{$self}) {
124         Amanda::Typesc::delete_dumpfile_t($self);
125         delete $OWNER{$self};
126     }
127 }
128
129 sub DISOWN {
130     my $self = shift;
131     my $ptr = tied(%$self);
132     delete $OWNER{$ptr};
133 }
134
135 sub ACQUIRE {
136     my $self = shift;
137     my $ptr = tied(%$self);
138     $OWNER{$ptr} = 1;
139 }
140
141
142 # ------- VARIABLE STUBS --------
143
144 package Amanda::Types;
145
146 *F_UNKNOWN = *Amanda::Typesc::F_UNKNOWN;
147 *F_WEIRD = *Amanda::Typesc::F_WEIRD;
148 *F_TAPESTART = *Amanda::Typesc::F_TAPESTART;
149 *F_TAPEEND = *Amanda::Typesc::F_TAPEEND;
150 *F_DUMPFILE = *Amanda::Typesc::F_DUMPFILE;
151 *F_CONT_DUMPFILE = *Amanda::Typesc::F_CONT_DUMPFILE;
152 *F_SPLIT_DUMPFILE = *Amanda::Typesc::F_SPLIT_DUMPFILE;
153 *F_EMPTY = *Amanda::Typesc::F_EMPTY;
154
155 @EXPORT_OK = ();
156 %EXPORT_TAGS = ();
157
158 =head1 NAME
159
160 Amanda::Types - Amanda data structures that are shared by several modules
161
162 =head1 SYNOPSIS
163
164 This module includes several types which are not specific to any
165 single other module.
166
167 =head1 API STATUS
168
169 New structures may be added, but existing types are stable.
170
171 =head1 dumpfile_t
172
173 An in-memory representation of an Amanda header, with keys
174 =over
175 =item C<type>;
176 =item C<datestamp>;
177 =item C<dumplevel>;
178 =item C<compressed>;
179 =item C<encrypted>;
180 =item C<comp_suffix>;
181 =item C<encrypt_suffix>;
182 =item C<name> -- hostname or label;
183 =item C<disk>;
184 =item C<program>;
185 =item C<dumper>;
186 =item C<srvcompprog>;
187 =item C<clntcompprog>;
188 =item C<srv_encrypt>;
189 =item C<clnt_encrypt>;
190 =item C<recover_cmd>;
191 =item C<uncompress_cmd>;
192 =item C<encrypt_cmd>;
193 =item C<decrypt_cmd>;
194 =item C<srv_decrypt_opt>;
195 =item C<clnt_decrypt_opt>;
196 =item C<cont_filename>;
197 =item C<is_partial>;
198 =item C<partnum>;
199 =item C<totalparts> (-1 == UNKNOWN); and
200 =item blocksize.
201 =back
202
203 where C<type> is one of the following constants, which are availble
204 for import in the tag C<:filetype_t>:
205 =over
206 =item C<F_UNKNOWN>;
207 =item C<F_WEIRD>;
208 =item C<F_TAPESTART>;
209 =item C<F_TAPEEND>;
210 =item C<F_DUMPFILE>;
211 =item C<F_CONT_DUMPFILE>;
212 =item C<F_SPLIT_DUMPFILE>; or
213 =item C<F_EMPTY>.
214 =back
215
216 NOTE: no methods are currently defined on C<dumpfile_t>; interfaces
217 can be written as needed.
218
219 =cut
220
221 push @EXPORT_OK, qw(filetype_t_to_strings);
222 push @{$EXPORT_TAGS{"filetype_t"}}, qw(filetype_t_to_strings);
223
224 my %_filetype_t_VALUES;
225 #Convert a flag value to a list of names for flags that are set.
226 sub filetype_t_to_strings {
227     my ($flags) = @_;
228     my @result = ();
229
230     for my $k (keys %_filetype_t_VALUES) {
231         my $v = $_filetype_t_VALUES{$k};
232
233         #is this a matching flag?
234         if (($v == 0 && $flags == 0) || ($v != 0 && ($flags & $v) == $v)) {
235             push @result, $k;
236         }
237     }
238
239 #by default, just return the number as a 1-element list
240     if (!@result) {
241         return ($flags);
242     }
243
244     return @result;
245 }
246
247 push @EXPORT_OK, qw($F_UNKNOWN);
248 push @{$EXPORT_TAGS{"filetype_t"}}, qw($F_UNKNOWN);
249
250 $_filetype_t_VALUES{"F_UNKNOWN"} = $F_UNKNOWN;
251
252 push @EXPORT_OK, qw($F_WEIRD);
253 push @{$EXPORT_TAGS{"filetype_t"}}, qw($F_WEIRD);
254
255 $_filetype_t_VALUES{"F_WEIRD"} = $F_WEIRD;
256
257 push @EXPORT_OK, qw($F_TAPESTART);
258 push @{$EXPORT_TAGS{"filetype_t"}}, qw($F_TAPESTART);
259
260 $_filetype_t_VALUES{"F_TAPESTART"} = $F_TAPESTART;
261
262 push @EXPORT_OK, qw($F_TAPEEND);
263 push @{$EXPORT_TAGS{"filetype_t"}}, qw($F_TAPEEND);
264
265 $_filetype_t_VALUES{"F_TAPEEND"} = $F_TAPEEND;
266
267 push @EXPORT_OK, qw($F_DUMPFILE);
268 push @{$EXPORT_TAGS{"filetype_t"}}, qw($F_DUMPFILE);
269
270 $_filetype_t_VALUES{"F_DUMPFILE"} = $F_DUMPFILE;
271
272 push @EXPORT_OK, qw($F_CONT_DUMPFILE);
273 push @{$EXPORT_TAGS{"filetype_t"}}, qw($F_CONT_DUMPFILE);
274
275 $_filetype_t_VALUES{"F_CONT_DUMPFILE"} = $F_CONT_DUMPFILE;
276
277 push @EXPORT_OK, qw($F_SPLIT_DUMPFILE);
278 push @{$EXPORT_TAGS{"filetype_t"}}, qw($F_SPLIT_DUMPFILE);
279
280 $_filetype_t_VALUES{"F_SPLIT_DUMPFILE"} = $F_SPLIT_DUMPFILE;
281
282 push @EXPORT_OK, qw($F_EMPTY);
283 push @{$EXPORT_TAGS{"filetype_t"}}, qw($F_EMPTY);
284
285 $_filetype_t_VALUES{"F_EMPTY"} = $F_EMPTY;
286 1;