QXRD  0.11.16
Public Member Functions | Protected Member Functions | Private Attributes | List of all members
QxrdAcquisitionThread Class Reference

#include <qxrdacquisitionthread.h>

Inheritance diagram for QxrdAcquisitionThread:
Inheritance graph
[legend]
Collaboration diagram for QxrdAcquisitionThread:
Collaboration graph
[legend]

Public Member Functions

 QxrdAcquisitionThread (QcepSettingsSaverWPtr saver, QxrdExperimentWPtr doc, QxrdDataProcessorWPtr proc, QcepAllocatorWPtr allocator, int detectorType)
 
 ~QxrdAcquisitionThread ()
 
void shutdown ()
 
void msleep (int msec)
 
QxrdAcquisitionPtr acquisition () const
 
void sleep (double time)
 
- Public Member Functions inherited from QxrdThread
 QxrdThread (QObject *parent=0)
 
- Public Member Functions inherited from QcepThread
 QcepThread (QObject *parent=0)
 

Protected Member Functions

void run ()
 

Private Attributes

QcepSettingsSaverWPtr m_Saver
 
QxrdExperimentWPtr m_Experiment
 
QcepAllocatorWPtr m_Allocator
 
QxrdDataProcessorWPtr m_Processor
 
int m_DetectorType
 
QxrdAcquisitionPtr m_Acquisition
 

Additional Inherited Members

- Static Public Member Functions inherited from QcepThread
static void msleep (long unsigned int)
 
- Protected Attributes inherited from QcepThread
QMutex m_Mutex
 

Detailed Description

Definition at line 12 of file qxrdacquisitionthread.h.

Constructor & Destructor Documentation

QxrdAcquisitionThread::QxrdAcquisitionThread ( QcepSettingsSaverWPtr  saver,
QxrdExperimentWPtr  doc,
QxrdDataProcessorWPtr  proc,
QcepAllocatorWPtr  allocator,
int  detectorType 
)

Definition at line 16 of file qxrdacquisitionthread.cpp.

References DEBUG_CONSTRUCTORS, and qcepDebug().

21  : QxrdThread(),
22  m_Saver(saver),
23  m_Experiment(doc),
24  m_Allocator(allocator),
25  m_Processor(proc),
26  m_DetectorType(detectorType),
28 {
30  printf("QxrdAcquisitionThread::QxrdAcquisitionThread(%p)\n", this);
31  }
32 
33  setObjectName("acquisition");
34 }
qint64 qcepDebug(int cond)
Definition: qcepdebug.cpp:26
QxrdDataProcessorWPtr m_Processor
QcepAllocatorWPtr m_Allocator
QxrdAcquisitionPtr m_Acquisition
QcepSettingsSaverWPtr m_Saver
QxrdExperimentWPtr m_Experiment
QxrdThread(QObject *parent=0)
Definition: qxrdthread.cpp:3

Here is the call graph for this function:

QxrdAcquisitionThread::~QxrdAcquisitionThread ( )

Definition at line 36 of file qxrdacquisitionthread.cpp.

References DEBUG_CONSTRUCTORS, qcepDebug(), and shutdown().

37 {
38  shutdown();
39 
41  printf("QxrdAcquisitionThread::~QxrdAcquisitionThread(%p)\n", this);
42  }
43 }
qint64 qcepDebug(int cond)
Definition: qcepdebug.cpp:26

Here is the call graph for this function:

Member Function Documentation

QxrdAcquisitionPtr QxrdAcquisitionThread::acquisition ( ) const

Definition at line 89 of file qxrdacquisitionthread.cpp.

References m_Acquisition, and QcepThread::m_Mutex.

90 {
91  while (isRunning()) {
92  {
93  QcepMutexLocker lock(__FILE__, __LINE__, &m_Mutex);
94 
95  if (m_Acquisition) return m_Acquisition;
96  }
97 
98  QThread::msleep(50);
99  }
100 
101  return QxrdAcquisitionPtr();
102 }
QSharedPointer< QxrdAcquisition > QxrdAcquisitionPtr
QxrdAcquisitionPtr m_Acquisition
QMutex m_Mutex
Definition: qcepthread.h:17
void QxrdAcquisitionThread::msleep ( int  msec)

Definition at line 84 of file qxrdacquisitionthread.cpp.

85 {
86  QThread::msleep(msec);
87 }
void QxrdAcquisitionThread::run ( )
protected

Definition at line 45 of file qxrdacquisitionthread.cpp.

References DEBUG_THREADS, m_Acquisition, m_Allocator, m_Experiment, QcepThread::m_Mutex, m_Processor, m_Saver, and qcepDebug().

46 {
47  if (qcepDebug(DEBUG_THREADS)) {
48  printf("Acquisition Thread Started\n");
49  }
50 
53 
54  int rc = -1;
55 
56  if (acq) {
57  acq -> initialize();
58 
59  m_Mutex.lock();
60  m_Acquisition = acq;
61  m_Mutex.unlock();
62 
63  rc = exec();
64  }
65 
66  {
67  QcepMutexLocker lock(__FILE__, __LINE__, &m_Mutex);
68 
70  }
71 
72  if (qcepDebug(DEBUG_THREADS)) {
73  printf("Acquisition Thread Terminated with rc %d\n", rc);
74  }
75 }
qint64 qcepDebug(int cond)
Definition: qcepdebug.cpp:26
QxrdDataProcessorWPtr m_Processor
QSharedPointer< QxrdAcquisition > QxrdAcquisitionPtr
QcepAllocatorWPtr m_Allocator
QxrdAcquisitionPtr m_Acquisition
QcepSettingsSaverWPtr m_Saver
QMutex m_Mutex
Definition: qcepthread.h:17
QxrdExperimentWPtr m_Experiment

Here is the call graph for this function:

void QxrdAcquisitionThread::shutdown ( )
virtual

Implements QxrdThread.

Definition at line 77 of file qxrdacquisitionthread.cpp.

Referenced by ~QxrdAcquisitionThread().

78 {
79  exit();
80 
81  wait();
82 }

Here is the caller graph for this function:

void QxrdAcquisitionThread::sleep ( double  time)

Definition at line 104 of file qxrdacquisitionthread.cpp.

105 {
106  QThread::usleep((int)(time*1e6));
107 }

Member Data Documentation

QxrdAcquisitionPtr QxrdAcquisitionThread::m_Acquisition
private

Definition at line 43 of file qxrdacquisitionthread.h.

Referenced by acquisition(), and run().

QcepAllocatorWPtr QxrdAcquisitionThread::m_Allocator
private

Definition at line 40 of file qxrdacquisitionthread.h.

Referenced by run().

int QxrdAcquisitionThread::m_DetectorType
private

Definition at line 42 of file qxrdacquisitionthread.h.

QxrdExperimentWPtr QxrdAcquisitionThread::m_Experiment
private

Definition at line 39 of file qxrdacquisitionthread.h.

Referenced by run().

QxrdDataProcessorWPtr QxrdAcquisitionThread::m_Processor
private

Definition at line 41 of file qxrdacquisitionthread.h.

Referenced by run().

QcepSettingsSaverWPtr QxrdAcquisitionThread::m_Saver
private

Definition at line 38 of file qxrdacquisitionthread.h.

Referenced by run().


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