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.
T forward_as_tuple(T... args)
EventSlot & operator=(const EventSlot &)=delete
Assignment operator.
T emplace_back(T... args)
std::vector< int > controlFlowState
State of the control flow.
AlgsExecutionStates algsStates
Vector of algorithms states.
EventSlot & operator=(EventSlot &&)=default
Move assignment.