#!/opt/SUNWstade/bin/perl -I/opt/SUNWstade/lib
#<copyright>
# ----------------------------------------------------------
# Sun Proprietary/Confidential Code
# Copyright 2001, Sun Microsystems, Inc. All rights reserved.
# ----------------------------------------------------------
#</copyright>


use Ilist;
use Message;
use Util;
use Getopt::Std;


use Debug;

Debug->level(3);


if (!getopts("sh", \%opts) || $opts{h}) {
    print "Usage: readToc -s [summary] file1 file2 ...\n";
    exit(1);
}

$summary = $opts{s};

foreach my $file (@ARGV) {
  open(O, $file);

  while ($l = <O>) {
    $toC .= $l;
    if ($l =~ /^-E/) {
      $ed = Message->fromC($toC);
      &print($ed);
      $toC= "";
    }
  }
  close(O);
}

print "COUNT Event-Key\n";
foreach my $e (sort keys %COUNT) {
   print sprintf("  %2.2d  %s\n", $COUNT{$e}, $e);
}

sub print {
  my($ed) = @_;
  if ($summary) {
     $ev = $ed->instances(0);
     my($etime) = $ed->eventTime();
     my $key = $ev->value("EventType") . ":" . $ev->value("Target") . ":" .
               $ev->value("Component") . ":" . 
               ($ev->value("Aggregate") > 0 ? "P": "C");
     $COUNT{$key}++;
     foreach my $el ('EventId', 'EventType', 'Target', 'Component','Severity', 'Actionable', 'GridCode',
                     'Description') {
       my $val = $ev->value($el);
       print sprintf("%-12s = %s\n", $el, $val) if ($val);
     }
     print "Date         = $etime \n\n";
  } else {
     print $ed->toString;
  }
}


