File Coverage

blib/lib/Tie/File/Indexed/Freeze.pm
Criterion Covered Total %
statement 13 13 100.0
branch 4 4 100.0
condition 2 3 66.6
subroutine 5 5 100.0
pod 2 2 100.0
total 26 27 96.3


line stmt bran cond sub pod time code
1             ##-*- Mode: CPerl -*-
2             ##
3             ## File: Tie/File/Indexed/Freeze.pm
4             ## Author: Bryan Jurish
5             ## Description: tied array access to indexed data files: Storable-frozen references (native byte-order)
6              
7             package Tie::File::Indexed::Freeze;
8 2     2   1070 use Tie::File::Indexed;
  2         2  
  2         45  
9 2     2   6 use Storable;
  2         2  
  2         66  
10 2     2   6 use strict;
  2         1  
  2         223  
11              
12             ##======================================================================
13             ## Globals
14              
15             our @ISA = qw(Tie::File::Indexed);
16              
17             ##======================================================================
18             ## Subclass API: Data I/O: overrides
19              
20             ## $bool = $tfi->writeData($data)
21             ## + override transparently encodes data using Storable::freeze()
22             sub writeData {
23 10 100   10 1 17 return 1 if (!defined($_[1])); ##-- don't waste space on undef
24 9         15 return $_[0]{datfh}->print( Storable::freeze($_[1]) );
25             }
26              
27             ## $data_or_undef = $tfi->readData($length)
28             ## + override transparently decodes data using Storable::thaw()
29             sub readData {
30 20 100 66 20 1 59 return undef if ($_[1]==0 || !defined(my $buf=$_[0]->SUPER::readData($_[1])));
31 16         31 return Storable::thaw($buf);
32             }
33              
34              
35             1; ##-- be happpy