client and server manage to talk
[scpubgit/Tak.git] / lib / Tak / ServiceManager.pm
1 package Tak::ServiceManager;
2
3 use Moo;
4
5 has service => (is => 'ro', required => 1);
6
7 sub 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
21 1;