NAME
DTA::CAB::Server - abstract class for DTA::CAB servers
SYNOPSIS
use DTA::CAB::Server;
##========================================================================
## Constructors etc.
$srv = CLASS_OR_OBJ->new(%args);
undef = $srv->initialize();
##========================================================================
## Methods: Generic Server API
$rc = $srv->prepare();
$rc = $srv->run();
$rc = $srv->finish();
##-- low-level methods
$rc = $srv->prepareSignalHandlers();
$rc = $srv->prepareLocal(@args_to_prepare);
DESCRIPTION
Globals
- Variable: @ISA
-
DTA::CAB::Server inherits from DTA::CAB::Persistent and DTA::CAB::Logger.
Constructors etc.
- new
-
$srv = CLASS_OR_OBJ->new(%args);
%args, %$srv:
##-- supported analyzers as => \%analyzers, ##-- ($name => $cab_analyzer_obj, ...) aos => \%anlOptions, ##-- ($name=>\%analyzeOptions, ...) : passed to $as{$name}->analyzeXYZ($xyz,%analyzeOptions) ## ##-- daemon mode support pidfile => $pidfile, ##-- write PID to file on prepare() pid => $pid, ##-- PID to write to $pidfile (default=$$)
- initialize
-
undef = $srv->initialize();
Called to initialize new objects after new()
Methods: Generic Server API
- prepare
-
$rc = $srv->prepare();
Prepare server $srv to run. Default implementation initializes logger, writes $pidfile (if defined), and pre-loads each analyzer in values(%{$srv->{as}}) by calling that analyzers prepare() method.
- prepareSignalHandlers
-
$rc = $srv->prepareSignalHandlers();
Initialize signal handlers. Default implementation handles SIGHUP, SIGTERM, SIGKILL, and __DIE__.
- prepareLocal
-
$rc = $srv->prepareLocal(@args_to_prepare);
Dummy method for subclass-local initialization, called by "prepare"() after default "prepare"() guts have run.
- run
-
$rc = $srv->run();
Run the server. No default implementation.
- finish
-
$rc = $srv->finish();
Cleanup method; should be called when server dies or after "run"() has completed. Default implementation unlinks $pidfile (if defined).
AUTHOR
Bryan Jurish <moocow@cpan.org>
COPYRIGHT AND LICENSE
Copyright (C) 2009-2019 by Bryan Jurish
This package is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.24.1 or, at your option, any later version of Perl 5 you may have available.