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.
remotedataqueue.h
Go to the documentation of this file.
1 // Copyright (C) 2018 Edouard Griffiths, F4EXB. //
3 // //
4 // Remote sink channel (Rx) data blocks queue //
5 // //
6 // SDRangel can serve as a remote SDR front end that handles the interface //
7 // with a physical device and sends or receives the I/Q samples stream via UDP //
8 // to or from another SDRangel instance or any program implementing the same //
9 // protocol. The remote SDRangel is controlled via its Web REST API. //
10 // //
11 // This program is free software; you can redistribute it and/or modify //
12 // it under the terms of the GNU General Public License as published by //
13 // the Free Software Foundation as version 3 of the License, or //
14 // (at your option) any later version. //
15 // //
16 // This program is distributed in the hope that it will be useful, //
17 // but WITHOUT ANY WARRANTY; without even the implied warranty of //
18 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
19 // GNU General Public License V3 for more details. //
20 // //
21 // You should have received a copy of the GNU General Public License //
22 // along with this program. If not, see <http://www.gnu.org/licenses/>. //
24 
25 #ifndef CHANNEL_REMOTEDATAQUEUE_H_
26 #define CHANNEL_REMOTEDATAQUEUE_H_
27 
28 #include <QObject>
29 #include <QMutex>
30 #include <QQueue>
31 
32 #include "export.h"
33 
34 class RemoteDataBlock;
35 
36 class SDRBASE_API RemoteDataQueue : public QObject {
37  Q_OBJECT
38 
39 public:
40  RemoteDataQueue(QObject* parent = NULL);
41  ~RemoteDataQueue();
42 
43  void push(RemoteDataBlock* dataBlock, bool emitSignal = true);
44  RemoteDataBlock* pop();
45 
46  int size();
47  void clear();
48 
49 signals:
50  void dataBlockEnqueued();
51 
52 private:
53  QMutex m_lock;
54  QQueue<RemoteDataBlock*> m_queue;
55 };
56 
57 #endif /* CHANNEL_REMOTEDATAQUEUE_H_ */
QQueue< RemoteDataBlock * > m_queue
#define SDRBASE_API
Definition: export.h:40