1 package OpenSRF::Application::Demo::Math;
2 use base qw/OpenSRF::Application/;
3 use OpenSRF::Application;
4 use OpenSRF::Utils::Logger qw/:level/;
5 use OpenSRF::DomainObject::oilsResponse;
6 use OpenSRF::EX qw/:try/;
13 our $log = 'OpenSRF::Utils::Logger';
19 my $method_name = shift;
22 my $session = OpenSRF::AppSession->create( "opensrf.dbmath" );
23 my $request = $session->request( "$method_name", @params );
24 my $response = $request->recv();
25 if(!$response) { return undef; }
26 if($response->isa("Error")) {throw $response ($response->stringify);}
29 return $response->content;
32 __PACKAGE__->register_method( method => 'send_request', api_name => '_send_request' );
34 __PACKAGE__->register_method( method => 'add_1', api_name => 'add' );
40 # use ->dispatch rather than run; results of the delegated
41 # method will be directly passed to the caller
42 return $self->method_lookup('_send_request')->dispatch('add', @args);
45 __PACKAGE__->register_method( method => 'sub_1', api_name => 'sub' );
51 my $meth = $self->method_lookup('_send_request');
52 my ($result) = $meth->run('sub',@args);
57 __PACKAGE__->register_method( method => 'mult_1', api_name => 'mult' );
63 my $meth = $self->method_lookup('_send_request');
64 my ($result) = $meth->run('mult',@args);
69 __PACKAGE__->register_method( method => 'div_1', api_name => 'div' );
75 my $meth = $self->method_lookup('_send_request');
76 my ($result) = $meth->run('div',@args);