SignalProxy(QObject *parent);
SignalProxy(ProxyMode mode, QObject *parent);
SignalProxy(ProxyMode mode, QIODevice *device, QObject *parent);
SignalProxy(QObject *parent);
SignalProxy(ProxyMode mode, QObject *parent);
SignalProxy(ProxyMode mode, QIODevice *device, QObject *parent);
*/
static bool readDataFromDevice(QIODevice *dev, quint32 &blockSize, QVariant &item, bool compressed = false);
*/
static bool readDataFromDevice(QIODevice *dev, quint32 &blockSize, QVariant &item, bool compressed = false);
static QString methodBaseName(const QMetaMethod &method);
const QList<int> &argTypes(QObject *obj, int methodId);
static QString methodBaseName(const QMetaMethod &method);
const QList<int> &argTypes(QObject *obj, int methodId);
void sendHeartBeat();
void receiveHeartBeat(AbstractPeer *peer, const QVariantList ¶ms);
void receiveHeartBeatReply(AbstractPeer *peer, const QVariantList ¶ms);
void sendHeartBeat();
void receiveHeartBeat(AbstractPeer *peer, const QVariantList ¶ms);
void receiveHeartBeatReply(AbstractPeer *peer, const QVariantList ¶ms);
signals:
void peerRemoved(QIODevice *dev);
void connected();
void disconnected();
void objectInitialized(SyncableObject *);
void lagUpdated(int lag);
signals:
void peerRemoved(QIODevice *dev);
void connected();
void disconnected();
void objectInitialized(SyncableObject *);
void lagUpdated(int lag);
void receivePackedFunc(AbstractPeer *sender, const QVariant &packedFunc);
void receivePeerSignal(AbstractPeer *sender, const RequestType &requestType, const QVariantList ¶ms);
void receivePackedFunc(AbstractPeer *sender, const QVariant &packedFunc);
void receivePeerSignal(AbstractPeer *sender, const RequestType &requestType, const QVariantList ¶ms);
void handleSync(AbstractPeer *sender, QVariantList params);
void handleInitRequest(AbstractPeer *sender, const QVariantList ¶ms);
void handleInitData(AbstractPeer *sender, const QVariantList ¶ms);
void handleSync(AbstractPeer *sender, QVariantList params);
void handleInitRequest(AbstractPeer *sender, const QVariantList ¶ms);
void handleInitData(AbstractPeer *sender, const QVariantList ¶ms);
virtual ~AbstractPeer() {}
inline PeerType type() const { return _type; }
virtual void dispatchSignal(const RequestType &requestType, const QVariantList ¶ms) = 0;
virtual ~AbstractPeer() {}
inline PeerType type() const { return _type; }
virtual void dispatchSignal(const RequestType &requestType, const QVariantList ¶ms) = 0;
public:
IODevicePeer(QIODevice *device, bool compress) : AbstractPeer(AbstractPeer::IODevicePeer), _device(device), byteCount(0), usesCompression(compress), sentHeartBeats(0), lag(0) {}
virtual void dispatchSignal(const RequestType &requestType, const QVariantList ¶ms);
public:
IODevicePeer(QIODevice *device, bool compress) : AbstractPeer(AbstractPeer::IODevicePeer), _device(device), byteCount(0), usesCompression(compress), sentHeartBeats(0), lag(0) {}
virtual void dispatchSignal(const RequestType &requestType, const QVariantList ¶ms);
inline void dispatchPackedFunc(const QVariant &packedFunc) { SignalProxy::writeDataToDevice(_device, packedFunc, usesCompression); }
inline void dispatchPackedFunc(const QVariant &packedFunc) { SignalProxy::writeDataToDevice(_device, packedFunc, usesCompression); }
inline bool readData(QVariant &item) { return SignalProxy::readDataFromDevice(_device, byteCount, item, usesCompression); }
private:
QIODevice *_device;
inline bool readData(QVariant &item) { return SignalProxy::readDataFromDevice(_device, byteCount, item, usesCompression); }
private:
QIODevice *_device;
- SignalProxyPeer(SignalProxy *proxy) : AbstractPeer(AbstractPeer::SignalProxyPeer), proxy(proxy) {}
+ SignalProxyPeer(SignalProxy *sender, SignalProxy *receiver) : AbstractPeer(AbstractPeer::SignalProxyPeer), sender(sender), receiver(receiver) {}
};
// a Hash of the actual used communication object to it's corresponding peer
// currently a communication object can either be an arbitrary QIODevice or another SignalProxy
typedef QHash<QObject *, AbstractPeer *> PeerHash;
PeerHash _peers;
};
// a Hash of the actual used communication object to it's corresponding peer
// currently a communication object can either be an arbitrary QIODevice or another SignalProxy
typedef QHash<QObject *, AbstractPeer *> PeerHash;
PeerHash _peers;
-
-// // Hash of used QIODevices
-// struct peerInfo {
-// quint32 byteCount;
-// bool usesCompression;
-// int sentHeartBeats;
-// int lag;
-// peerInfo() : byteCount(0), usesCompression(false), sentHeartBeats(0) {}
-// };
-// QHash<QIODevice*, peerInfo> _peers;
// containg a list of argtypes for fast access
QHash<const QMetaObject *, ClassInfo*> _classInfo;
// containg a list of argtypes for fast access
QHash<const QMetaObject *, ClassInfo*> _classInfo;