package Receiver; use strict; use warnings; use WardenApp::Constants; use constant RECEIVER_SECTION => 'receiver'; use constant SQL_INSERT_EVENT => "INSERT INTO events VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)"; sub openfile { my ($cfg) = @_; my ($filename, $openparam); my $method = Constants::assignValue('FILE.method', $cfg, RECEIVER_SECTION); if($method ne 'newfile' and $method ne 'append') { $method = Constants::getDefaultValue('FILE.method', RECEIVER_SECTION); } if($method eq 'newfile') { my ($sec, $min, $hr, $day, $mon, $year) = localtime; $openparam = ">"; $filename = sprintf("%02d-%02d-%04d_%02d-%02d", $day, $mon + 1, 1900 + $year, $hr, $min); } elsif ($method eq 'append') { $openparam = ">>"; $filename = Constants::assignValue('FILE.appendfilename', $cfg, RECEIVER_SECTION); } my $directory = Constants::assignValue('FILE.directory', $cfg, RECEIVER_SECTION); my $extension = Constants::assignValue('FILE.extension', $cfg, RECEIVER_SECTION); my $openstring = $openparam . $directory . "/" . $filename . "." . $extension; open FILE, $openstring or die $!; return \*FILE; } sub saveToDB { my ($dbh, $event, $db_engine) = @_; my $sth = $$dbh->prepare(SQL_INSERT_EVENT); #my $data = join(',', @$event); $sth->execute(@$event) || die $sth->errstr; print "Receiver-$db_engine:\tError \"$@\" while processing data\n" if $@; } sub saveToFile { my ($file, $event) = @_; my $data = join(';', @$event); print $file $data . "\n"; } sub printToStdout { my $event = shift; print "| " . join(' | ', @$event ) . " |" . "\n"; } sub closeFile { my $file = shift; close $file; } 1;