diff options
author | Liang Qi <liang.qi@qt.io> | 2018-04-30 11:27:26 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2018-04-30 11:27:26 +0200 |
commit | 0c22abe50063801b74d326430894d98f36d28b61 (patch) | |
tree | b937c6c2c8fe472e48ba42176fad83589f1a34c6 /src/remoteobjects/qremoteobjectnode_p.h | |
parent | 4b9cc97edd48b0508bf00afc7ec767249dd9b8fa (diff) | |
parent | 7fe4bc5c19f519b3adf7209a37e3d8e5cc1e214d (diff) |
Merge remote-tracking branch 'origin/5.11' into dev
Conflicts:
src/remoteobjects/qremoteobjectnode.cpp
Change-Id: I91e662166909a52817e2e14d2b379c46b3756d89
Diffstat (limited to 'src/remoteobjects/qremoteobjectnode_p.h')
-rw-r--r-- | src/remoteobjects/qremoteobjectnode_p.h | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/src/remoteobjects/qremoteobjectnode_p.h b/src/remoteobjects/qremoteobjectnode_p.h index 617075b..efcf936 100644 --- a/src/remoteobjects/qremoteobjectnode_p.h +++ b/src/remoteobjects/qremoteobjectnode_p.h @@ -89,11 +89,40 @@ public: QRemoteObjectMetaObjectManager() {} ~QRemoteObjectMetaObjectManager(); - QMetaObject *metaObjectForType(const QString &type); + const QMetaObject *metaObjectForType(const QString &type); QMetaObject *addDynamicType(QDataStream &in); + void addFromReplica(QConnectedReplicaImplementation *rep); private: QHash<QString, QMetaObject*> dynamicTypes; + QHash<QString, const QMetaObject*> staticTypes; +}; + +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 @@ -168,6 +197,7 @@ public: public: QRemoteObjectSourceIo *remoteObjectIo; + ProxyInfo *proxyInfo = nullptr; Q_DECLARE_PUBLIC(QRemoteObjectHostBase); }; |