X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fsignalproxy.h;h=6204573d332c742e260b48d58b1a86d0bcadb598;hp=be2c9ffd95343d45c04952e210c23b1327876ab3;hb=fe1fec5e5f0799e03f6a3473dc56511bc00f26eb;hpb=4bfbd8dcbcb398302aaad0b6707c561760d7a7ac diff --git a/src/common/signalproxy.h b/src/common/signalproxy.h index be2c9ffd..6204573d 100644 --- a/src/common/signalproxy.h +++ b/src/common/signalproxy.h @@ -29,6 +29,8 @@ #include #include +#include + class SignalRelay; class QMetaObject; @@ -68,10 +70,11 @@ public: void setInitialized(QObject *obj); bool initialized(QObject *obj); void requestInit(QObject *obj); - + void detachObject(QObject *obj); void detachSignals(QObject *sender); void detachSlots(QObject *receiver); + void stopSync(QObject *obj); //! Writes a QVariant to a device. /** The data item is prefixed with the resulting blocksize, @@ -142,9 +145,13 @@ private: void _detachSignals(QObject *sender); void _detachSlots(QObject *receiver); + void _stopSync(QObject *obj); - void dumpSyncMap(QObject *object); + void dumpSyncMap(QObject *object); + // Hash of used QIODevices + QHash _peerByteCount; + // containg a list of argtypes for fast access QHash _classInfo; @@ -160,11 +167,14 @@ private: typedef QHash ObjectId; QHash _syncSlave; - // Hash of used QIODevices - QHash _peerByteCount; ProxyMode _proxyMode; + // the slaveMutex protects both containers: + // - _syncSlaves for sync and init calls + // - _attachedSlots + QMutex slaveMutex; + friend class SignalRelay; };