1 #ifndef MARLINMT_SEQUENCE_h 2 #define MARLINMT_SEQUENCE_h 1 6 #include <unordered_set> 51 SequenceItem( std::shared_ptr<Processor> proc, std::shared_ptr<std::mutex> lock ) ;
83 std::shared_ptr<Processor>
processor()
const ;
88 const std::string &
name()
const ;
94 std::shared_ptr<std::mutex>
_mutex {
nullptr} ;
130 using Container = std::vector<std::shared_ptr<SequenceItem>> ;
131 using Index = Container::size_type ;
150 std::shared_ptr<SequenceItem> createItem( std::shared_ptr<Processor>
processor, std::shared_ptr<std::mutex> lock )
const ;
157 void addItem( std::shared_ptr<SequenceItem> item ) ;
164 std::shared_ptr<SequenceItem> at(
Index index )
const ;
183 void processEvent( std::shared_ptr<EventStore> event ) ;
219 using Item = std::shared_ptr<SequenceItem> ;
221 return lhs->processor() == rhs->processor() ;
225 using Sequences = std::vector<std::shared_ptr<Sequence>> ;
226 using Index = Sequences::size_type ;
229 std::shared_ptr<SequenceItem>,
230 std::hash<std::shared_ptr<SequenceItem>>,
251 std::shared_ptr<Sequence> sequence(
Index index )
const ;
std::map< std::string, int > SkippedEventMap
std::map< std::string, ClockMeasure > ClockMeasureMap
Sequences::size_type SizeType
Sequences::size_type Index
std::vector< std::shared_ptr< SequenceItem > > Container
clock::pair processEvent(std::shared_ptr< EventStore > event)
Call Processor::processEvent.
std::shared_ptr< Processor > processor() const
Call Processor::modifyEvent.
Container::size_type SizeType
std::shared_ptr< Processor > _processor
< The processor instance
Application class Base application interface for running a Marlin application.
void processRunHeader(std::shared_ptr< RunHeader > rhdr)
Process the run header.
std::shared_ptr< SequenceItem > Item
std::vector< std::shared_ptr< Sequence > > Sequences
const std::string & name() const
Get the processor name.
SuperSequence class Manages a fixed list of Sequence objects.
Container::size_type Index
SequenceItem(std::shared_ptr< Processor > proc)
Constructor.
SequenceItem class Handle a processor pointer and call Processor::processEvent in a critical section ...
std::unordered_set< std::shared_ptr< SequenceItem >, std::hash< std::shared_ptr< SequenceItem > >, ItemEqual > SequenceItemList
std::shared_ptr< streamlog::logstreamT< mutex_type > > Logger
bool operator()(const Item &lhs, const Item &rhs) const
ConfigSection class Holds a set of parameters and subsection.
std::pair< duration_rep, duration_rep > pair
Sequence class A sequence is a list of processors wrapped in SequenceItem objects.
ClockMeasure struct Holds clock measurement data for processors.
std::shared_ptr< std::mutex > _mutex