|
|
|
@ -53,8 +53,7 @@ MultiSignalSpy::~MultiSignalSpy()
@@ -53,8 +53,7 @@ MultiSignalSpy::~MultiSignalSpy()
|
|
|
|
|
/// Initializes the class. Must be called once before use.
|
|
|
|
|
/// @return true if success, false for failure
|
|
|
|
|
|
|
|
|
|
bool MultiSignalSpy::init( |
|
|
|
|
QObject* signalEmitter, ///< [in] object which the signals are emitted from
|
|
|
|
|
bool MultiSignalSpy::init(QObject* signalEmitter, ///< [in] object which the signals are emitted from
|
|
|
|
|
const char** rgSignals, ///< [in] array of signals to spy on
|
|
|
|
|
size_t cSignals) ///< [in] numbers of signals in rgSignals
|
|
|
|
|
{ |
|
|
|
@ -85,7 +84,7 @@ bool MultiSignalSpy::init(
@@ -85,7 +84,7 @@ bool MultiSignalSpy::init(
|
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
bool MultiSignalSpy::_checkSignalByMaskWorker(quint16 mask, bool multipleSignalsAllowed) |
|
|
|
|
bool MultiSignalSpy::_checkSignalByMaskWorker(quint32 mask, bool multipleSignalsAllowed) |
|
|
|
|
{ |
|
|
|
|
for (size_t i=0; i<_cSignals; i++) { |
|
|
|
|
if ((1 << i) & mask) { |
|
|
|
@ -94,7 +93,7 @@ bool MultiSignalSpy::_checkSignalByMaskWorker(quint16 mask, bool multipleSignals
@@ -94,7 +93,7 @@ bool MultiSignalSpy::_checkSignalByMaskWorker(quint16 mask, bool multipleSignals
|
|
|
|
|
|
|
|
|
|
if ((multipleSignalsAllowed && spy->count() == 0) || (!multipleSignalsAllowed && spy->count() != 1)) { |
|
|
|
|
qDebug() << "Failed index:" << i; |
|
|
|
|
_printSignalState(); |
|
|
|
|
_printSignalState(mask); |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -103,7 +102,7 @@ bool MultiSignalSpy::_checkSignalByMaskWorker(quint16 mask, bool multipleSignals
@@ -103,7 +102,7 @@ bool MultiSignalSpy::_checkSignalByMaskWorker(quint16 mask, bool multipleSignals
|
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
bool MultiSignalSpy::_checkOnlySignalByMaskWorker(quint16 mask, bool multipleSignalsAllowed) |
|
|
|
|
bool MultiSignalSpy::_checkOnlySignalByMaskWorker(quint32 mask, bool multipleSignalsAllowed) |
|
|
|
|
{ |
|
|
|
|
for (size_t i=0; i<_cSignals; i++) { |
|
|
|
|
QSignalSpy* spy = _rgSpys[i]; |
|
|
|
@ -111,12 +110,12 @@ bool MultiSignalSpy::_checkOnlySignalByMaskWorker(quint16 mask, bool multipleSig
@@ -111,12 +110,12 @@ bool MultiSignalSpy::_checkOnlySignalByMaskWorker(quint16 mask, bool multipleSig
|
|
|
|
|
|
|
|
|
|
if ((1 << i) & mask) { |
|
|
|
|
if ((multipleSignalsAllowed && spy->count() == 0) || (!multipleSignalsAllowed && spy->count() != 1)) { |
|
|
|
|
_printSignalState(); |
|
|
|
|
_printSignalState(mask); |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
if (spy->count() != 0) { |
|
|
|
|
_printSignalState(); |
|
|
|
|
_printSignalState(mask); |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -125,28 +124,28 @@ bool MultiSignalSpy::_checkOnlySignalByMaskWorker(quint16 mask, bool multipleSig
@@ -125,28 +124,28 @@ bool MultiSignalSpy::_checkOnlySignalByMaskWorker(quint16 mask, bool multipleSig
|
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
bool MultiSignalSpy::checkSignalByMask(quint16 mask) |
|
|
|
|
bool MultiSignalSpy::checkSignalByMask(quint32 mask) |
|
|
|
|
{ |
|
|
|
|
return _checkSignalByMaskWorker(mask, false /* multipleSignalsAllowed */); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
bool MultiSignalSpy::checkOnlySignalByMask(quint16 mask) |
|
|
|
|
bool MultiSignalSpy::checkOnlySignalByMask(quint32 mask) |
|
|
|
|
{ |
|
|
|
|
return _checkOnlySignalByMaskWorker(mask, false /* multipleSignalsAllowed */); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
bool MultiSignalSpy::checkSignalsByMask(quint16 mask) |
|
|
|
|
bool MultiSignalSpy::checkSignalsByMask(quint32 mask) |
|
|
|
|
{ |
|
|
|
|
return _checkSignalByMaskWorker(mask, true /* multipleSignalsAllowed */); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
bool MultiSignalSpy::checkOnlySignalsByMask(quint16 mask) |
|
|
|
|
bool MultiSignalSpy::checkOnlySignalsByMask(quint32 mask) |
|
|
|
|
{ |
|
|
|
|
return _checkOnlySignalByMaskWorker(mask, true /* multipleSignalsAllowed */); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/// @return true if signal count = 0 for specified signals
|
|
|
|
|
bool MultiSignalSpy::checkNoSignalByMask(quint16 mask) |
|
|
|
|
bool MultiSignalSpy::checkNoSignalByMask(quint32 mask) |
|
|
|
|
{ |
|
|
|
|
for (size_t i=0; i<_cSignals; i++) { |
|
|
|
|
if ((1 << i) & mask) { |
|
|
|
@ -154,7 +153,7 @@ bool MultiSignalSpy::checkNoSignalByMask(quint16 mask)
@@ -154,7 +153,7 @@ bool MultiSignalSpy::checkNoSignalByMask(quint16 mask)
|
|
|
|
|
Q_ASSERT(spy != NULL); |
|
|
|
|
|
|
|
|
|
if (spy->count() != 0) { |
|
|
|
|
_printSignalState(); |
|
|
|
|
_printSignalState(mask); |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -170,7 +169,7 @@ bool MultiSignalSpy::checkNoSignals(void)
@@ -170,7 +169,7 @@ bool MultiSignalSpy::checkNoSignals(void)
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/// @return QSignalSpy for the specified signal
|
|
|
|
|
QSignalSpy* MultiSignalSpy::getSpyByIndex(quint16 index) |
|
|
|
|
QSignalSpy* MultiSignalSpy::getSpyByIndex(quint32 index) |
|
|
|
|
{ |
|
|
|
|
Q_ASSERT(index < _cSignals); |
|
|
|
|
Q_ASSERT(_rgSpys[index] != NULL); |
|
|
|
@ -179,7 +178,7 @@ QSignalSpy* MultiSignalSpy::getSpyByIndex(quint16 index)
@@ -179,7 +178,7 @@ QSignalSpy* MultiSignalSpy::getSpyByIndex(quint16 index)
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/// Sets the signal count to 0 for the specified signal
|
|
|
|
|
void MultiSignalSpy::clearSignalByIndex(quint16 index) |
|
|
|
|
void MultiSignalSpy::clearSignalByIndex(quint32 index) |
|
|
|
|
{ |
|
|
|
|
Q_ASSERT(index < _cSignals); |
|
|
|
|
Q_ASSERT(_rgSpys[index] != NULL); |
|
|
|
@ -188,7 +187,7 @@ void MultiSignalSpy::clearSignalByIndex(quint16 index)
@@ -188,7 +187,7 @@ void MultiSignalSpy::clearSignalByIndex(quint16 index)
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/// Sets the signal count to 0 for all specified signals
|
|
|
|
|
void MultiSignalSpy::clearSignalsByMask(quint16 mask) |
|
|
|
|
void MultiSignalSpy::clearSignalsByMask(quint32 mask) |
|
|
|
|
{ |
|
|
|
|
for (size_t i=0; i<_cSignals; i++) { |
|
|
|
|
if ((1 << i) & mask) { |
|
|
|
@ -203,7 +202,7 @@ void MultiSignalSpy::clearSignalsByMask(quint16 mask)
@@ -203,7 +202,7 @@ void MultiSignalSpy::clearSignalsByMask(quint16 mask)
|
|
|
|
|
/// Sets the signal count to 0 for all signals
|
|
|
|
|
void MultiSignalSpy::clearAllSignals(void) |
|
|
|
|
{ |
|
|
|
|
for (quint16 i=0;i<_cSignals; i++) { |
|
|
|
|
for (quint32 i=0;i<_cSignals; i++) { |
|
|
|
|
clearSignalByIndex(i); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -217,7 +216,7 @@ void MultiSignalSpy::timerEvent(QTimerEvent * event)
@@ -217,7 +216,7 @@ void MultiSignalSpy::timerEvent(QTimerEvent * event)
|
|
|
|
|
/// Waits the specified signal
|
|
|
|
|
/// @return false for timeout
|
|
|
|
|
bool MultiSignalSpy::waitForSignalByIndex( |
|
|
|
|
quint16 index, ///< [in] index of signal to wait on
|
|
|
|
|
quint32 index, ///< [in] index of signal to wait on
|
|
|
|
|
int msec) ///< [in] numbers of milleconds to wait before timeout, -1 wait forever
|
|
|
|
|
{ |
|
|
|
|
// Check input parameters
|
|
|
|
@ -250,17 +249,31 @@ bool MultiSignalSpy::waitForSignalByIndex(
@@ -250,17 +249,31 @@ bool MultiSignalSpy::waitForSignalByIndex(
|
|
|
|
|
return spy->count() != 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void MultiSignalSpy::_printSignalState(void) |
|
|
|
|
void MultiSignalSpy::_printSignalState(quint32 mask) |
|
|
|
|
{ |
|
|
|
|
for (size_t i=0; i<_cSignals; i++) { |
|
|
|
|
bool expected = (1 << i) & mask; |
|
|
|
|
|
|
|
|
|
QSignalSpy* spy = _rgSpys[i]; |
|
|
|
|
Q_ASSERT(spy != NULL); |
|
|
|
|
qDebug() << "Signal index:" << i << "count:" << spy->count(); |
|
|
|
|
qDebug() << "Signal index:" << i << "count:" << spy->count() << "expected:" << expected << _rgSignals[i]; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
bool MultiSignalSpy::pullBoolFromSignalIndex(quint16 index) |
|
|
|
|
bool MultiSignalSpy::pullBoolFromSignalIndex(quint32 index) |
|
|
|
|
{ |
|
|
|
|
QSignalSpy* spy = getSpyByIndex(index); |
|
|
|
|
return spy->value(0).value(0).toBool(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
int MultiSignalSpy::pullIntFromSignalIndex(quint32 index) |
|
|
|
|
{ |
|
|
|
|
QSignalSpy* spy = getSpyByIndex(index); |
|
|
|
|
return spy->value(0).value(0).toInt(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGeoCoordinate MultiSignalSpy::pullQGeoCoordinateFromSignalIndex(quint32 index) |
|
|
|
|
{ |
|
|
|
|
QSignalSpy* spy = getSpyByIndex(index); |
|
|
|
|
return spy->value(0).value(0).value<QGeoCoordinate>(); |
|
|
|
|
} |
|
|
|
|