五 Example 3: Connections to Remote Nodes using a Registry

2024-06-20 07:38

本文主要是介绍五 Example 3: Connections to Remote Nodes using a Registry,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

QRemoteObjectRegistry类有什么用?可以参考下图:
在这里插入图片描述
在某些应用程序中,需要有多个源,而为每个副本分别连接到每个源则显得很冗余,因此QRemoteObjectRegistryHost的任务是为多个源提供一个连接点,并通过它连接每个副本。

QRemoteObjectRegistry类型的registry属性。而它有两个关键信号:

void remoteObjectAdded(const QRemoteObjectSourceLocation &entry);
void remoteObjectRemoved(const QRemoteObjectSourceLocation &entry);

当带有Registry的QtRO网络中有新的Source被enableRemoting出来,则每个接入的Node的registry属性都会发出remoteObjectAdded这个信号;当有Source被disableRemoting之后,每个接入的Node的registry都会发出remoteObjectRemoved信号。

Source 端代码

simpleswitch.h 和 simpleswitch.cpp 不做修改, 不同之处在于主机节点的创建和连接方式:
main.cpp

  #include <QCoreApplication>#include "simpleswitch.h"int main(int argc, char *argv[]){QCoreApplication a(argc, argv);SimpleSwitch srcSwitch; // create SimpleSwitchQRemoteObjectRegistryHost regNode(QUrl(QStringLiteral("local:registry"))); // create node that hosts registryQRemoteObjectHost srcNode(QUrl(QStringLiteral("local:switch")), QUrl(QStringLiteral("local:registry"))); // create node that will host source and connect to registry//Note, you can add srcSwitch directly to regNode if desired.//We use two Nodes here, as the regNode could easily be in a third process.srcNode.enableRemoting(&srcSwitch); // enable remoting of source objectreturn a.exec();}

Replica 端代码

本例中使用的请求者对象是示例2中讨论的动态副本客户端。

唯一的修改是主要的。cpp:创建注册表节点以获取副本:

QRemoteObjectNode repNode(QUrl(QStringLiteral("local:registry")));

可参考https://zhuanlan.zhihu.com/p/68383336

这篇关于五 Example 3: Connections to Remote Nodes using a Registry的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1077512

相关文章

leetcode-24Swap Nodes in Pairs

带头结点。 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) { val = x; }* }*/public class Solution {public ListNode swapPairs(L

Docker远程连接和Docker Remote Api

在Docker生态系统中一共有3种API:Registry API、Docker Hub API、Docker Remote API 这三种API都是RESTful风格的。这里Remote API是通过程序与Docker进行集成和交互的核心内容。 Docker Remote API是由Docker守护进程提供的。默认情况下,Docker守护进程会绑定到一个所在宿主机的套接字:unix:///v

【VSCode v1.93.0】手动配置远程remote-ssh

开发环境 VS Code版本:1.93.0 (Windows) Ubuntu版本:20.04 使用VS Code 插件remote-ssh远程访问Ubuntu服务器中的代码,若Ubuntu无法联网,在连接的时候会报错: Could not establish connection to "xxxx": Failed to download VS Code Server(Failed to

Unity Adressables 使用说明(四)分发远程内容(Distribute Remote Content)

概述 远程分发内容可以减少应用程序的初始下载大小和安装时间。你还可以更新远程分发的资源,而无需重新发布应用程序或游戏。 当你将远程 URL 分配为 Group 的加载路径(Load Path)时,Addressables 系统会从该 URL 加载组中的资源。当你启用Build Remote Catalog选项时,Addressables 会在 Remote Catalog 中查找任何远程资源的

ssh问题:Connection closed by foreign host. Disconnected from remote host

放通一个远程ip能够ssh服务器,但是报错: Connection closed by foreign host.   Disconnected from remote host。。。   解决办法: firewall防火墙放通ip。 /etc/ssh/sshd_config文件修改,运行root用户密码登,再重启sshd服务。 /etc/hosts.allow和/etc/hos

[LeetCode] 863. All Nodes Distance K in Binary Tree

题:https://leetcode.com/problems/all-nodes-distance-k-in-binary-tree/ 题目大意 求给树中,距给定 结点 指定长度的 所有结点的val 思路 tree -> graph 、 bfs 先遍历树,并用map记录每个结点的父结点 ,将树变为图,然后 bfs。 /*** Definition for a binary tree

Linux - SSH: WARNING REMOTE HOST IDENTIFICATION HAS CHANGED

一、问题     通过 SSH 登录节点时遇到的问题 二、方案     通过 vi ~/.ssh/known_hosts 删除对应节点 ip 的 rsa 信息即可

最简单搭建harbor(企业级registry管理工具)

安装环境:centos:7.3, 已经安装docker,docker-compose 下载离线版本的harbor安装包 #下载wget https://github.com/vmware/harbor/releases/download/v1.2.0/harbor-offline-installer-v1.2.0.tgz#解压tar -zxvf harbor-offline-instal

Build Min Heap Using Array

Build min-heap using Array. 思路1:首先明白heap的底层implementation就是array,从0开始的parent和left,right的关系为, 如果现在的node index为i,那么parent index就是 (i-1)/2;   left  为2*i+1, right为 2*i+2;          ( i-1 ) / 2

Implement Set using Array.

参考链接:http://faculty.washington.edu/moishe/javademos/ch03%20Code/jss2/ArraySet.java 被Pivotal的面试官给问到了,trick的地方在于remove的那一块,要把最后的元素跟自己remove的元素进行互换,然后count--;还有,自动扩容那块,构造函数需要两个,一个默认的,一个是可以限定side的。然后扩容的时