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

#include <qcepintegrateddataqueue.h>

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

Public Member Functions

 QcepIntegratedDataQueue (QString name)
 
 ~QcepIntegratedDataQueue ()
 
QcepIntegratedDataPtr dequeue ()
 
void enqueue (QcepIntegratedDataPtr data)
 
int size () const
 
QcepIntegratedDataPtr operator[] (int n)
 
void deallocate ()
 

Private Attributes

QReadWriteLock m_Lock
 
QQueue< QcepIntegratedDataPtrm_Queue
 
QString m_Name
 
int m_Debug
 

Detailed Description

Definition at line 10 of file qcepintegrateddataqueue.h.

Constructor & Destructor Documentation

QcepIntegratedDataQueue::QcepIntegratedDataQueue ( QString  name)

Definition at line 6 of file qcepintegrateddataqueue.cpp.

6  :
7  m_Name(name)
8 {
9 }
QcepIntegratedDataQueue::~QcepIntegratedDataQueue ( )

Definition at line 11 of file qcepintegrateddataqueue.cpp.

References deallocate(), DEBUG_QUEUES, g_Application, HEXARG, m_Name, m_Queue, QcepApplication::printMessage(), and qcepDebug().

12 {
14  g_Application->printMessage(tr("QcepIntegratedDataQueue::~QcepIntegratedDataQueue(%1) %2 begin [contains %3]")
15  .arg(m_Name).HEXARG(this).arg(m_Queue.size()));
16  }
17 
18  deallocate();
19 
21  g_Application->printMessage(tr("QcepIntegratedDataQueue::~QcepIntegratedDataQueue(%1) %2 end [contains %3]")
22  .arg(m_Name).HEXARG(this).arg(m_Queue.size()));
23  }
24 }
qint64 qcepDebug(int cond)
Definition: qcepdebug.cpp:26
#define HEXARG(a)
Definition: qcepdebug.h:50
virtual void printMessage(QString msg, QDateTime ts=QDateTime::currentDateTime())=0
QcepApplication * g_Application
QQueue< QcepIntegratedDataPtr > m_Queue

Here is the call graph for this function:

Member Function Documentation

void QcepIntegratedDataQueue::deallocate ( )

Definition at line 85 of file qcepintegrateddataqueue.cpp.

References DEBUG_QUEUES, g_Application, HEXARG, m_Queue, QcepApplication::printMessage(), and qcepDebug().

Referenced by ~QcepIntegratedDataQueue().

86 {
87  while (!m_Queue.isEmpty()) {
88  QcepIntegratedDataPtr img = m_Queue.dequeue();
90  g_Application->printMessage(tr("Deallocate %1").HEXARG(img.data()));
91  }
92  }
93 }
qint64 qcepDebug(int cond)
Definition: qcepdebug.cpp:26
QSharedPointer< QcepIntegratedData > QcepIntegratedDataPtr
#define HEXARG(a)
Definition: qcepdebug.h:50
virtual void printMessage(QString msg, QDateTime ts=QDateTime::currentDateTime())=0
QcepApplication * g_Application
QQueue< QcepIntegratedDataPtr > m_Queue

Here is the call graph for this function:

Here is the caller graph for this function:

QcepIntegratedDataPtr QcepIntegratedDataQueue::dequeue ( )

Definition at line 26 of file qcepintegrateddataqueue.cpp.

References DEBUG_QUEUES, g_Application, HEXARG, m_Lock, m_Name, m_Queue, QcepApplication::printMessage(), and qcepDebug().

27 {
28  QWriteLocker lock(&m_Lock);
29 
30  if (m_Queue.isEmpty()) {
32  g_Application->printMessage(tr("QcepIntegratedDataQueue::dequeue() = NULL from %1").arg(m_Name));
33  }
34 
35  return QcepIntegratedDataPtr(NULL);
36  } else {
37  QcepIntegratedDataPtr res = m_Queue.dequeue();
38 
40  g_Application->printMessage(tr("QcepIntegratedDataQueue::dequeue() = %1 from %2, leaving %3")
41  .HEXARG(res.data()).arg(m_Name).arg(m_Queue.size()));
42  }
43 
44  return res;
45  }
46 }
qint64 qcepDebug(int cond)
Definition: qcepdebug.cpp:26
QSharedPointer< QcepIntegratedData > QcepIntegratedDataPtr
#define HEXARG(a)
Definition: qcepdebug.h:50
virtual void printMessage(QString msg, QDateTime ts=QDateTime::currentDateTime())=0
QcepApplication * g_Application
QQueue< QcepIntegratedDataPtr > m_Queue

Here is the call graph for this function:

void QcepIntegratedDataQueue::enqueue ( QcepIntegratedDataPtr  data)

Definition at line 48 of file qcepintegrateddataqueue.cpp.

References DEBUG_QUEUES, g_Application, HEXARG, m_Lock, m_Name, m_Queue, QcepApplication::printMessage(), and qcepDebug().

49 {
50  QWriteLocker lock(&m_Lock);
51 
53  g_Application->printMessage(tr("QcepIntegratedDataQueue::enqueue(%1) into %2, starting with %3")
54  .HEXARG(data.data()).arg(m_Name).arg(m_Queue.size()));
55  }
56 
57  if (data) {
58  m_Queue.enqueue(data);
59  }
60 }
qint64 qcepDebug(int cond)
Definition: qcepdebug.cpp:26
#define HEXARG(a)
Definition: qcepdebug.h:50
virtual void printMessage(QString msg, QDateTime ts=QDateTime::currentDateTime())=0
QcepApplication * g_Application
QQueue< QcepIntegratedDataPtr > m_Queue

Here is the call graph for this function:

QcepIntegratedDataPtr QcepIntegratedDataQueue::operator[] ( int  n)

Definition at line 74 of file qcepintegrateddataqueue.cpp.

References m_Lock, and m_Queue.

75 {
76  QReadLocker lock(&m_Lock);
77 
78  if (n < 0 || n >= m_Queue.size()) {
79  return QcepIntegratedDataPtr(NULL);
80  } else {
81  return m_Queue[n];
82  }
83 }
QSharedPointer< QcepIntegratedData > QcepIntegratedDataPtr
QQueue< QcepIntegratedDataPtr > m_Queue
int QcepIntegratedDataQueue::size ( ) const

Definition at line 62 of file qcepintegrateddataqueue.cpp.

References DEBUG_QUEUES, g_Application, m_Lock, m_Name, m_Queue, QcepApplication::printMessage(), and qcepDebug().

63 {
64  QReadLocker lock(&m_Lock);
65 
67  g_Application->printMessage(tr("QcepIntegratedDataQueue::size() = %1 for %2")
68  .arg(m_Queue.size()).arg(m_Name));
69  }
70 
71  return m_Queue.size();
72 }
qint64 qcepDebug(int cond)
Definition: qcepdebug.cpp:26
virtual void printMessage(QString msg, QDateTime ts=QDateTime::currentDateTime())=0
QcepApplication * g_Application
QQueue< QcepIntegratedDataPtr > m_Queue

Here is the call graph for this function:

Member Data Documentation

int QcepIntegratedDataQueue::m_Debug
private

Definition at line 29 of file qcepintegrateddataqueue.h.

QReadWriteLock QcepIntegratedDataQueue::m_Lock
mutableprivate

Definition at line 26 of file qcepintegrateddataqueue.h.

Referenced by dequeue(), enqueue(), operator[](), and size().

QString QcepIntegratedDataQueue::m_Name
private

Definition at line 28 of file qcepintegrateddataqueue.h.

Referenced by dequeue(), enqueue(), size(), and ~QcepIntegratedDataQueue().

QQueue< QcepIntegratedDataPtr > QcepIntegratedDataQueue::m_Queue
private

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