File Coverage

blib/lib/Tangence/Server/Context.pm
Criterion Covered Total %
statement 35 35 100.0
branch 2 4 50.0
condition n/a
subroutine 9 9 100.0
pod 0 4 0.0
total 46 52 88.4


line stmt bran cond sub pod time code
1             # You may distribute under the terms of either the GNU General Public License
2             # or the Artistic License (the same terms as Perl itself)
3             #
4             # (C) Paul Evans, 2010-2022 -- leonerd@leonerd.org.uk
5              
6 9     9   115 use v5.26;
  9         31  
7 9     9   48 use Object::Pad 0.66;
  9         116  
  9         51  
8              
9             package Tangence::Server::Context 0.30;
10             class Tangence::Server::Context;
11              
12 9     9   3200 use Carp;
  9         25  
  9         594  
13              
14 9     9   115 use Tangence::Constants;
  9         24  
  9         6843  
15              
16 23     23 0 54 field $stream :param :reader;
  23         125  
17             field $token :param;
18              
19 95         155 sub BUILDARGS ( $class, $stream, $token )
  95         125  
20 95     95 0 195 {
  95         162  
  95         134  
21 95         535 return ( stream => $stream, token => $token );
22             }
23              
24             field $responded;
25              
26             # TODO: Object::Pad probably should do this bit
27             method DESTROY
28 95     95   225 {
29 95 50       624 $responded or croak "$self never responded";
30             }
31              
32 95         146 method respond ( $message )
  95         183  
  95         135  
33 95     95 0 228 {
34 95 50       206 $responded and croak "$self has responded once already";
35              
36 95         383 $stream->respond( $token, $message );
37              
38 95         3796 $responded = 1;
39              
40 95         394 return;
41             }
42              
43 6         10 method responderr ( $msg )
  6         9  
  6         7  
44 6     6 0 26 {
45 6         14 chomp $msg; # In case of simple ->responderr( $@ );
46              
47 6         26 $self->respond( Tangence::Message->new( $stream, MSG_ERROR )
48             ->pack_str( $msg )
49             );
50             }
51              
52             =head1 AUTHOR
53              
54             Paul Evans
55              
56             =cut
57              
58             0x55AA;