diff options
Diffstat (limited to 'src/remoteobjects/qremoteobjectnode_p.h')
-rw-r--r-- | src/remoteobjects/qremoteobjectnode_p.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/remoteobjects/qremoteobjectnode_p.h b/src/remoteobjects/qremoteobjectnode_p.h index 032d02f..69cb434 100644 --- a/src/remoteobjects/qremoteobjectnode_p.h +++ b/src/remoteobjects/qremoteobjectnode_p.h @@ -96,6 +96,33 @@ private: QHash<QString, QMetaObject*> dynamicTypes; }; +struct ProxyReplicaInfo; +class ProxyInfo : public QObject +{ + Q_OBJECT +public: + ProxyInfo(QRemoteObjectNode *node, QRemoteObjectHostBase *parent, QRemoteObjectHostBase::RemoteObjectNameFilter filter); + ~ProxyInfo() override; + enum class ProxyDirection { Forward, Reverse }; + + bool setReverseProxy(QRemoteObjectHostBase::RemoteObjectNameFilter filter); + void proxyObject(const QRemoteObjectSourceLocation &entry, ProxyDirection direction = ProxyDirection::Forward); + void unproxyObject(const QRemoteObjectSourceLocation &entry); + + QRemoteObjectNode *proxyNode; + QRemoteObjectHostBase *parentNode; + QRemoteObjectHostBase::RemoteObjectNameFilter proxyFilter; + QRemoteObjectHostBase::RemoteObjectNameFilter reverseFilter; + QHash<QString, ProxyReplicaInfo*> proxiedReplicas; +}; + +struct ProxyReplicaInfo +{ + QRemoteObjectDynamicReplica* replica; + ProxyInfo::ProxyDirection direction; + ~ProxyReplicaInfo() { delete replica; } +}; + class QRemoteObjectNodePrivate : public QObjectPrivate { public: @@ -168,6 +195,7 @@ public: public: QRemoteObjectSourceIo *remoteObjectIo; + ProxyInfo *proxyInfo = nullptr; Q_DECLARE_PUBLIC(QRemoteObjectHostBase); }; |