annotate variant_effect_predictor/Bio/DB/Registry.pm @ 0:2bc9b66ada89 draft default tip

Uploaded
author mahtabm
date Thu, 11 Apr 2013 06:29:17 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1 # POD documentation - main docs before the code
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
2
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
3 # $Id: Registry.pm,v 1.12.2.2 2003/06/26 11:07:10 heikki Exp $
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
4
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
5
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
6 =head1 NAME
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
7
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
8 Bio::DB::Registry - Access to the Open Bio Database Access registry scheme
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
9
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
10 =head1 SYNOPSIS
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
11
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
12 use Bio::DB::Registry();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
13
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
14 $registry = new Bio::DB::Registry();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
15
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
16 @available_services = $registry->services;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
17
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
18 $db = $registry->get_database('embl');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
19 # $db is a Bio::DB::SeqI implementing class
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
20
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
21 $seq = $db->get_Seq_by_acc("J02231");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
22
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
23 =head1 DESCRIPTION
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
24
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
25 This module provides access to the Open Bio Database Access scheme,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
26 which provides a cross language and cross platform specification of how
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
27 to get to databases.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
28
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
29 If the user or system administrator has not installed the default init
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
30 file, seqdatabase.ini, in /etc/bioinformatics or ${HOME}/.bioinformatics
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
31 then creating the first Registry object copies the default settings from
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
32 the net. The Registry object will attempt to store these settings in
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
33 ${HOME}/.bioinformatics/seqdatabase.ini.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
34
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
35 Users can specify one or more custom locations for the init file by
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
36 setting $OBDA_SEARCH_PATH to those directories, where multiple
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
37 directories should be separated by ';'.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
38
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
39 =head1 CONTACT
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
40
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
41 Ewan Birney originally wrote this class.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
42
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
43 =head2 Reporting Bugs
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
44
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
45 Report bugs to the Bioperl bug tracking system to help us keep track
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
46 the bugs and their resolution. Bug reports can be submitted via email
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
47 or the web:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
48
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
49 bioperl-bugs@bio.perl.org
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
50 http://bugzilla.bioperl.org/
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
51
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
52 =head1 APPENDIX
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
53
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
54 The rest of the documentation details each of the object
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
55 methods. Internal methods are usually preceded with a _
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
56
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
57 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
58
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
59
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
60 # Let the code begin...
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
61
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
62 package Bio::DB::Registry;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
63
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
64 use vars qw(@ISA $VERSION $OBDA_SPEC_VERSION $OBDA_SEARCH_PATH);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
65 use strict;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
66
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
67 use Bio::Root::Root;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
68 @ISA = qw(Bio::Root::Root);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
69 use Bio::DB::Failover;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
70 use Bio::Root::HTTPget;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
71
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
72 $VERSION = '1.2';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
73 BEGIN {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
74 $OBDA_SPEC_VERSION = 1.0;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
75 if (defined $ENV{OBDA_SEARCH_PATH}) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
76 $OBDA_SEARCH_PATH = $ENV{OBDA_SEARCH_PATH} || '';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
77
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
78 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
79 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
80
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
81 my %implement = (
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
82 'biocorba' => 'Bio::CorbaClient::SeqDB',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
83 'flat' => 'Bio::DB::Flat',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
84 'biosql' => 'Bio::DB::BioSQL::BioDatabaseAdaptor',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
85 'biofetch' => 'Bio::DB::BioFetch'
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
86 );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
87
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
88 my $fallbackRegistryURL = 'http://www.open-bio.org/registry/seqdatabase.ini';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
89
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
90
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
91 sub new {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
92 my ($class,@args) = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
93 my $self = $class->SUPER::new(@args);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
94
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
95 # open files in order
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
96 $self->{'_dbs'} = {};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
97 $self->_load_registry();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
98 return $self;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
99 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
100
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
101
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
102 sub _load_registry {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
103 my ($self) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
104
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
105 my $home = (getpwuid($>))[7];
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
106 my $f;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
107
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
108 if ( $OBDA_SEARCH_PATH ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
109 foreach ( split /;/,$OBDA_SEARCH_PATH ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
110 next unless -e $_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
111 open(F,"$OBDA_SEARCH_PATH/seqdatabase.ini");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
112 $f = \*F;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
113 last;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
114 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
115 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
116 elsif( -e "$home/.bioinformatics/seqdatabase.ini" ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
117 open(F,"$home/.bioinformatics/seqdatabase.ini");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
118 $f = \*F;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
119 } elsif ( -e "/etc/bioinformatics/seqdatabase.ini" ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
120 open(F,"/etc/bioinformatics/seqdatabase.ini");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
121 $f = \*F;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
122 } else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
123 # waiting for information
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
124 $self->warn("No seqdatabase.ini file found in ~/.bioinformatics/ \nor in /etc/bioinformatics/.\nor in directory specified by $OBDA_SEARCH_PATH".
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
125 "Using web to get database registry from \n$fallbackRegistryURL");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
126
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
127 # Last gasp. Try to use HTTPget module to retrieve the registry from
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
128 # the web...
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
129
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
130 $f = Bio::Root::HTTPget::getFH($fallbackRegistryURL);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
131
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
132 # store the default registry file
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
133 mkdir "$home/.bioinformatics" unless -e "$home/.bioinformatics";
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
134 open(F,">$home/.bioinformatics/seqdatabase.ini");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
135 print F while (<$f>);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
136 close F;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
137
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
138 $self->warn("Stored the default registry configuration into:\n".
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
139 " $home/.bioinformatics/seqdatabase.ini");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
140
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
141 open(F,"$home/.bioinformatics/seqdatabase.ini");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
142 $f = \*F;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
143
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
144 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
145
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
146 while( <$f> ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
147 /^VERSION=([\d\.]+)/;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
148 $self->throw("Do not know about this version [$1] > $OBDA_SPEC_VERSION")
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
149 if $1 > $OBDA_SPEC_VERSION or !$1;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
150 last;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
151 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
152
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
153 while( <$f> ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
154 if( /^#/ ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
155 next;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
156 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
157 if( /^\s/ ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
158 next;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
159 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
160
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
161 if( /\[(\w+)\]/ ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
162 my $db = $1;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
163 my $hash = {};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
164 while( <$f> ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
165 chomp();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
166 /^#/ && next;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
167 /^$/ && last;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
168 my ($tag,$value) = split('=',$_);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
169 $value =~ s/\s//g;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
170 $tag =~ s/\s//g;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
171 $hash->{"\L$tag"} = lc $value;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
172 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
173
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
174 if( !exists $self->{'_dbs'}->{$db} ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
175 my $failover = Bio::DB::Failover->new();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
176 $self->{'_dbs'}->{$db}=$failover;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
177 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
178 my $class;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
179 if (defined $implement{$hash->{'protocol'}}) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
180 $class = $implement{$hash->{'protocol'}};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
181 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
182 else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
183 $self->warn("Registry does not support protocol ".$hash->{'protocol'});
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
184 next;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
185 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
186 eval "require $class";
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
187
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
188 if ($@) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
189 $self->verbose && $self->warn("Couldn't load $class");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
190 next;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
191 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
192
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
193 else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
194 eval {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
195 my $randi = $class->new_from_registry(%$hash);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
196 $self->{'_dbs'}->{$db}->add_database($randi); };
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
197 if ($@) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
198 $self->warn("Couldn't call new_from_registry on [$class]\n$@");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
199 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
200 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
201 next; # back to main loop
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
202 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
203 $self->warn("Uninterpretable line in registry, $_");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
204 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
205 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
206
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
207 =head2 get_database
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
208
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
209 Title : get_database
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
210 Usage : my $db = $registry->get_database($dbname);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
211 Function: Retrieve a Database object which implements Bio::DB::SeqI interface
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
212 Returns : Bio::DB::SeqI object
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
213 Args : string describing the name of the database
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
214
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
215 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
216
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
217 sub get_database {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
218 my ($self,$dbname) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
219
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
220 $dbname = lc $dbname;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
221 if( !defined $dbname ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
222 $self->warn("must get_database with a database name");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
223 return undef;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
224 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
225 if( !exists $self->{'_dbs'}->{$dbname} ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
226 $self->warn("No database in with $dbname in registry");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
227 return undef;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
228 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
229 return $self->{'_dbs'}->{$dbname};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
230 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
231
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
232 =head2 services
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
233
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
234 Title : services
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
235 Usage : my @available = $registry->services();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
236 Function: returns list of possible services
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
237 Returns : list of strings
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
238 Args : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
239
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
240
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
241 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
242
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
243 sub services{
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
244 my ($self) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
245 return () unless ( defined $self->{'_dbs'} &&
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
246 ref( $self->{'_dbs'} ) =~ /HASH/i);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
247 return keys %{$self->{'_dbs'}};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
248 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
249
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
250
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
251 ## End of Package
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
252
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
253 1;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
254
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
255 __END__
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
256