QXRD  0.11.16
Public Member Functions | Private Attributes | List of all members
QxrdResultSerializer< T > Class Template Reference

#include <qxrdresultserializer.h>

Inheritance diagram for QxrdResultSerializer< T >:
Inheritance graph
[legend]
Collaboration diagram for QxrdResultSerializer< T >:
Collaboration graph
[legend]

Public Member Functions

 QxrdResultSerializer (QcepIntProperty *ctr, QcepObject *parent)
 
void enqueue (QFuture< T > future)
 
dequeue ()
 
int count () const
 
- Public Member Functions inherited from QxrdResultSerializerBase
 QxrdResultSerializerBase (QcepObject *parent)
 
virtual ~QxrdResultSerializerBase ()
 
- Public Member Functions inherited from QcepObject
 QcepObject (QString name, QcepObject *parent)
 
virtual ~QcepObject ()
 
virtual void writeSettings (QSettings *set, QString section)
 
virtual void readSettings (QSettings *set, QString section)
 
QString get_Name () const
 
void set_Name (QString name)
 

Private Attributes

QQueue< QFuture< T > > m_Results
 
QFutureWatcher< T > m_Watcher
 
QcepIntPropertym_Counter
 

Additional Inherited Members

- Public Slots inherited from QcepObject
virtual void printLine (QString line)
 
virtual void printMessage (QString msg, QDateTime dt=QDateTime::currentDateTime()) const
 
virtual void criticalMessage (QString msg, QDateTime ts=QDateTime::currentDateTime()) const
 
virtual void statusMessage (QString msg, QDateTime ts=QDateTime::currentDateTime()) const
 
virtual QString settingsScript ()
 
QString scriptValueLiteral (QVariant v)
 
- Signals inherited from QxrdResultSerializerBase
void resultAvailable ()
 
- Static Public Member Functions inherited from QcepObject
static int allocatedObjects ()
 
static int deletedObjects ()
 
static QSet< QcepObject * > allocatedObjectsSet ()
 
static QString addSlashes (QString str)
 
- Protected Attributes inherited from QxrdResultSerializerBase
QMutex m_Mutex
 
- Properties inherited from QcepObject
QString name
 

Detailed Description

template<typename T>
class QxrdResultSerializer< T >

Definition at line 28 of file qxrdresultserializer.h.

Constructor & Destructor Documentation

template<typename T >
QxrdResultSerializer< T >::QxrdResultSerializer ( QcepIntProperty ctr,
QcepObject parent 
)
explicit

Definition at line 15 of file qxrdresultserializer.cpp.

References QxrdResultSerializer< T >::m_Watcher, and QxrdResultSerializerBase::resultAvailable().

16  : QxrdResultSerializerBase(parent),
17  m_Counter(ctr)
18 {
19  connect(&m_Watcher, &QFutureWatcherBase::finished, this, &QxrdResultSerializerBase::resultAvailable);
20 }
QxrdResultSerializerBase(QcepObject *parent)
QFutureWatcher< T > m_Watcher
QcepIntProperty * m_Counter

Member Function Documentation

template<typename T >
int QxrdResultSerializer< T >::count ( ) const

Definition at line 63 of file qxrdresultserializer.cpp.

64 {
65  QcepMutexLocker lock(__FILE__, __LINE__, &m_Mutex);
66 
67  return m_Results.size();
68 }
QQueue< QFuture< T > > m_Results
template<typename T >
T QxrdResultSerializer< T >::dequeue ( )

Definition at line 37 of file qxrdresultserializer.cpp.

Referenced by QxrdDataProcessorThreaded::onCorrectedImageAvailable(), QxrdDataProcessorThreaded::onHistogramDataAvailable(), QxrdDataProcessorThreaded::onIntegratedDataAvailable(), and QxrdDataProcessorThreaded::onROIDataAvailable().

38 {
39  QcepMutexLocker lock(__FILE__, __LINE__, &m_Mutex);
40 
41  if (m_Results.size() > 0) {
42  QFuture<T> val = m_Results.dequeue();
43 
44  if (m_Results.size() > 0) {
45  m_Watcher.setFuture(m_Results[0]);
46  }
47 
48  if (m_Counter) {
49  m_Counter->incValue(-1);
50  }
51 
52  return val.result();
53  } else {
54  if (m_Counter) {
55  m_Counter->setValue(0);
56  }
57 
58  return T();
59  }
60 }
void setValue(int val, int index)
QQueue< QFuture< T > > m_Results
void incValue(int step)
QFutureWatcher< T > m_Watcher
QcepIntProperty * m_Counter

Here is the caller graph for this function:

template<typename T>
void QxrdResultSerializer< T >::enqueue ( QFuture< T >  future)

Member Data Documentation

template<typename T>
QcepIntProperty* QxrdResultSerializer< T >::m_Counter
private

Definition at line 43 of file qxrdresultserializer.h.

template<typename T>
QQueue< QFuture<T> > QxrdResultSerializer< T >::m_Results
private

Definition at line 41 of file qxrdresultserializer.h.

template<typename T>
QFutureWatcher<T> QxrdResultSerializer< T >::m_Watcher
private

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