summaryrefslogtreecommitdiffstats
path: root/src/remoteobjects/qremoteobjectnode_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/remoteobjects/qremoteobjectnode_p.h')
-rw-r--r--src/remoteobjects/qremoteobjectnode_p.h28
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);
};