line |
true |
false |
branch |
24
|
4 |
3 |
if ($$self{'db_file'}) |
43
|
3 |
4 |
if ($$self{'db'}->exists) |
50
|
2 |
1 |
if ($$self{'data'}{'chain'} and $$self{'data'}{'chain'}{'max_items'} != $options{'max_items'} || $$self{'data'}{'chain'}{'interval'} != $options{'interval'}) |
57
|
1 |
2 |
if ($options{'reset'} or not $$self{'db'}->backend_store_ok) |
63
|
6 |
1 |
if ($create) |
64
|
0 |
6 |
unless $$self{'db'}->create(\%options) |
84
|
2 |
4 |
if ($$self{'changed'}) |
123
|
26 |
18 |
if (exists $options{'key'}) { } |
144
|
3 |
2 |
if (exists $options{'key'}) { } |
233
|
0 |
6 |
unless ($$self{'max_items'} and $$self{'interval'}) |
238
|
6 |
0 |
unless ($$self{'nof_buckets'}) |
242
|
1 |
5 |
if ($$self{'nof_buckets'} > $$self{'interval'}) |
305
|
1 |
120 |
if $$self{'current_idx'} == $$self{'tail_bucket_idx'} |
308
|
0 |
120 |
if $$self{'current_idx'} > $#{$$self{'buckets'};} |
330
|
0 |
0 |
unless (scalar keys %{$$b{'count'};}) |
370
|
2 |
1 |
if $$self{'tail_bucket_idx'} > $#{$$self{'buckets'};} |
373
|
1 |
2 |
if $$self{'head_bucket_idx'} > $#{$$self{'buckets'};} |
385
|
0 |
1 |
unless defined $time |
394
|
0 |
1 |
if ($self->last_bucket->{'time'}{'stop'} >= $time) |
403
|
0 |
1 |
if ($$self{'buckets'}[$$self{'tail_bucket_idx'}]{'time'}->max < $time - $$self{'interval'}) |
432
|
26 |
19 |
if ($$last_bucket{'time'}->member($time)) |
438
|
18 |
121 |
if ($$b{'time'}->member($time)) |
455
|
26 |
18 |
if defined $options{'key'} |
458
|
22 |
22 |
if defined $options{'time'} |
461
|
0 |
44 |
if defined $options{'count'} |
467
|
1 |
43 |
unless ($b) |
475
|
38 |
362 |
if exists $$self{'buckets'}[$_]{'count'}{$key} |
479
|
9 |
35 |
if ($val >= $$self{'max_items'}) { } |
499
|
3 |
2 |
if defined $options{'key'} |
505
|
5 |
45 |
if (exists $$self{'buckets'}[$_]{'count'}{$key}) |
583
|
0 |
2 |
unless (-f $$self{'db_file'}) |
591
|
0 |
2 |
if ($@) |
631
|
0 |
15 |
unless open $$self{'fh'}, '+<', $$self{'db_file'} |