Bio-Das-ProServer

 view release on metacpan or  search on metacpan

lib/Bio/Das/ProServer.pm  view on Meta::CPAN

  my @args = @_;
  my $heap = $args[HEAP];
  DEBUG and
    carp( "Client handler $PID/", $args[SESSION]->ID,
          " flushed its response.\n",
          "Client handler $PID/", $args[SESSION]->ID, " is shutting down.\n"
        );
  return delete $heap->{client};
}

### We're done.

sub make_pidfile {
  my ($self, $pidfile) = @_;
  my ($spidfile)       = $pidfile =~ /([a-zA-Z0-9\.\/_\-]+)/mxs;
  __PACKAGE__->log(qq(Writing pidfile $spidfile));
  $self->{'pidfile'} = $pidfile;
  open my $fh, '>', $spidfile or croak "Cannot create pid file: $ERRNO\n";
  print {$fh} "$PID\n" or croak $OS_ERROR;
  close $fh or carp "Error closing pid file: $ERRNO";
  return $PID;
}

sub remove_pidfile {
  my ($self)     = @_;
  my $spidfile    = $self->{'pidfile'};
  if($spidfile && -f $spidfile) {
    unlink $spidfile;
    DEBUG and carp 'Removed pidfile';
  }
  return;
}

sub log { ## no critic
  my ($self, @args) = @_;
  print {*STDERR} (strftime '[%Y-%m-%d %H:%M:%S] ', localtime), @args, "\n" or croak $OS_ERROR;
  return;
}

1;
__END__

=head1 NAME

Bio::Das::ProServer

=head1 VERSION

$LastChangedRevision: 687 $

=head1 SYNOPSIS

  eg/proserver -help

=head1 DESCRIPTION

  ProServer is a server implementation of the DAS protocol.
  http://biodas.org/

  ProServer is based on example preforking POEserver at
  http://poe.perl.org/?POE_Cookbook/Web_Server_With_Forking

=head1 DIAGNOSTICS

  To run in non-pre-forking, debug mode:
  eg/proserver -debug -x

  Otherwise stdout logs to proserver-hostname.log and stderr to proserver-hostname.err

=head1 CONFIGURATION AND ENVIRONMENT

  See eg/proserver.ini

=head1 SUBROUTINES/METHODS

=head2 run

=head2 DEBUG

=head2 server_spawn

=head2 server_start

=head2 server_stop

=head2 server_got_error

=head2 server_do_fork

=head2 server_got_sig_hup

=head2 server_got_sig_int

=head2 server_got_sig_chld

=head2 server_got_connection

=head2 client_start

=head2 client_stop

=head2 client_got_request

=head2 response_xsl

=head2 response_general

=head2 response_dsn

=head2 response_sources

=head2 response_homepage

=head2 build_das_response

=head2 client_got_error

=head2 client_flushed_request

=head2 make_pidfile



( run in 1.248 second using v1.01-cache-2.11-cpan-39bf76dae61 )