Bio::Das::ProServer::SourceAdaptor::simple_volmap - Bio::Das::ProServer::SourceAdaptor::simple_volmap documentation


Bio-Das-ProServer documentation Contained in the Bio-Das-ProServer distribution.

Index


Code Index:

NAME

Top

  Bio::Das::ProServer::SourceAdaptor::simple_volmap

VERSION

Top

$Revision: 524 $

AUTHOR

Top

  Andy Jenkinson <andy.jenkinson@ebi.ac.uk>

SYNOPSIS

Top

  Volume map for Vol01:
  <host>/das/<source>/volmap?query=volumeID




DESCRIPTION

Top

  Serves up volume map DAS responses, using a file-based transport.

SUBROUTINES/METHODS

Top

build_volmap

init

known_segments

length

CONFIGURATION AND ENVIRONMENT

Top

  [simple_volmap]
  adaptor               = simple_volmap
  state                 = on
  transport             = file
  filename              = /data/volmap.txt
  coordinates           = MyCoordSys -> Vol01

  Tab-separated file formats:

  --volmap.txt--
  id	length	class	type	version	link	linktxt

DEPENDENCIES

Top

Bio::Das::ProServer::SourceAdaptor

DIAGNOSTICS

Top

INCOMPATIBILITIES

Top

None reported

BUGS AND LIMITATIONS

Top

None reported

LICENSE AND COPYRIGHT

Top


Bio-Das-ProServer documentation Contained in the Bio-Das-ProServer distribution.

#########
# Author: $andyjenkinson$
# Last Modified: $Date: 2008-09-21 19:23:26 +0100 (Sun, 21 Sep 2008) $
# $Id: simple_volmap.pm 524 2008-09-21 18:23:26Z andyjenkinson $
# $HeadURL: https://proserver.svn.sf.net/svnroot/proserver/trunk/lib/Bio/Das/ProServer/SourceAdaptor/simple_volmap.pm $
#
package Bio::Das::ProServer::SourceAdaptor::simple_volmap;
use strict;
use warnings;
use base qw(Bio::Das::ProServer::SourceAdaptor);

our $VERSION = do { my ($v) = (q$Revision: 524 $ =~ /\d+/mxg); $v; };

sub init {
  my $self = shift;
  $self->{capabilities} = { map { $_ => '1.0' } qw(volmap entry_points) };
  return;
}

sub length { ## no critic
  my ($self, $segment) = @_;
  return $self->transport->query("field0 = $segment")->[0]->[1];
}

sub known_segments {
  my $self = shift;
  return  map { $_->[0] } @{ $self->transport->query('field0 like .*') };
}

sub build_volmap {
  my ($self, $segment) = @_;
  my $row    = $self->transport->query("field0 = $segment")->[0];
  my $volmap = {};

  for (qw(id _tmp class type version link linktxt)) {
    $volmap->{$_} = shift @{$row};
  }

  $volmap->{note} = [@{$row}];
  return $volmap;
}

1;
__END__