ATLAS Offline Software
Loading...
Searching...
No Matches
G4EventSynchronizationInterface Class Reference

#include <AtlasG4SyncEventUserInfo.h>

Collaboration diagram for G4EventSynchronizationInterface:

Public Member Functions

EventStatus Status () const
void SetStatusDone ()
void WaitStatusDone ()
bool EventAborted () const
void EventAborted (bool aborted)

Private Types

enum class  EventStatus { Ready , Done , Size }

Private Member Functions

void SetStatus (const EventStatus &)
void WaitStatus (const EventStatus &)

Private Attributes

bool m_event_aborted {false}
EventStatus m_status {EventStatus::Ready}
std::mutex m_mutex
std::condition_variable m_cv

Detailed Description

Definition at line 27 of file AtlasG4SyncEventUserInfo.h.

Member Enumeration Documentation

◆ EventStatus

Enumerator
Ready 
Done 
Size 

Definition at line 29 of file AtlasG4SyncEventUserInfo.h.

29 {
30 Ready,
31 Done,
32 Size
33 };

Member Function Documentation

◆ EventAborted() [1/2]

bool G4EventSynchronizationInterface::EventAborted ( ) const
inline

◆ EventAborted() [2/2]

void G4EventSynchronizationInterface::EventAborted ( bool aborted)
inline

Definition at line 39 of file AtlasG4SyncEventUserInfo.h.

39{ m_event_aborted = aborted; }

◆ SetStatus()

void G4EventSynchronizationInterface::SetStatus ( const EventStatus & status)
private

Definition at line 34 of file AtlasG4SyncEventUserInfo.cxx.

35{
36 {
37 std::scoped_lock lk(m_mutex);
39 }
40 m_cv.notify_all();
41}
status
Definition merge.py:16

◆ SetStatusDone()

void G4EventSynchronizationInterface::SetStatusDone ( )
inline

◆ Status()

auto G4EventSynchronizationInterface::Status ( ) const

Definition at line 28 of file AtlasG4SyncEventUserInfo.cxx.

29{
30 std::scoped_lock lk(m_mutex);
31 return m_status;
32}

◆ WaitStatus()

void G4EventSynchronizationInterface::WaitStatus ( const EventStatus & status)
private

Definition at line 43 of file AtlasG4SyncEventUserInfo.cxx.

44{
45 std::unique_lock lk(m_mutex);
46 m_cv.wait(lk, [this,status]{ return m_status==status; });
47}

◆ WaitStatusDone()

void G4EventSynchronizationInterface::WaitStatusDone ( )
inline

Definition at line 37 of file AtlasG4SyncEventUserInfo.h.

Member Data Documentation

◆ m_cv

std::condition_variable G4EventSynchronizationInterface::m_cv
private

Definition at line 48 of file AtlasG4SyncEventUserInfo.h.

◆ m_event_aborted

bool G4EventSynchronizationInterface::m_event_aborted {false}
private

Definition at line 45 of file AtlasG4SyncEventUserInfo.h.

45{false};

◆ m_mutex

std::mutex G4EventSynchronizationInterface::m_mutex
mutableprivate

Definition at line 47 of file AtlasG4SyncEventUserInfo.h.

◆ m_status

EventStatus G4EventSynchronizationInterface::m_status {EventStatus::Ready}
private

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