-
-// ==================================================
-// Peers
-// ==================================================
-class SignalProxy::AbstractPeer
-{
-public:
- enum PeerType {
- NotAPeer = 0,
- IODevicePeer = 1,
- SignalProxyPeer = 2
- };
- AbstractPeer() : _type(NotAPeer) {}
- AbstractPeer(PeerType type) : _type(type) {}
- virtual ~AbstractPeer() {}
- inline PeerType type() const { return _type; }
- virtual void dispatchSignal(const RequestType &requestType, const QVariantList ¶ms) = 0;
- virtual bool isSecure() const = 0;
-private:
- PeerType _type;
-};
-
-
-class SignalProxy::IODevicePeer : public SignalProxy::AbstractPeer
-{
-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);
- virtual bool isSecure() const;
- inline void dispatchPackedFunc(const QVariant &packedFunc) { SignalProxy::writeDataToDevice(_device, packedFunc, usesCompression); }
- QString address() const;
- inline bool isOpen() const { return _device->isOpen(); }
- inline void close() const { _device->close(); }
- inline bool readData(QVariant &item) { return SignalProxy::readDataFromDevice(_device, byteCount, item, usesCompression); }
-private:
- QIODevice *_device;
- quint32 byteCount;
- bool usesCompression;
-public:
- int sentHeartBeats;
- int lag;
-};
-
-
-class SignalProxy::SignalProxyPeer : public SignalProxy::AbstractPeer
-{
-public:
- SignalProxyPeer(SignalProxy *sender, SignalProxy *receiver) : AbstractPeer(AbstractPeer::SignalProxyPeer), sender(sender), receiver(receiver) {}
- virtual void dispatchSignal(const RequestType &requestType, const QVariantList ¶ms);
- virtual inline bool isSecure() const { return true; }
-private:
- SignalProxy *sender;
- SignalProxy *receiver;
-};
-
-