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.