summaryrefslogtreecommitdiff
path: root/lib/PerlDaemon/RunModules.pm
diff options
context:
space:
mode:
authorPaul Buetow (europa) <paul@buetow.org>2015-05-17 10:11:18 +0100
committerPaul Buetow (europa) <paul@buetow.org>2015-05-17 10:11:18 +0100
commitf01a1b81735086acb446d5c4b67fbdb406e6e6f2 (patch)
tree1f38b0cdd3c2c2f4d884077c91a04a4e19f19acb /lib/PerlDaemon/RunModules.pm
parentd6f78c532c2c23b1203b1c0332de89a8c8c53d04 (diff)
retab and restyle the source
Diffstat (limited to 'lib/PerlDaemon/RunModules.pm')
-rw-r--r--lib/PerlDaemon/RunModules.pm147
1 files changed, 73 insertions, 74 deletions
diff --git a/lib/PerlDaemon/RunModules.pm b/lib/PerlDaemon/RunModules.pm
index 6065c6a..1b6b486 100644
--- a/lib/PerlDaemon/RunModules.pm
+++ b/lib/PerlDaemon/RunModules.pm
@@ -1,4 +1,4 @@
-# PerlDaemon (c) 2010, 2011, Dipl.-Inform. (FH) Paul Buetow (http://perldaemon.buetow.org)
+# PerlDaemon (c) 2010, 2011, 2015, Dipl.-Inform. (FH) Paul Buetow (http://perldaemon.buetow.org)
package PerlDaemon::RunModules;
@@ -8,85 +8,84 @@ use threads qw(exit stringify);
use Time::HiRes qw(gettimeofday tv_interval);
sub new ($$) {
- my ($class, $conf) = @_;
-
- my $self = bless { conf => $conf }, $class;
-
- my $modulesdir = $conf->{'daemon.modules.dir'};
- my $logger = $conf->{logger};
- my %loadedmodules;
- my %scheduler;
-
- if (-d $modulesdir) {
- $logger->logmsg("Loading modules from $modulesdir");
-
- for my $module (<$modulesdir/*.pm>) {
- $logger->logmsg("Loading $module");
- eval "require '$module'";
- $logger->warn("Could not load module source file $module: $@")
- if defined $@ and length $@;
- }
-
- for my $name (grep /PerlDaemonModules/, keys %INC) {
- $name =~ s#.*(PerlDaemonModules)/(.*)\.pm$#$1::$2#;
- my $module = eval "${name}->new(\$conf)";
-
- if (defined $@ and length $@) {
- $logger->warn("Could not create module instance $name: $@");
-
- } else {
- $loadedmodules{$name} = $module;
- $scheduler{$name}{lastrun} = [0,0];
- $scheduler{$name}{carrysum} = 0;
- $scheduler{$name}{firstloop} = 1;
- $scheduler{$name}{interval} = $conf->{'daemon.modules.runinterval'};
- $logger->logmsg("Created module instance $name");
- }
- }
-
- } else {
- $logger->warn("Modules dir $modulesdir does not exist!");
- }
-
- $conf->{modules} = \%loadedmodules;
- $conf->{scheduler} = \%scheduler;
-
- return $self;
+ my ($class, $conf) = @_;
+
+ my $self = bless { conf => $conf }, $class;
+
+ my $modulesdir = $conf->{'daemon.modules.dir'};
+ my $logger = $conf->{logger};
+ my %loadedmodules;
+ my %scheduler;
+
+ if (-d $modulesdir) {
+ $logger->logmsg("Loading modules from $modulesdir");
+
+ for my $module (<$modulesdir/*.pm>) {
+ $logger->logmsg("Loading $module");
+ eval "require '$module'";
+ $logger->warn("Could not load module source file $module: $@")
+ if defined $@ and length $@;
+ }
+
+ for my $name (grep /PerlDaemonModules/, keys %INC) {
+ $name =~ s#.*(PerlDaemonModules)/(.*)\.pm$#$1::$2#;
+ my $module = eval "${name}->new(\$conf)";
+
+ if (defined $@ and length $@) {
+ $logger->warn("Could not create module instance $name: $@");
+
+ } else {
+ $loadedmodules{$name} = $module;
+ $scheduler{$name}{lastrun} = [0,0];
+ $scheduler{$name}{carrysum} = 0;
+ $scheduler{$name}{firstloop} = 1;
+ $scheduler{$name}{interval} = $conf->{'daemon.modules.runinterval'};
+ $logger->logmsg("Created module instance $name");
+ }
+ }
+
+ } else {
+ $logger->warn("Modules dir $modulesdir does not exist!");
+ }
+
+ $conf->{modules} = \%loadedmodules;
+ $conf->{scheduler} = \%scheduler;
+
+ return $self;
}
sub do ($) {
- my $self = shift;
- my $conf = $self->{conf}; my $logger = $conf->{logger};
- my $modules = $conf->{modules};
- my $scheduler = $conf->{scheduler};
-
- unless (%$modules) {
- $logger->warn("No modules are loaded!");
-
+ my $self = shift;
+ my $conf = $self->{conf}; my $logger = $conf->{logger};
+ my $modules = $conf->{modules};
+ my $scheduler = $conf->{scheduler};
+
+ unless (%$modules) {
+ $logger->warn("No modules are loaded!");
+
+ } else {
+ while (my ($k, $v) = each %$modules) {
+ my $now = [gettimeofday];
+ my $timediff = tv_interval($scheduler->{$k}{lastrun}, $now);
+ my $interval = $scheduler->{$k}{interval};
+ my $carrytimediff = $timediff + $scheduler->{$k}{carrysum};
+
+ if ($carrytimediff >= $interval) {
+ my $carry = $carrytimediff - $interval;
+ $logger->logmsg("Triggering $k (last triggered before ${timediff}s; carry: ${carry}s; wanted interval: ${interval}s)");
+
+ if ($scheduler->{$k}{firstloop} == 0) {
+ $scheduler->{$k}{carrysum} = $carry;
} else {
- while (my ($k, $v) = each %$modules) {
- my $now = [gettimeofday];
- my $timediff = tv_interval($scheduler->{$k}{lastrun}, $now);
- my $interval = $scheduler->{$k}{interval};
- my $carrytimediff = $timediff + $scheduler->{$k}{carrysum};
-
- if ($carrytimediff >= $interval) {
- my $carry = $carrytimediff - $interval;
- $logger->logmsg("Triggering $k (last triggered before ${timediff}s; carry: ${carry}s; wanted interval: ${interval}s)");
-
- if ($scheduler->{$k}{firstloop} == 0) {
- $scheduler->{$k}{carrysum} = $carry;
- } else {
- $scheduler->{$k}{firstloop} = 0;
- }
-
- $scheduler->{$k}{lastrun} = $now;
- $v->do();
+ $scheduler->{$k}{firstloop} = 0;
+ }
- }
- }
+ $scheduler->{$k}{lastrun} = $now;
+ $v->do();
- }
+ }
+ }
+ }
}
1;