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

#include <qxrddataprocessorthread.h>

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

Public Member Functions

 QxrdDataProcessorThread (QcepSettingsSaverWPtr saver, QxrdExperimentWPtr doc, QxrdAcquisitionWPtr acq, QcepAllocatorWPtr allocator, QxrdFileSaverWPtr filesaver)
 
 ~QxrdDataProcessorThread ()
 
void shutdown ()
 
QxrdDataProcessorPtr dataProcessor () const
 
- 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

QcepAllocatorWPtr m_Allocator
 
QxrdFileSaverWPtr m_FileSaver
 
QxrdAcquisitionWPtr m_Acquisition
 
QxrdExperimentWPtr m_Experiment
 
QcepSettingsSaverWPtr m_Saver
 
QxrdDataProcessorPtr m_DataProcessor
 

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 13 of file qxrddataprocessorthread.h.

Constructor & Destructor Documentation

QxrdDataProcessorThread::QxrdDataProcessorThread ( QcepSettingsSaverWPtr  saver,
QxrdExperimentWPtr  doc,
QxrdAcquisitionWPtr  acq,
QcepAllocatorWPtr  allocator,
QxrdFileSaverWPtr  filesaver 
)

Definition at line 9 of file qxrddataprocessorthread.cpp.

References DEBUG_CONSTRUCTORS, and qcepDebug().

14  : QxrdThread(),
15  m_Allocator(allocator),
16  m_FileSaver(filesaver),
17  m_Acquisition(acq),
18  m_Experiment(doc),
19  m_Saver(saver),
20  m_DataProcessor(NULL)
21 {
23  printf("QxrdDataProcessorThread::QxrdDataProcessorThread(%p)\n", this);
24  }
25 
26  setObjectName("processor");
27 }
qint64 qcepDebug(int cond)
Definition: qcepdebug.cpp:26
QxrdDataProcessorPtr m_DataProcessor
QxrdAcquisitionWPtr m_Acquisition
QxrdThread(QObject *parent=0)
Definition: qxrdthread.cpp:3
QcepSettingsSaverWPtr m_Saver

Here is the call graph for this function:

QxrdDataProcessorThread::~QxrdDataProcessorThread ( )

Definition at line 29 of file qxrddataprocessorthread.cpp.

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

30 {
31  shutdown();
32 
34  printf("QxrdDataProcessorThread::~QxrdDataProcessorThread(%p)\n", this);
35  }
36 }
qint64 qcepDebug(int cond)
Definition: qcepdebug.cpp:26

Here is the call graph for this function:

Member Function Documentation

QxrdDataProcessorPtr QxrdDataProcessorThread::dataProcessor ( ) const

Definition at line 81 of file qxrddataprocessorthread.cpp.

References m_DataProcessor, and QcepThread::m_Mutex.

82 {
83  while (isRunning()) {
84  {
85  QcepMutexLocker lock(__FILE__, __LINE__, &m_Mutex);
86 
87  if (m_DataProcessor) return m_DataProcessor;
88  }
89 
90  QThread::msleep(50);
91  }
92 
93  return QxrdDataProcessorPtr();
94 }
QSharedPointer< QxrdDataProcessor > QxrdDataProcessorPtr
QxrdDataProcessorPtr m_DataProcessor
QMutex m_Mutex
Definition: qcepthread.h:17
void QxrdDataProcessorThread::run ( )
protected

Definition at line 38 of file qxrddataprocessorthread.cpp.

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

39 {
40  if (qcepDebug(DEBUG_THREADS)) {
41  printf("Processor Thread Started\n");
42  }
43 
48  m_FileSaver));
49 
50  int rc = -1;
51 
52  if (p) {
53  p -> initialize();
54 
55  m_Mutex.lock();
56  m_DataProcessor = p;
57  m_Mutex.unlock();
58 
59  rc = exec();
60  }
61 
62 
63  {
64  QcepMutexLocker lock(__FILE__, __LINE__, &m_Mutex);
65 
67  }
68 
69  if (qcepDebug(DEBUG_THREADS)) {
70  printf("Processor Thread Terminated with rc %d\n", rc);
71  }
72 }
qint64 qcepDebug(int cond)
Definition: qcepdebug.cpp:26
QSharedPointer< QxrdDataProcessor > QxrdDataProcessorPtr
QxrdDataProcessorPtr m_DataProcessor
QMutex m_Mutex
Definition: qcepthread.h:17
QxrdAcquisitionWPtr m_Acquisition
QcepSettingsSaverWPtr m_Saver

Here is the call graph for this function:

void QxrdDataProcessorThread::shutdown ( )
virtual

Implements QxrdThread.

Definition at line 74 of file qxrddataprocessorthread.cpp.

Referenced by ~QxrdDataProcessorThread().

75 {
76  exit();
77 
78  wait();
79 }

Here is the caller graph for this function:

Member Data Documentation

QxrdAcquisitionWPtr QxrdDataProcessorThread::m_Acquisition
private

Definition at line 36 of file qxrddataprocessorthread.h.

Referenced by run().

QcepAllocatorWPtr QxrdDataProcessorThread::m_Allocator
private

Definition at line 34 of file qxrddataprocessorthread.h.

Referenced by run().

QxrdDataProcessorPtr QxrdDataProcessorThread::m_DataProcessor
private

Definition at line 39 of file qxrddataprocessorthread.h.

Referenced by dataProcessor(), and run().

QxrdExperimentWPtr QxrdDataProcessorThread::m_Experiment
private

Definition at line 37 of file qxrddataprocessorthread.h.

Referenced by run().

QxrdFileSaverWPtr QxrdDataProcessorThread::m_FileSaver
private

Definition at line 35 of file qxrddataprocessorthread.h.

Referenced by run().

QcepSettingsSaverWPtr QxrdDataProcessorThread::m_Saver
private

Definition at line 38 of file qxrddataprocessorthread.h.

Referenced by run().


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