#!/usr/bin/perl -w
# This is a perl module representing an asynchronous biomoby service.
# There is no need to edit this file, but you will need to implement
# the file [% impl.package %]
#
# It includes some hard-coded paths - they were added during the
# generate service call.
#
# $Id: service-async.tt,v 1.1 2008/08/25 16:27:28 kawas Exp $
# ---------------------------------------------------------------
[%# A template for an asynchronous biomoby service.
===================================
Expected/recognized parameters:
obj ... a service definition, type MOSES::MOBY::Def::Service
-%]
#-----------------------------------------------------------------
# Authority: [% obj.authority %]
# Service name: [% obj.name %]
# Generated: [% USE Date (format = '%d-%b-%Y %H:%M:%S %Z') %][% Date.format %]
# Contact: Martin Senger <martin.senger@gmail.com> or
# Edward Kawas <edward.kawas@gmail.com>
#-----------------------------------------------------------------
package [% impl.package %]Async;
use strict;
use FindBin qw( $Bin );
use lib $Bin;
use MOBY::Async::SimpleServer;
use base qw(MOBY::Async::SimpleServer);
use [% impl.package %];
# how long before syncronous call times out (seconds)
use constant TIMEOUT => 180;
# This environment variable must be set - it is used internally
# by MOBY::Async::SimpleServer class
$ENV{AUTHURI} = '[% obj.authority %]';
# this is the callback routine that calls
# [% impl.package %]->[% obj.name %]
my $subroutine = sub {
my ($self, $data) = @_;
return [% impl.package %]->[% obj.name %]($data);
};
# This is the method which answers to synchronous requests
sub [% obj.name %] {
my $self = shift @_;
# Here you can choose between sync or error
return $self->sync($subroutine, TIMEOUT, @_);
#return $self->error(@_);
}
# This is the method which answers to asynchronous requests
sub [% obj.name %]_submit {
my $self = shift @_;
return $self->async($subroutine, @_);
}
1;
__END__