File Coverage

blib/lib/Autocache/WorkQueue.pm
Criterion Covered Total %
statement 9 30 30.0
branch 0 2 0.0
condition n/a
subroutine 3 7 42.8
pod 0 4 0.0
total 12 43 27.9


line stmt bran cond sub pod time code
1             package Autocache::WorkQueue;
2              
3 5     5   28 use Any::Moose;
  5         11  
  5         32  
4              
5 5     5   2814 use Autocache::Logger qw(get_logger);
  5         10  
  5         1833  
6              
7             #
8             # Null Memory Strategy - never expire, in memory cache
9             #
10              
11             has '_queue' => (
12             is => 'rw',
13             default => sub { [] },
14             init_arg => undef,
15             );
16              
17             #
18             # push
19             #
20             sub push
21             {
22 0     0 0   my ($self,$task) = @_;
23 0           get_logger()->debug( "push" );
24 0           push @{$self->_queue}, $task;
  0            
25 0           return 1;
26             }
27              
28             #
29             # pop
30             #
31             sub pop
32             {
33 0     0 0   my ($self,$key,$rec) = @_;
34 0           get_logger()->debug( "pop" );
35 0           shift @{$self->_queue};
  0            
36             }
37              
38             sub size
39             {
40 0     0 0   my ($self,$key,$rec) = @_;
41 0           get_logger()->debug( "size" );
42 0           return scalar @{$self->_queue};
  0            
43             }
44              
45              
46             #
47             # execute
48             #
49             sub execute
50             {
51 0     0 0   my ($self) = @_;
52 0           get_logger()->debug( "execute" );
53 0 0         return 0 unless $self->size();
54 0           my $count = 0;
55 0           while( my $task = $self->pop )
56             {
57 0           $task->();
58 0           ++$count;
59             }
60 0           return $count;
61             }
62              
63 5     5   31 no Any::Moose;
  5         9  
  5         24  
64             __PACKAGE__->meta->make_immutable;
65              
66             1;