QIfRemoteObjectsConfig 类

QIfRemoteObjectsConfig 帮助维护基于远程对象的服务的配置选项。 更多...

头文件 #include <QIfRemoteObjectsConfig>
qmakeQT += interfaceframework

公共函数

boolenableRemoting(const QString &module, const QString &interface, QObject *object)
boolenableRemoting(const QString &module, const QString &interface, const QUrl &fallbackUrl, QObject *object)
QRemoteObjectHost *host(const QUrl &url)
QRemoteObjectHost *host(const QString &module, const QString &interface, const QUrl &fallbackUrl = QUrl())
voidparseConfigFile(const QString &confFilePath)
voidparseLegacyConfigFile()
boolreportErrorsOnStdErr() const
voidsetDefaultServerUrl(const QUrl &defaultServerUrl)
voidsetReportErrorsOnStdErr(bool enabled)

详细描述

QIfRemoteObjectsConfig 类可以用来获取正确配置的 QRemoteObjectHost

在 simplest 形式中,它可以在 main.cpp 中这样使用:

#include <QCoreApplication>

#include "myapi.h"
#include "core.h"

#include <QIfRemoteObjectsConfig>

using namespace Qt::StringLiterals;

int main(int argc, char *argv[])
{
    QCoreApplication app(argc, argv);

    QIfRemoteObjectsConfig config;

    MyApi service;
    config.enableRemoting(u"Example.If.RemoteModule"_s, "MyApi"_s, &service);

    return app.exec();
}

这将使服务通过由模块参数构建的默认 URL 可访问。在这种情况下: local://RemoteModule

管理远程 URL

通常,在模块中定义了多个接口,并且使用默认 URL,这些服务始终由单个模块 URL 使用本地套接字提供服务。

要更改所有服务的 URL,可以使用 setDefaultServerUrl() 函数设置默认服务器。

为了提高灵活性,可以使用 parseConfigFile 函数提供配置文件。这允许在接口或模块级别设置使用的 URL。定义模块 URL 允许多个服务器重用相同的配置文件,其中每个服务器托管单个模块的所有接口。

支持旧版配置

直到 6.7 版本,基于 QtRemoteObject 的服务器的自动生成的代码在当前目录下使用名为 "server.conf" 的文件来读取用于远程服务的 URLs。

通过使用parseLegacyConfigFile()函数可以启用读取此配置文件。

还可以参考useGeneratedMain QFace 注解,以允许ifcodegen生成配置了QIfRemoteObjectsConfig的main.cpp。

成员函数文档

bool QIfRemoteObjectsConfig::enableRemoting(const QString &module, const QString &interface, QObject *object)

启用使用预配置url的QRemoteObjectHost实例的传入object的远程。

另请参阅 enableRemoting。

bool QIfRemoteObjectsConfig::enableRemoting(const QString &module, const QString &interface, const QUrl &fallbackUrl, QObject *object)

启用使用预配置url的QRemoteObjectHost实例的传入object的远程。

如果传入的object成功启用远程,则返回true

有关moduleinterfacefallbackUrl如何影响使用的url的更多信息,请参阅host()。

QRemoteObjectHost *QIfRemoteObjectsConfig::host(const QUrl &url)

返回一个预配置了urlQRemoteObjectHost

另请参阅 host。

QRemoteObjectHost *QIfRemoteObjectsConfig::host(const QString &module, const QString &interface, const QUrl &fallbackUrl = QUrl())

返回一个预配置了url的QRemoteObjectHost

该url特定于提供的moduleinterface参数,可以使用setDefaultServerUrl()函数或其他配置文件对其进行修改。

如果配置了多个值,url将按以下顺序解析

  1. 接口
  2. 模块
  3. 遗留的注册表
  4. 默认服务器
  5. fallbackUrl参数

如果这些设置中的任何一个都没有配置,或者传递了无效的url,则将使用module参数构建默认url。

另请参阅host

void QIfRemoteObjectsConfig::parseConfigFile(const QString &confFilePath)

解析位于confFilePath的配置文件,并在请求host()时使用存储的模块和接口特定url。

另请参阅host

void QIfRemoteObjectsConfig::parseLegacyConfigFile()

解析当前目录或由环境变量设置的路径中的遗留 "server.conf" 文件。

bool QIfRemoteObjectsConfig::reportErrorsOnStdErr() const

如果为创建的 QRemoteObjectHost 实例启用错误日志记录到 stderr,则返回 true。默认为 true

另请参阅 setReportErrorsOnStdErr

void QIfRemoteObjectsConfig::setDefaultServerUrl(const QUrl &defaultServerUrl)

设置 defaultServerUrl,它将被用于配置文件中未设置服务器(接口或模块内部)的所有服务。

void QIfRemoteObjectsConfig::setReportErrorsOnStdErr(bool enabled)

启用创建的 QRemoteObjectHost 实例在 stderr 上报告的所有错误的日志记录。

enabled 设置为 false 将禁用日志记录。

另请参阅 reportErrorsOnStdErr

© 2024 The Qt Company Ltd. 本文档中的文档贡献均属于其各自所有者。本提供的文档是根据由自由软件基金会发布的自由的文档许可协议第 1.3 版许可的。Qt 及其相应标志是芬兰和/或其他国家/地区的The Qt Company Ltd的商标。所有其他商标均为其所有者财产。