The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

DTA::CAB::Chain::Multi - serial multi-analyzer pipelines with name-based dispatch

SYNOPSIS

 use DTA::CAB::Chain::Multi;
 
 ##========================================================================
 ## Constructors etc.
 
 $obj = CLASS_OR_OBJ->new(%args);
 
 ##========================================================================
 ## Methods: Chain selection
 
 $ach = $ach->setupChains();
 $ach = $ach->ensureChain();
 \@analyzers = $ach->chain();
 \@analyzers = $ach->subAnalyzers();
 
 
 ##========================================================================
 ## Methods: Persistence: Perl
 
 @keys = $class_or_obj->noSaveKeys();
 
 ##========================================================================
 ## Methods: XML-RPC
 
 \%analyzerHash = $anl->xmlRpcAnalyzers();
 

DESCRIPTION

DTA::CAB::Chain::Multi is an abstract DTA::CAB::Chain subclass which supports user selection from a pre-defined set of named processing chains at runtime.

Constructors etc.

new
 $obj = CLASS_OR_OBJ->new(%args);

%$obj, %args

 chains => undef, ##-- ($chainName=>\@chainAnalyzers,...): see setupChains() method
 chain => undef,  ##-- default chain: see setupChains() method

Methods: Chain selection

setupChains
 $ach = $ach->setupChains();

Setup default named sub-chains in $ach->{chains}; should also set default chain $ach->{chain}.

Default implementation just sets ($key=>[$ach->{$key}]) for each analyzer value in %$ach, and sets default chain to sorted list of analyzer values in %$ach.

Subclasses will probably need to override this method.

ensureChain
 $ach = $ach->ensureChain();

Checks for $ach->{chain}, calls $ach->setupChains() if needed.

chain
 \@analyzers = $ach->chain();
 \@analyzers = $ach->chain(\%opts)

Get selected analyzer chain.

  • Override calls setupChains() if $ach->{chain} is empty

  • Override checks for $opts{chain} and returns $ach->{chains}{ $opts{chain} } if available (runtime user chain selection).

  • OVERRIDE splits $opts{chain} on /[\,\s]+/ and constructs chain (runtime construction of user-specified chain).

subAnalyzers
 \@analyzers = $ach->subAnalyzers();
 \@analyzers = $ach->subAnalyzers(\%opts)

Returns a list of all sub-analyzers. Override returns all defined analyzers in any chain in $ach->{chains} or in values(%$ach).

Methods: Persistence: Perl

noSaveKeys
 @keys = $class_or_obj->noSaveKeys();

Returns list of keys not to be saved Override appends {chain},{chains} to superclass list.

Methods: XML-RPC

xmlRpcAnalyzers
 \%analyzerHash = $anl->xmlRpcAnalyzers();
 \%analyzerHash = $anl->xmlRpcAnalyzers($prefix)

Returns pseudo hash for use with DTA::CAB::Server::XmlRpc 'as' attribute.

AUTHOR

Bryan Jurish <moocow@cpan.org>

COPYRIGHT AND LICENSE

Copyright (C) 2010-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.

SEE ALSO

dta-cab-analyze.perl(1), DTA::CAB::Chain::DTA(3pm), DTA::CAB::Chain(3pm), DTA::CAB::Analyzer(3pm), DTA::CAB(3pm), perl(1), ...

1 POD Error

The following errors were encountered while parsing the POD:

Around line 459:

You forgot a '=back' before '=head1'