A persistent JObject.
More...
#include <JEventGroupTracker.h>
|
std::set< const JObject * > | associated |
|
std::set< JObject * > | auto_delete |
|
void JEventGroup::CloseGroup |
( |
| ) |
const |
|
inline |
Indicate that no more events in the group are on their way.
Note that groups can be re-opened by simply emitting another event tagged according to that group. This is meant to be called from JEventSource::GetEvent.
bool JEventGroup::FinishEvent |
( |
| ) |
const |
|
inline |
Report an event as finished.
If this was the last event in the group, IsGroupFinished will now return true. Please only call once per event, so that we don't have to maintain a set of outstanding event ids. This takes advantage of C++ atomics to detect if we were the one who finished the whole group without needing a lock. This is meant to be called from JEventProcessor::Process.
bool JEventGroup::IsGroupFinished |
( |
| ) |
const |
|
inline |
Test whether all events in the group have finished.
Two conditions have to hold:
- The number of in-flight events must be zero
- The group must be closed. Otherwise, if the JEventSource is slow but the JEventProcessor is fast, the number of in-flight events could drop to zero before the group is conceptually finished. This is meant to be callable from any JANA component. Note that this doesn't indicate anything about who
void JEventGroup::StartEvent |
( |
| ) |
const |
|
inline |
Record that another event belonging to this group has been emitted.
This is meant to be called from JEventSource::GetEvent.
void JEventGroup::WaitUntilGroupFinished |
( |
| ) |
|
|
inline |
Block until every event in this group has finished, and the eventsource has declared the group closed.
This is meant to be callable from any JANA component.
The documentation for this class was generated from the following file:
- /u/home/nbrei/src/jana2/src/libraries/JANA/Services/JEventGroupTracker.h