object proxying system
[scpubgit/Tak.git] / lib / Tak / ServiceManager.pm
CommitLineData
36cf3bcb 1package Tak::ServiceManager;
2
3use Moo;
4
5has service => (is => 'ro', required => 1);
6
7sub start_request {
8 my ($self, $req, $type, @args) = @_;
9 unless ($type) {
10 $req->respond(MISTAKE => request_type => "No request type given");
11 return;
12 }
13 my $service = $self->service;
14 if (my $meth = $service->can("handle_${type}")) {
15 $req->respond($service->$meth(@args));
16 return;
17 }
18 $req->respond(MISTAKE => request_type => "Unknown request type ${type}");
19}
20
211;