1# This file was automatically generated by SWIG (http://www.swig.org).
2# Version 3.0.10
3#
4# Do not make changes to this file unless you know what you are doing--modify
5# the SWIG interface file instead.
6
7package jellyfish;
8use base qw(Exporter);
9use base qw(DynaLoader);
10package jellyfishc;
11bootstrap jellyfish;
12package jellyfish;
13@EXPORT = qw();
14
15# ---------- BASE METHODS -------------
16
17package jellyfish;
18
19sub TIEHASH {
20    my ($classname,$obj) = @_;
21    return bless $obj, $classname;
22}
23
24sub CLEAR { }
25
26sub FIRSTKEY { }
27
28sub NEXTKEY { }
29
30sub FETCH {
31    my ($self,$field) = @_;
32    my $member_func = "swig_${field}_get";
33    $self->$member_func();
34}
35
36sub STORE {
37    my ($self,$field,$newval) = @_;
38    my $member_func = "swig_${field}_set";
39    $self->$member_func($newval);
40}
41
42sub this {
43    my $ptr = shift;
44    return tied(%$ptr);
45}
46
47
48# ------- FUNCTION WRAPPERS --------
49
50package jellyfish;
51
52*string_mers = *jellyfishc::string_mers;
53*string_canonicals = *jellyfishc::string_canonicals;
54
55############# Class : jellyfish::MerDNA ##############
56
57package jellyfish::MerDNA;
58use overload
59    '""' => sub { $_[0]->__str__()},
60    "<" => sub { $_[0]->__lt__($_[1])},
61    "==" => sub { $_[0]->__eq__($_[1])},
62    ">" => sub { $_[0]->__gt__($_[1])},
63    "=" => sub { my $class = ref($_[0]); $class->new($_[0]) },
64    "fallback" => 1;
65use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
66@ISA = qw( jellyfish );
67%OWNER = ();
68%ITERATORS = ();
69sub new {
70    my $pkg = shift;
71    my $self = jellyfishc::new_MerDNA(@_);
72    bless $self, $pkg if defined($self);
73}
74
75*k = *jellyfishc::MerDNA_k;
76*polyA = *jellyfishc::MerDNA_polyA;
77*polyC = *jellyfishc::MerDNA_polyC;
78*polyG = *jellyfishc::MerDNA_polyG;
79*polyT = *jellyfishc::MerDNA_polyT;
80*randomize = *jellyfishc::MerDNA_randomize;
81*is_homopolymer = *jellyfishc::MerDNA_is_homopolymer;
82*shift_left = *jellyfishc::MerDNA_shift_left;
83*shift_right = *jellyfishc::MerDNA_shift_right;
84*canonicalize = *jellyfishc::MerDNA_canonicalize;
85*reverse_complement = *jellyfishc::MerDNA_reverse_complement;
86*get_canonical = *jellyfishc::MerDNA_get_canonical;
87*get_reverse_complement = *jellyfishc::MerDNA_get_reverse_complement;
88*__eq__ = *jellyfishc::MerDNA___eq__;
89*__lt__ = *jellyfishc::MerDNA___lt__;
90*__gt__ = *jellyfishc::MerDNA___gt__;
91*dup = *jellyfishc::MerDNA_dup;
92*__str__ = *jellyfishc::MerDNA___str__;
93*set = *jellyfishc::MerDNA_set;
94*get_base = *jellyfishc::MerDNA_get_base;
95*set_base = *jellyfishc::MerDNA_set_base;
96sub DESTROY {
97    return unless $_[0]->isa('HASH');
98    my $self = tied(%{$_[0]});
99    return unless defined $self;
100    delete $ITERATORS{$self};
101    if (exists $OWNER{$self}) {
102        jellyfishc::delete_MerDNA($self);
103        delete $OWNER{$self};
104    }
105}
106
107sub DISOWN {
108    my $self = shift;
109    my $ptr = tied(%$self);
110    delete $OWNER{$ptr};
111}
112
113sub ACQUIRE {
114    my $self = shift;
115    my $ptr = tied(%$self);
116    $OWNER{$ptr} = 1;
117}
118
119
120############# Class : jellyfish::QueryMerFile ##############
121
122package jellyfish::QueryMerFile;
123use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
124@ISA = qw( jellyfish );
125%OWNER = ();
126%ITERATORS = ();
127sub new {
128    my $pkg = shift;
129    my $self = jellyfishc::new_QueryMerFile(@_);
130    bless $self, $pkg if defined($self);
131}
132
133*get = *jellyfishc::QueryMerFile_get;
134sub DESTROY {
135    return unless $_[0]->isa('HASH');
136    my $self = tied(%{$_[0]});
137    return unless defined $self;
138    delete $ITERATORS{$self};
139    if (exists $OWNER{$self}) {
140        jellyfishc::delete_QueryMerFile($self);
141        delete $OWNER{$self};
142    }
143}
144
145sub DISOWN {
146    my $self = shift;
147    my $ptr = tied(%$self);
148    delete $OWNER{$ptr};
149}
150
151sub ACQUIRE {
152    my $self = shift;
153    my $ptr = tied(%$self);
154    $OWNER{$ptr} = 1;
155}
156
157
158############# Class : jellyfish::ReadMerFile ##############
159
160package jellyfish::ReadMerFile;
161use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
162@ISA = qw( jellyfish );
163%OWNER = ();
164%ITERATORS = ();
165sub new {
166    my $pkg = shift;
167    my $self = jellyfishc::new_ReadMerFile(@_);
168    bless $self, $pkg if defined($self);
169}
170
171*next_mer = *jellyfishc::ReadMerFile_next_mer;
172*mer = *jellyfishc::ReadMerFile_mer;
173*count = *jellyfishc::ReadMerFile_count;
174*each = *jellyfishc::ReadMerFile_each;
175sub DESTROY {
176    return unless $_[0]->isa('HASH');
177    my $self = tied(%{$_[0]});
178    return unless defined $self;
179    delete $ITERATORS{$self};
180    if (exists $OWNER{$self}) {
181        jellyfishc::delete_ReadMerFile($self);
182        delete $OWNER{$self};
183    }
184}
185
186sub DISOWN {
187    my $self = shift;
188    my $ptr = tied(%$self);
189    delete $OWNER{$ptr};
190}
191
192sub ACQUIRE {
193    my $self = shift;
194    my $ptr = tied(%$self);
195    $OWNER{$ptr} = 1;
196}
197
198
199############# Class : jellyfish::HashCounter ##############
200
201package jellyfish::HashCounter;
202use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
203@ISA = qw( jellyfish );
204%OWNER = ();
205%ITERATORS = ();
206sub new {
207    my $pkg = shift;
208    my $self = jellyfishc::new_HashCounter(@_);
209    bless $self, $pkg if defined($self);
210}
211
212*size = *jellyfishc::HashCounter_size;
213*val_len = *jellyfishc::HashCounter_val_len;
214*add = *jellyfishc::HashCounter_add;
215*update_add = *jellyfishc::HashCounter_update_add;
216*get = *jellyfishc::HashCounter_get;
217sub DESTROY {
218    return unless $_[0]->isa('HASH');
219    my $self = tied(%{$_[0]});
220    return unless defined $self;
221    delete $ITERATORS{$self};
222    if (exists $OWNER{$self}) {
223        jellyfishc::delete_HashCounter($self);
224        delete $OWNER{$self};
225    }
226}
227
228sub DISOWN {
229    my $self = shift;
230    my $ptr = tied(%$self);
231    delete $OWNER{$ptr};
232}
233
234sub ACQUIRE {
235    my $self = shift;
236    my $ptr = tied(%$self);
237    $OWNER{$ptr} = 1;
238}
239
240
241############# Class : jellyfish::HashSet ##############
242
243package jellyfish::HashSet;
244use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
245@ISA = qw( jellyfish );
246%OWNER = ();
247%ITERATORS = ();
248sub new {
249    my $pkg = shift;
250    my $self = jellyfishc::new_HashSet(@_);
251    bless $self, $pkg if defined($self);
252}
253
254*size = *jellyfishc::HashSet_size;
255*add = *jellyfishc::HashSet_add;
256*get = *jellyfishc::HashSet_get;
257sub DESTROY {
258    return unless $_[0]->isa('HASH');
259    my $self = tied(%{$_[0]});
260    return unless defined $self;
261    delete $ITERATORS{$self};
262    if (exists $OWNER{$self}) {
263        jellyfishc::delete_HashSet($self);
264        delete $OWNER{$self};
265    }
266}
267
268sub DISOWN {
269    my $self = shift;
270    my $ptr = tied(%$self);
271    delete $OWNER{$ptr};
272}
273
274sub ACQUIRE {
275    my $self = shift;
276    my $ptr = tied(%$self);
277    $OWNER{$ptr} = 1;
278}
279
280
281############# Class : jellyfish::StringMers ##############
282
283package jellyfish::StringMers;
284use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
285@ISA = qw( jellyfish );
286%OWNER = ();
287%ITERATORS = ();
288sub new {
289    my $pkg = shift;
290    my $self = jellyfishc::new_StringMers(@_);
291    bless $self, $pkg if defined($self);
292}
293
294*next_mer = *jellyfishc::StringMers_next_mer;
295*mer = *jellyfishc::StringMers_mer;
296*each = *jellyfishc::StringMers_each;
297sub DESTROY {
298    return unless $_[0]->isa('HASH');
299    my $self = tied(%{$_[0]});
300    return unless defined $self;
301    delete $ITERATORS{$self};
302    if (exists $OWNER{$self}) {
303        jellyfishc::delete_StringMers($self);
304        delete $OWNER{$self};
305    }
306}
307
308sub DISOWN {
309    my $self = shift;
310    my $ptr = tied(%$self);
311    delete $OWNER{$ptr};
312}
313
314sub ACQUIRE {
315    my $self = shift;
316    my $ptr = tied(%$self);
317    $OWNER{$ptr} = 1;
318}
319
320
321# ------- VARIABLE STUBS --------
322
323package jellyfish;
324
3251;
326