File Coverage

blib/lib/AWS/XRay/Buffer.pm
Criterion Covered Total %
statement 27 27 100.0
branch 2 2 100.0
condition n/a
subroutine 7 7 100.0
pod 0 4 0.0
total 36 40 90.0


line stmt bran cond sub pod time code
1             package AWS::XRay::Buffer;
2              
3 15     15   3132 use 5.012000;
  15         47  
4 15     15   80 use strict;
  15         23  
  15         321  
5 15     15   77 use warnings;
  15         45  
  15         3465  
6              
7             sub new {
8 5     5 0 4856 my $class = shift;
9 5         16 my ($sock, $auto_flush) = @_;
10 5         46 bless {
11             buf => [],
12             sock => $sock,
13             auto_flush => $auto_flush,
14             }, $class;
15             }
16              
17             sub flush {
18 3     3 0 902 my $self = shift;
19 3         5 my $sock = $self->{sock};
20 3         4 for my $buf (@{ $self->{buf} }) {
  3         7  
21 4         34 $sock->syswrite($buf, length($buf));
22             }
23 3         60 $self->{buf} = [];
24 3         6 1;
25             }
26              
27             sub close {
28 2     2 0 28 my $self = shift;
29 2         5 $self->{buf} = [];
30 2         4 1;
31             }
32              
33             sub print {
34 15     15 0 3558 my $self = shift;
35 15         34 my $data = join("", @_);
36 15 100       39 if ($self->{auto_flush}) {
37 10         46 $self->{sock}->syswrite($data, length($data));
38             }
39             else {
40 5         6 push @{ $self->{buf} }, $data;
  5         12  
41             }
42             }
43              
44             1;