Skip to content
Snippets Groups Projects
Receiver.pm 1.74 KiB
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;