client and server manage to talk
[scpubgit/Tak.git] / lib / Tak / Remote.pm
CommitLineData
36cf3bcb 1package Tak::Remote;
2
3use Moo;
4
5has router => (is => 'ro', required => 1);
6
7has name => (is => 'ro', required => 1);
8
9sub blocking_request {
10 my ($self, @payload) = @_;
11 local our $Request = $self->router->send_request($self, $self->name, @payload);
12 local our $Done;
13 local our @Result;
14 $self->router->run_until($Done);
15 return @Result;
16}
17
18sub send_response {
19 my ($self, $tag, @result) = @_;
20 {
21 our $Request;
22 die "Out of order response ${\$Request->tag}, expecting ${tag}"
23 if $Request->tag ne $tag;
24 }
25 our @Result = @result;
26 our $Done = 1;
27}
28
291;