]> www.fi.muni.cz Git - slotcarman.git/blob - SCX/LogReader.pm
78d2b50768c61a8414f8ea24a8c6eac4244772cf
[slotcarman.git] / SCX / LogReader.pm
1 #!/usr/bin/perl -w
2
3 package SCX::LogReader;
4
5 use strict;
6
7 sub new {
8         my ($class, $args) = @_;
9
10         open my $fh, '<', $args->{filename}
11                 or die "Can't open $args->{filename}: $!";
12         
13         my $self = {
14                 begin_time => $args->{begin_time} || 0,
15                 end_time   => $args->{end_time}   || (1<<32),
16                 fh         => $fh,
17         };
18
19         bless $self, $class;
20
21         return $self;
22 }
23
24 sub get_data {
25         my ($self) = @_;
26
27         my $fh = $self->{fh};
28
29         my ($line, $l_time, @data);
30         do {
31                 $line = <$fh>;
32                 return undef if !defined $line;
33
34                 chomp $line;
35                 $line =~ s/\A\s+//xms;
36
37                 ($l_time, @data) = split(/\s+/, $line);
38         } while ($l_time < $self->{begin_time});
39
40         return undef if $l_time > $self->{end_time};
41
42         return ($l_time, map { hex $_ } @data);
43 }
44
45 1;
46