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.
syncmessenger.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_UTIL_SYNCMESSENGER_H_
20 #define INCLUDE_UTIL_SYNCMESSENGER_H_
21 
22 #include <QObject>
23 #include <QWaitCondition>
24 #include <QMutex>
25 #include <QAtomicInt>
26 #include "export.h"
27 
28 class Message;
29 
33 class SDRBASE_API SyncMessenger : public QObject {
34  Q_OBJECT
35 
36 public:
37  SyncMessenger();
38  ~SyncMessenger();
39 
40  int sendWait(Message& message, unsigned long msPollTime = 100);
41  Message* getMessage() const { return m_message; }
42  void storeMessage(Message& message) { m_message = &message; }
43  void done(int result = 0);
44 
45 signals:
46  void messageSent();
47 
48 protected:
49  QWaitCondition m_waitCondition;
50  QMutex m_mutex;
51  QAtomicInt m_complete;
53  int m_result;
54 };
55 
56 
57 
58 #endif /* INCLUDE_UTIL_SYNCMESSENGER_H_ */
void storeMessage(Message &message)
Definition: syncmessenger.h:42
Message * m_message
Definition: syncmessenger.h:52
QAtomicInt m_complete
Definition: syncmessenger.h:51
Message * getMessage() const
Definition: syncmessenger.h:41
QWaitCondition m_waitCondition
Definition: syncmessenger.h:49
#define SDRBASE_API
Definition: export.h:40