BioPerl
view release on metacpan or search on metacpan
Bio/DB/SeqFeature/Store/berkeleydb.pm view on Meta::CPAN
my ($delete,$db,$key,$id) = @_;
if ($delete) {
tied(%$db)->del_dup($key,$id);
} else {
$db->{$key} = $id;
}
}
# these methods return pointers to....
# the database that stores serialized objects
sub db {
my $self = shift;
my $d = $self->setting('db');
$self->setting(db=>shift) if @_;
$d;
}
sub parentage_db {
my $self = shift;
my $d = $self->setting('parentage_db');
$self->setting(parentage_db=>shift) if @_;
$d;
}
# the Bio::DB::Fasta object
sub dna_db {
my $self = shift;
my $d = $self->setting('dna_db');
$self->setting(dna_db=>shift) if @_;
$d;
}
# the specialized notes database
sub notes_db {
my $self = shift;
my $d = $self->setting('notes_db');
$self->setting(notes_db=>shift) if @_;
$d;
}
# the is_indexed_db
sub is_indexed_db {
my $self = shift;
my $d = $self->setting('is_indexed_db');
$self->setting(is_indexed_db=>shift) if @_;
$d;
}
# The indicated index berkeley db
sub index_db {
my $self = shift;
my $index_name = shift;
my $d = $self->setting($index_name);
$self->setting($index_name=>shift) if @_;
$d;
}
sub _mtime {
my $file = shift;
my @stat = stat($file);
return $stat[9];
}
# return names of all the indexes
sub _index_files {
return qw(names types locations attributes is_indexed);
}
# the directory in which we store our indexes
sub directory {
my $self = shift;
my $d = $self->setting('directory');
$self->setting(directory=>shift) if @_;
$d;
}
# flag indicating that we are a temporary database
sub temporary {
my $self = shift;
my $d = $self->setting('temporary');
$self->setting(temporary=>shift) if @_;
$d;
}
sub _permissions {
my $self = shift;
my $d = $self->setting('permissions') or return;
if (@_) {
my ($write,$create) = @_;
$self->setting(permissions=>[$write,$create]);
}
@$d;
}
# file name utilities...
sub _qualify {
my $self = shift;
my $file = shift;
return $self->directory .'/' . $file;
}
sub _features_path {
shift->_qualify('features.bdb');
}
sub _parentage_path {
shift->_qualify('parentage.bdb');
}
sub _type_path {
shift->_qualify('types.idx');
}
sub _location_path {
shift->_qualify('locations.idx');
}
sub _attribute_path {
shift->_qualify('attributes.idx');
}
( run in 0.682 second using v1.01-cache-2.11-cpan-39bf76dae61 )