+ static QString methodBaseName(const QMetaMethod &method);
+
+ const QList<int> &argTypes(QObject *obj, int methodId);
+ const QByteArray &methodName(QObject *obj, int methodId);
+ const QHash<int, int> &syncMap(QObject *obj);
+
+ typedef QHash<int, QList<int> > ArgHash;
+ typedef QHash<int, QByteArray> MethodNameHash;
+ struct ClassInfo {
+ ArgHash argTypes;
+ MethodNameHash methodNames;
+ QHash<int, int> syncMap;
+ };
+
+ void dumpProxyStats();
+
+private slots:
+ void dataAvailable();
+ void detachSender();
+ void removePeerBySender();
+ void objectRenamed(QString oldname, QString newname);
+ void objectRenamed(QByteArray classname, QString oldname, QString newname);
+
+signals:
+ void peerRemoved(QIODevice *obj);
+ void connected();
+ void disconnected();
+
+private:
+ void initServer();
+ void initClient();
+
+ void createClassInfo(QObject *obj);
+ void setArgTypes(QObject *obj, int methodId);
+ void setMethodName(QObject *obj, int methodId);
+ void setSyncMap(QObject *obj);