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