SDRAngel  4.11.5
Developer docs for <a href="https://github.com/f4exb/sdrangel">SDRangel<\a>, an Open Source Qt5 / OpenGL 3.0+ SDR and signal analyzer frontend to various hardware.
messagequeue.h
Go to the documentation of this file.
1 // Copyright (C) 2015 F4EXB //
3 // written by Edouard Griffiths //
4 // //
5 // This program is free software; you can redistribute it and/or modify //
6 // it under the terms of the GNU General Public License as published by //
7 // the Free Software Foundation as version 3 of the License, or //
8 // (at your option) any later version. //
9 // //
10 // This program is distributed in the hope that it will be useful, //
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of //
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
13 // GNU General Public License V3 for more details. //
14 // //
15 // You should have received a copy of the GNU General Public License //
16 // along with this program. If not, see <http://www.gnu.org/licenses/>. //
18 
19 #ifndef INCLUDE_MESSAGEQUEUE_H
20 #define INCLUDE_MESSAGEQUEUE_H
21 
22 #include <QObject>
23 #include <QQueue>
24 #include <QMutex>
25 #include "export.h"
26 
27 class Message;
28 
29 class SDRBASE_API MessageQueue : public QObject {
30  Q_OBJECT
31 
32 public:
33  MessageQueue(QObject* parent = NULL);
34  ~MessageQueue();
35 
36  void push(Message* message, bool emitSignal = true);
37  Message* pop();
38 
39  int size();
40  void clear();
41 
42 signals:
43  void messageEnqueued();
44 
45 private:
46  QMutex m_lock;
47  QQueue<Message*> m_queue;
48 };
49 
50 #endif // INCLUDE_MESSAGEQUEUE_H
QQueue< Message * > m_queue
Definition: messagequeue.h:47
#define SDRBASE_API
Definition: export.h:40
QMutex m_lock
Definition: messagequeue.h:46