# This file was automatically generated by SWIG (http://www.swig.org). # Version 3.0.2 # # Do not make changes to this file unless you know what you are doing--modify # the SWIG interface file instead. package jellyfish; use base qw(Exporter); use base qw(DynaLoader); package jellyfishc; bootstrap jellyfish; package jellyfish; @EXPORT = qw(); # ---------- BASE METHODS ------------- package jellyfish; sub TIEHASH { my ($classname,$obj) = @_; return bless $obj, $classname; } sub CLEAR { } sub FIRSTKEY { } sub NEXTKEY { } sub FETCH { my ($self,$field) = @_; my $member_func = "swig_${field}_get"; $self->$member_func(); } sub STORE { my ($self,$field,$newval) = @_; my $member_func = "swig_${field}_set"; $self->$member_func($newval); } sub this { my $ptr = shift; return tied(%$ptr); } # ------- FUNCTION WRAPPERS -------- package jellyfish; ############# Class : jellyfish::MerDNA ############## package jellyfish::MerDNA; use overload '""' => sub { $_[0]->__str__()}, "<" => sub { $_[0]->__lt__($_[1])}, "==" => sub { $_[0]->__eq__($_[1])}, ">" => sub { $_[0]->__gt__($_[1])}, "=" => sub { my $class = ref($_[0]); $class->new($_[0]) }, "fallback" => 1; use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); @ISA = qw( jellyfish ); %OWNER = (); %ITERATORS = (); sub new { my $pkg = shift; my $self = jellyfishc::new_MerDNA(@_); bless $self, $pkg if defined($self); } *k = *jellyfishc::MerDNA_k; *polyA = *jellyfishc::MerDNA_polyA; *polyC = *jellyfishc::MerDNA_polyC; *polyG = *jellyfishc::MerDNA_polyG; *polyT = *jellyfishc::MerDNA_polyT; *randomize = *jellyfishc::MerDNA_randomize; *is_homopolymer = *jellyfishc::MerDNA_is_homopolymer; *shift_left = *jellyfishc::MerDNA_shift_left; *shift_right = *jellyfishc::MerDNA_shift_right; *canonicalize = *jellyfishc::MerDNA_canonicalize; *reverse_complement = *jellyfishc::MerDNA_reverse_complement; *get_canonical = *jellyfishc::MerDNA_get_canonical; *get_reverse_complement = *jellyfishc::MerDNA_get_reverse_complement; *__eq__ = *jellyfishc::MerDNA___eq__; *__lt__ = *jellyfishc::MerDNA___lt__; *__gt__ = *jellyfishc::MerDNA___gt__; *dup = *jellyfishc::MerDNA_dup; *__str__ = *jellyfishc::MerDNA___str__; *set = *jellyfishc::MerDNA_set; *get_base = *jellyfishc::MerDNA_get_base; *set_base = *jellyfishc::MerDNA_set_base; sub DESTROY { return unless $_[0]->isa('HASH'); my $self = tied(%{$_[0]}); return unless defined $self; delete $ITERATORS{$self}; if (exists $OWNER{$self}) { jellyfishc::delete_MerDNA($self); delete $OWNER{$self}; } } sub DISOWN { my $self = shift; my $ptr = tied(%$self); delete $OWNER{$ptr}; } sub ACQUIRE { my $self = shift; my $ptr = tied(%$self); $OWNER{$ptr} = 1; } ############# Class : jellyfish::QueryMerFile ############## package jellyfish::QueryMerFile; use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); @ISA = qw( jellyfish ); %OWNER = (); %ITERATORS = (); sub new { my $pkg = shift; my $self = jellyfishc::new_QueryMerFile(@_); bless $self, $pkg if defined($self); } *get = *jellyfishc::QueryMerFile_get; sub DESTROY { return unless $_[0]->isa('HASH'); my $self = tied(%{$_[0]}); return unless defined $self; delete $ITERATORS{$self}; if (exists $OWNER{$self}) { jellyfishc::delete_QueryMerFile($self); delete $OWNER{$self}; } } sub DISOWN { my $self = shift; my $ptr = tied(%$self); delete $OWNER{$ptr}; } sub ACQUIRE { my $self = shift; my $ptr = tied(%$self); $OWNER{$ptr} = 1; } ############# Class : jellyfish::ReadMerFile ############## package jellyfish::ReadMerFile; use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); @ISA = qw( jellyfish ); %OWNER = (); %ITERATORS = (); sub new { my $pkg = shift; my $self = jellyfishc::new_ReadMerFile(@_); bless $self, $pkg if defined($self); } *next_mer = *jellyfishc::ReadMerFile_next_mer; *mer = *jellyfishc::ReadMerFile_mer; *count = *jellyfishc::ReadMerFile_count; *each = *jellyfishc::ReadMerFile_each; sub DESTROY { return unless $_[0]->isa('HASH'); my $self = tied(%{$_[0]}); return unless defined $self; delete $ITERATORS{$self}; if (exists $OWNER{$self}) { jellyfishc::delete_ReadMerFile($self); delete $OWNER{$self}; } } sub DISOWN { my $self = shift; my $ptr = tied(%$self); delete $OWNER{$ptr}; } sub ACQUIRE { my $self = shift; my $ptr = tied(%$self); $OWNER{$ptr} = 1; } ############# Class : jellyfish::HashCounter ############## package jellyfish::HashCounter; use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); @ISA = qw( jellyfish ); %OWNER = (); %ITERATORS = (); sub new { my $pkg = shift; my $self = jellyfishc::new_HashCounter(@_); bless $self, $pkg if defined($self); } *size = *jellyfishc::HashCounter_size; *val_len = *jellyfishc::HashCounter_val_len; *add = *jellyfishc::HashCounter_add; *update_add = *jellyfishc::HashCounter_update_add; *get = *jellyfishc::HashCounter_get; sub DESTROY { return unless $_[0]->isa('HASH'); my $self = tied(%{$_[0]}); return unless defined $self; delete $ITERATORS{$self}; if (exists $OWNER{$self}) { jellyfishc::delete_HashCounter($self); delete $OWNER{$self}; } } sub DISOWN { my $self = shift; my $ptr = tied(%$self); delete $OWNER{$ptr}; } sub ACQUIRE { my $self = shift; my $ptr = tied(%$self); $OWNER{$ptr} = 1; } ############# Class : jellyfish::HashSet ############## package jellyfish::HashSet; use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); @ISA = qw( jellyfish ); %OWNER = (); %ITERATORS = (); sub new { my $pkg = shift; my $self = jellyfishc::new_HashSet(@_); bless $self, $pkg if defined($self); } *size = *jellyfishc::HashSet_size; *add = *jellyfishc::HashSet_add; *get = *jellyfishc::HashSet_get; sub DESTROY { return unless $_[0]->isa('HASH'); my $self = tied(%{$_[0]}); return unless defined $self; delete $ITERATORS{$self}; if (exists $OWNER{$self}) { jellyfishc::delete_HashSet($self); delete $OWNER{$self}; } } sub DISOWN { my $self = shift; my $ptr = tied(%$self); delete $OWNER{$ptr}; } sub ACQUIRE { my $self = shift; my $ptr = tied(%$self); $OWNER{$ptr} = 1; } # ------- VARIABLE STUBS -------- package jellyfish; 1;