MarlinMT  0.1.0
marlinmt::SuperSequence Class Reference

SuperSequence class Manages a fixed list of Sequence objects. More...

#include <Sequence.h>

Classes

struct  ItemEqual
 

Public Member Functions

 SuperSequence ()=delete
 
 ~SuperSequence ()=default
 
 SuperSequence (const SuperSequence &)=delete
 
SuperSequenceoperator= (const SuperSequence &)=delete
 
 SuperSequence (std::size_t nseqs)
 Constructor. More...
 
std::shared_ptr< Sequencesequence (Index index) const
 Get the sequence at the given index. More...
 
void addProcessor (const ConfigSection &parameters)
 Add a processor using the input parameters. More...
 
SizeType size () const
 Get the number of sequences. More...
 
void init (Application *app)
 Call Processor::baseInit(app) for all processors. More...
 
void processRunHeader (std::shared_ptr< RunHeader > rhdr)
 Process the run header. More...
 
void end ()
 Call Processor::end() for all processors. More...
 
void printStatistics (Logging::Logger logger) const
 Print statistics at end of application. More...
 

Private Types

using Sequences = std::vector< std::shared_ptr< Sequence > >
 
using Index = Sequences::size_type
 
using SizeType = Sequences::size_type
 
using SequenceItemList = std::unordered_set< std::shared_ptr< SequenceItem >, std::hash< std::shared_ptr< SequenceItem > >, ItemEqual >
 

Private Attributes

Sequences _sequences {}
 < The list of sequences More...
 
SequenceItemList _uniqueItems {}
 

Detailed Description

SuperSequence class Manages a fixed list of Sequence objects.

Definition at line 216 of file Sequence.h.

Member Typedef Documentation

◆ Index

using marlinmt::SuperSequence::Index = Sequences::size_type
private

Definition at line 226 of file Sequence.h.

◆ SequenceItemList

using marlinmt::SuperSequence::SequenceItemList = std::unordered_set< std::shared_ptr<SequenceItem>, std::hash<std::shared_ptr<SequenceItem> >, ItemEqual>
private

Definition at line 231 of file Sequence.h.

◆ Sequences

using marlinmt::SuperSequence::Sequences = std::vector<std::shared_ptr<Sequence> >
private

Definition at line 225 of file Sequence.h.

◆ SizeType

using marlinmt::SuperSequence::SizeType = Sequences::size_type
private

Definition at line 227 of file Sequence.h.

Constructor & Destructor Documentation

◆ SuperSequence() [1/3]

marlinmt::SuperSequence::SuperSequence ( )
delete

◆ ~SuperSequence()

marlinmt::SuperSequence::~SuperSequence ( )
default

◆ SuperSequence() [2/3]

marlinmt::SuperSequence::SuperSequence ( const SuperSequence )
delete

◆ SuperSequence() [3/3]

marlinmt::SuperSequence::SuperSequence ( std::size_t  nseqs)

Constructor.

Parameters
nseqsthe number of sequences to manage

Definition at line 175 of file Sequence.cc.

Member Function Documentation

◆ addProcessor()

void marlinmt::SuperSequence::addProcessor ( const ConfigSection parameters)

Add a processor using the input parameters.

The processor is added to each sequence. Depending on the parameter "ProcessorClone" and the processor forced runtime policy, the processor is either cloned for each sequence or shared by all sequences

Parameters
parametersthe processor input parameters

Definition at line 201 of file Sequence.cc.

References marlinmt::Processor::eClone, marlinmt::Processor::eCritical, marlinmt::ConfigSection::hasParameter(), marlinmt::PluginManager::instance(), marlinmt::SequenceItem::name(), marlinmt::ConfigSection::parameter(), marlinmt::SequenceItem::processor(), and marlinmt::Component::setName().

◆ end()

void marlinmt::SuperSequence::end ( )

Call Processor::end() for all processors.

Definition at line 280 of file Sequence.cc.

◆ init()

void marlinmt::SuperSequence::init ( Application app)

Call Processor::baseInit(app) for all processors.

Parameters
appthe application in which the processors run

Definition at line 187 of file Sequence.cc.

◆ operator=()

SuperSequence& marlinmt::SuperSequence::operator= ( const SuperSequence )
delete

◆ printStatistics()

void marlinmt::SuperSequence::printStatistics ( Logging::Logger  logger) const

Print statistics at end of application.

Parameters
loggerthe logger in which to perform the printout

Definition at line 288 of file Sequence.cc.

◆ processRunHeader()

void marlinmt::SuperSequence::processRunHeader ( std::shared_ptr< RunHeader rhdr)

Process the run header.

Call processRunHeader() for each item in the sequence

Parameters
rhdrthe run header to process

Definition at line 272 of file Sequence.cc.

◆ sequence()

std::shared_ptr< Sequence > marlinmt::SuperSequence::sequence ( Index  index) const

Get the sequence at the given index.

Parameters
indexthe sequence index

Definition at line 195 of file Sequence.cc.

◆ size()

SuperSequence::SizeType marlinmt::SuperSequence::size ( ) const

Get the number of sequences.

Definition at line 266 of file Sequence.cc.

Member Data Documentation

◆ _sequences

Sequences marlinmt::SuperSequence::_sequences {}
private

< The list of sequences

A unique list of sequence items

Definition at line 297 of file Sequence.h.

◆ _uniqueItems

SequenceItemList marlinmt::SuperSequence::_uniqueItems {}
private

Definition at line 299 of file Sequence.h.


The documentation for this class was generated from the following files: