【发布时间】:2018-11-29 20:33:36
【问题描述】:
我正在尝试使用 ADTF SDK 从我自己的C++ 命令行应用程序 运行完整的 ADTF 配置。 ADTF 版本:2.9.1(相当旧)。
这是我(想要)做的事情:
- 加载清单文件
- 加载 globals-xml
- 加载 config-xml
2 & 3 完成,使用 session-manager 服务 - 请参阅 ISessionManager 接口:https://support.digitalwerk.net/adtf/v2/adtf_sdk_html_docs/classadtf_1_1_i_session_manager.html,函数 LoadGlobalsFromFile & LoadConfigFromFile。
问题在于我不知道如何做第 1 点:目前,我没有加载清单,而是使用 _runtime->RegisterPlugin、_runtime->CreateInstance 和 _runtime->RegisterObject。
我设法只加载 namespace service 并使用 INamespace 接口,该接口具有加载清单文件的方法:https://support.digitalwerk.net/adtf/v2/adtf_sdk_html_docs/classadtf_1_1_i_namespace.html - 请参阅ImportFile 与 ui32ImportFlags = CF_IMPORT_MANIFEST。
但是这只会将清单设置加载到命名空间中,它实际上并没有实例化服务。我可以通过以下方式手动完成:
- 对下的每个 url 执行 _runtime->RegisterPlugin root/plugins/ 在命名空间中
- 对下的每个 objectid 执行 _runtime->CreateInstance root/services/ 在命名空间中
但我希望它更健壮,我希望已经有随后处理填充的命名空间的服务并执行这些操作。 有这样的服务吗?
注意:如果您知道如何在 ADTF3 中做到这一点,这可能对我也有帮助,所以请不要犹豫回答/评论
更新
参见本页“系统流程”:https://support.digitalwerk.net/adtf/v2/adtf_sdk_html_docs/page_service_layer.html
显然运行时实例本身处理清单文件(请参阅运行级别关闭和内核),但我不知道我应该如何告诉它它在哪里。
我尝试在实例化 时将 命令行参数 设置为 count = 2 和 2nd = 清单文件路径 >cRuntime。 它不起作用:)。
【问题讨论】:
标签: automation sdk adtf adtf3