MarlinMT  0.1.0
marlinmt::Sequence Class Reference

Sequence class A sequence is a list of processors wrapped in SequenceItem objects. More...

#include <Sequence.h>

Public Types

using Container = std::vector< std::shared_ptr< SequenceItem > >
 
using Index = Container::size_type
 
using SizeType = Container::size_type
 
using ClockMeasureMap = std::map< std::string, ClockMeasure >
 
using SkippedEventMap = std::map< std::string, int >
 

Public Member Functions

 Sequence ()=default
 
 ~Sequence ()=default
 
Sequenceoperator= (const Sequence &)=delete
 
 Sequence (const Sequence &)=delete
 
std::shared_ptr< SequenceItemcreateItem (std::shared_ptr< Processor > processor, std::shared_ptr< std::mutex > lock) const
 Create a sequence item. More...
 
void addItem (std::shared_ptr< SequenceItem > item)
 Add an item to the sequence. More...
 
std::shared_ptr< SequenceItemat (Index index) const
 Get a sequence item at the specified index. More...
 
SizeType size () const
 Get the number of items in the sequence. More...
 
void processRunHeader (std::shared_ptr< RunHeader > rhdr)
 Process the run header. More...
 
void processEvent (std::shared_ptr< EventStore > event)
 Process the event. More...
 
ClockMeasure clockMeasureSummary () const
 Generate a clock measure summary of all items. More...
 
const ClockMeasureMapclockMeasures () const
 Get all the clock measurements of the sequence. More...
 
const SkippedEventMapskippedEvents () const
 Get all the skipped events of the sequence. More...
 

Private Attributes

Container _items {}
 < The sequence items (processor list) More...
 
ClockMeasureMap _clockMeasures {}
 The map of skipped events. More...
 
SkippedEventMap _skipEventMap {}
 

Detailed Description

Sequence class A sequence is a list of processors wrapped in SequenceItem objects.

SequenceItem objects allow for calling processor methods in a critical section. This methods are :

Definition at line 128 of file Sequence.h.

Member Typedef Documentation

◆ ClockMeasureMap

using marlinmt::Sequence::ClockMeasureMap = std::map<std::string, ClockMeasure>

Definition at line 133 of file Sequence.h.

◆ Container

using marlinmt::Sequence::Container = std::vector<std::shared_ptr<SequenceItem> >

Definition at line 130 of file Sequence.h.

◆ Index

using marlinmt::Sequence::Index = Container::size_type

Definition at line 131 of file Sequence.h.

◆ SizeType

using marlinmt::Sequence::SizeType = Container::size_type

Definition at line 132 of file Sequence.h.

◆ SkippedEventMap

using marlinmt::Sequence::SkippedEventMap = std::map<std::string, int>

Definition at line 134 of file Sequence.h.

Constructor & Destructor Documentation

◆ Sequence() [1/2]

marlinmt::Sequence::Sequence ( )
default

◆ ~Sequence()

marlinmt::Sequence::~Sequence ( )
default

◆ Sequence() [2/2]

marlinmt::Sequence::Sequence ( const Sequence )
delete

Member Function Documentation

◆ addItem()

void marlinmt::Sequence::addItem ( std::shared_ptr< SequenceItem item)

Add an item to the sequence.

Parameters
itemthe item to add

Definition at line 90 of file Sequence.cc.

◆ at()

std::shared_ptr< SequenceItem > marlinmt::Sequence::at ( Index  index) const

Get a sequence item at the specified index.

Parameters
indexthe lookup index

Definition at line 103 of file Sequence.cc.

◆ clockMeasures()

const Sequence::ClockMeasureMap & marlinmt::Sequence::clockMeasures ( ) const

Get all the clock measurements of the sequence.

Definition at line 162 of file Sequence.cc.

◆ clockMeasureSummary()

ClockMeasure marlinmt::Sequence::clockMeasureSummary ( ) const

Generate a clock measure summary of all items.

Definition at line 150 of file Sequence.cc.

References marlinmt::ClockMeasure::_appClock.

◆ createItem()

std::shared_ptr< SequenceItem > marlinmt::Sequence::createItem ( std::shared_ptr< Processor processor,
std::shared_ptr< std::mutex >  lock 
) const

Create a sequence item.

The item is not added. Use addItem() to add it.

Parameters
processora processor pointer
lockthe lock to use on processEvent/modifyEvent calls

Definition at line 84 of file Sequence.cc.

References marlinmt::SequenceItem::processor().

◆ operator=()

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

◆ processEvent()

void marlinmt::Sequence::processEvent ( std::shared_ptr< EventStore event)

Process the event.

Call processEvent() for each item in the sequence

Parameters
eventthe event to process

Definition at line 123 of file Sequence.cc.

◆ processRunHeader()

void marlinmt::Sequence::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 115 of file Sequence.cc.

◆ size()

Sequence::SizeType marlinmt::Sequence::size ( ) const

Get the number of items in the sequence.

Definition at line 109 of file Sequence.cc.

◆ skippedEvents()

const Sequence::SkippedEventMap & marlinmt::Sequence::skippedEvents ( ) const

Get all the skipped events of the sequence.

Definition at line 168 of file Sequence.cc.

Member Data Documentation

◆ _clockMeasures

ClockMeasureMap marlinmt::Sequence::_clockMeasures {}
private

The map of skipped events.

Definition at line 204 of file Sequence.h.

◆ _items

Container marlinmt::Sequence::_items {}
private

< The sequence items (processor list)

The processor clock measurements

Definition at line 202 of file Sequence.h.

◆ _skipEventMap

SkippedEventMap marlinmt::Sequence::_skipEventMap {}
private

Definition at line 206 of file Sequence.h.


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