19 'verbose' => \
$verbose_opt,
22 pod2usage
(-exitval
=> -1, -verbose
=> 0) if $help_opt;
23 pod2usage
(-exitval
=> -2, -verbose
=> 2) if $man_opt;
27 # if the first argument is a file, we'll assume it s a journal file, and
28 # use the PrintingListener
31 $listener_or_code = "LWES::Listeners::EventPrintingListener";
35 $listener_or_code = shift @ARGV;
38 # determine the callback which will process each event
39 my $processEventFunc = getProcessEventFunc
($listener_or_code, @ARGV);
41 foreach my $journal (@ARGV)
45 open FH
, "zcat $journal |";
47 # read and parse header
49 while ( read (FH
, $header_bytes, 22) == 22)
51 my $header = bytesToHeader
($header_bytes);
53 # read and parse bytes
55 my $n = read (FH
, $event_bytes, $header->{'PayloadLength'});
56 if (defined ($n) && $n == $header->{'PayloadLength'})
58 my $event = bytesToEvent
($event_bytes);
60 # merge header into event
61 foreach my $h (keys %{$header})
63 unless (exists ($event->{$h}))
65 $event->{$h} = $header->{$h};
70 $processEventFunc->($event);
74 die "malformed or truncated journal";