new Client/Router/Service arch
[scpubgit/Tak.git] / lib / Tak / Request.pm
CommitLineData
36cf3bcb 1package Tak::Request;
2
31a246e4 3use Tak::Result;
36cf3bcb 4use Moo;
5
31a246e4 6has on_progress => (is => 'ro');
36cf3bcb 7
31a246e4 8has on_result => (is => 'ro', required => 1);
36cf3bcb 9
31a246e4 10sub progress {
11 my ($self, @report) = @_;
12 if (my $cb = $self->on_progress) {
13 $cb->(@report);
14 }
15}
ca30c15e 16
31a246e4 17sub result {
18 my ($self, $type, @data) = @_;
19 $self->on_result->(Tak::Result->new(type => $type, data => \@data));
36cf3bcb 20}
21
31a246e4 22sub success { shift->result(success => @_) }
23sub mistake { shift->result(mistake => @_) }
24sub failure { shift->result(failure => @_) }
25sub fatal { shift->result(fatal => @_) }
26
36cf3bcb 271;