42 lines
783 B
C++
42 lines
783 B
C++
|
#include "globalqueue.h"
|
||
|
#include <QMutexLocker>
|
||
|
QMutex GlobalQueue::m_mutex;
|
||
|
QQueue<QByteArray> GlobalQueue::m_queue;
|
||
|
GlobalQueue* GlobalQueue::m_globalQueue = NULL;
|
||
|
|
||
|
GlobalQueue::GlobalQueue(QObject *parent) : QObject(parent)
|
||
|
{
|
||
|
|
||
|
}
|
||
|
|
||
|
GlobalQueue* GlobalQueue::getInstance()
|
||
|
{
|
||
|
if(!m_globalQueue)
|
||
|
{
|
||
|
m_globalQueue = new GlobalQueue();
|
||
|
}
|
||
|
return m_globalQueue;
|
||
|
}
|
||
|
|
||
|
void GlobalQueue::gEnqueue(const QByteArray& array)
|
||
|
{
|
||
|
QMutexLocker lock(&m_mutex);
|
||
|
m_queue.enqueue(array);
|
||
|
}
|
||
|
QByteArray GlobalQueue::gDequeue()
|
||
|
{
|
||
|
QMutexLocker lock(&m_mutex);
|
||
|
return m_queue.dequeue();
|
||
|
}
|
||
|
int GlobalQueue::getSize()
|
||
|
{
|
||
|
QMutexLocker lock(&m_mutex);
|
||
|
return m_queue.size();
|
||
|
}
|
||
|
|
||
|
void GlobalQueue::clearQueue()
|
||
|
{
|
||
|
QMutexLocker lock(&m_mutex);
|
||
|
m_queue.clear();
|
||
|
}
|