* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
+ * (at your option) version 3. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
void SignalProxy::setSyncMap(QObject *obj) {
const QMetaObject *meta = obj->metaObject();
-
QHash<int, int> syncMap;
QList<int> slotIndexes;
QObject *receiver = _syncSlave[className][objectName];
if(!syncMap(receiver).contains(signalId)) {
- qWarning() << "received Sync Call with invalid SignalId" << className << objectName << signalId;
- }
+ const QMetaObject *meta = receiver->metaObject();
+ QString signalName;
+ if(signalId < meta->methodCount())
+ signalName = QString(meta->method(signalId).signature());
+ else
+ signalName = QString::number(signalId);
+
+ qWarning() << "received Sync Call for Object" << receiver
+ << "- no matching Slot for Signal:" << signalName;
+ return;
+ }
int slotId = syncMap(receiver)[signalId];
if(!invokeSlot(receiver, slotId, params))
qWarning("SignalProxy::handleSync(): invokeMethod for \"%s\" failed ", methodName(receiver, slotId).constData());
QByteArray className(params[0].toByteArray());
QString objectName(params[1].toString());
-
+
if(!_syncSlave.contains(className)) {
qWarning() << "SignalProxy::handleInitRequest() received initRequest for unregistered Class:"
<< className;
<< className << objectName;
return;
}
-
+
QObject *obj = _syncSlave[className][objectName];
QVariantList params_;
qDebug() << "number of Classes cached:" << _classInfo.count();
}
+void SignalProxy::dumpSyncMap(QObject *object) {
+ const QMetaObject *meta = object->metaObject();
+ qDebug() << "SignalProxy: SyncMap for Class" << meta->className();
+ QHash<int, int> syncMap_ = syncMap(object);
+ QHash<int, int>::const_iterator iter = syncMap_.constBegin();
+ while(iter != syncMap_.constEnd()) {
+ qDebug() << iter.key() << meta->method(iter.key()).signature() << "-->" << iter.value() << meta->method(iter.value()).signature();
+ iter++;
+ }
+}