Go to the documentation of this file.
20 #include <unordered_map>
39 EventSlot(
EventSlot& original, std::unique_ptr<EventContext> theeventContext,
const std::string& nodeName )
61 void addSubSlot( std::unique_ptr<EventContext> viewContext,
const std::string& nodeName ) {
68 subSlotsByNode.emplace( std::piecewise_construct, std::forward_as_tuple( nodeName ),
69 std::forward_as_tuple( 1, lastIndex ) );
73 allSubSlots.emplace_back( *
this, std::move( viewContext ), nodeName );
79 subSlotsByNode.emplace( std::piecewise_construct, std::forward_as_tuple( nodeName ), std::forward_as_tuple() );
EventSlot(EventSlot &original, std::unique_ptr< EventContext > theeventContext, const std::string &nodeName)
Construct a (sub)slot, nested to 'original' parent slot, with CF states copied from the parent.
std::unique_ptr< EventContext > eventContext
Cache for the eventContext.
std::unordered_map< std::string, std::vector< unsigned int > > subSlotsByNode
Listing of sub-slots by the node (name) they are attached to.
void setSubSlot(const ContextID_t subslot)
Class representing an event slot.
std::string entryPoint
Event Views bookkeeping (TODO: optimize view bookkeeping)
bool complete
Flags completion of the event.
EventSlot(const EventSlot &)=delete
Copy constructor.
void addSubSlot(std::unique_ptr< EventContext > viewContext, const std::string &nodeName)
Add a subslot to the slot (this constructs a new slot and registers it with the parent one)
EventSlot * parentSlot
Pointer to parent slot (null for top level)
EventSlot(EventSlot &&)=default
Move constructor.
EventSlot(unsigned int numberOfAlgorithms, unsigned int numberOfControlFlowNodes, SmartIF< IMessageSvc > MS)
Construct a slot.
void reset(EventContext *theeventContext)
Reset all resources in order to reuse the slot (thread-unsafe)
void disableSubSlots(const std::string &nodeName)
Disable event views for a given CF view node by registering an empty container Contact B.
std::vector< EventSlot > allSubSlots
Actual sub-slot instances.
EventSlot & operator=(const EventSlot &)=delete
Assignment operator.
std::vector< int > controlFlowState
State of the control flow.
AlgsExecutionStates algsStates
Vector of algorithms states.
EventSlot & operator=(EventSlot &&)=default
Move assignment.