├── .clang-format ├── .editorconfig ├── .gitattributes ├── .github └── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── feature_request.md │ └── question.md ├── .gitignore ├── .gitlab-ci.yml ├── CMakeLists.txt ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── CONTRIBUTORS.md ├── LICENSE ├── MAINTAINERS.md ├── README.md ├── ReleaseNotes.md ├── SECURITY.md ├── docs ├── PLCnextStore_App_paho_03.png ├── _connect_options_8hpp_source.html ├── _i_mqtt_client_service_8hpp_source.html ├── _message_8hpp_source.html ├── _mqtt_client_service_factory_8hpp_source.html ├── _mqtt_client_service_impl_8hpp_source.html ├── _mqtt_client_service_proxy_8hpp_source.html ├── _mqtt_client_service_proxy_factory_8hpp_source.html ├── _mqtt_client_service_security_stub_8hpp_source.html ├── _mqtt_client_service_stub_8hpp_source.html ├── _ssl_options_8hpp_source.html ├── _will_options_8hpp_source.html ├── annotated.html ├── bc_s.png ├── bdwn.png ├── class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_i_mqtt_client_service-members.html ├── class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_i_mqtt_client_service.html ├── class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_i_mqtt_client_service.png ├── class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_factory-members.html ├── class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_factory.html ├── class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_factory.png ├── class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_impl-members.html ├── class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_impl.html ├── class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_impl.png ├── class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_proxy-members.html ├── class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_proxy.html ├── class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_proxy.png ├── class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_proxy_factory-members.html ├── class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_proxy_factory.html ├── class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_proxy_factory.png ├── class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_security_stub-members.html ├── class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_security_stub.html ├── class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_security_stub.png ├── class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_stub-members.html ├── class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_stub.html ├── class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_stub.png ├── classes.html ├── closed.png ├── dir_2254d16c067442651d320d72de999bdd.html ├── dir_252ceb4d48781b975620d9d49b7036a4.html ├── dir_2840b08681769df44388a23471653f33.html ├── dir_4c02653dbbaa59c83658be8aa9eddaf3.html ├── dir_66550428b56008e721244eb1d61a7a97.html ├── dir_717eb9f61b51ce50f0de22cc26c6546d.html ├── dir_abc319a5a9359a139e03f6f252ff1d73.html ├── dir_b7b9236d522a8cac8d553c2b290c70eb.html ├── dir_e04ae2849dfa520b4ee2c9f7e9ff15de.html ├── dir_e6ed4880f6f650eb10a8d5bfc28d0715.html ├── doc.png ├── doxygen.css ├── doxygen.png ├── dynsections.js ├── files.html ├── folderclosed.png ├── folderopen.png ├── functions.html ├── functions_func.html ├── functions_vars.html ├── hierarchy.html ├── index.html ├── interface_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_i_mqtt_client_service-members.html ├── interface_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_i_mqtt_client_service.html ├── jquery.js ├── menu.js ├── menudata.js ├── namespace_pxce_tcs.html ├── namespace_pxce_tcs_1_1_mqtt_client.html ├── namespace_pxce_tcs_1_1_mqtt_client_1_1_services.html ├── namespaces.html ├── nav_f.png ├── nav_g.png ├── nav_h.png ├── open.png ├── search │ ├── all_0.html │ ├── all_0.js │ ├── all_1.html │ ├── all_1.js │ ├── all_2.html │ ├── all_2.js │ ├── all_3.html │ ├── all_3.js │ ├── all_4.html │ ├── all_4.js │ ├── all_5.html │ ├── all_5.js │ ├── all_6.html │ ├── all_6.js │ ├── all_7.html │ ├── all_7.js │ ├── all_8.html │ ├── all_8.js │ ├── all_9.html │ ├── all_9.js │ ├── all_a.html │ ├── all_a.js │ ├── all_b.html │ ├── all_b.js │ ├── all_c.html │ ├── all_c.js │ ├── all_d.html │ ├── all_d.js │ ├── all_e.html │ ├── all_e.js │ ├── all_f.html │ ├── all_f.js │ ├── classes_0.html │ ├── classes_0.js │ ├── classes_1.html │ ├── classes_1.js │ ├── classes_2.html │ ├── classes_2.js │ ├── classes_3.html │ ├── classes_3.js │ ├── classes_4.html │ ├── classes_4.js │ ├── close.png │ ├── functions_0.html │ ├── functions_0.js │ ├── functions_1.html │ ├── functions_1.js │ ├── functions_2.html │ ├── functions_2.js │ ├── functions_3.html │ ├── functions_3.js │ ├── functions_4.html │ ├── functions_4.js │ ├── functions_5.html │ ├── functions_5.js │ ├── functions_6.html │ ├── functions_6.js │ ├── functions_7.html │ ├── functions_7.js │ ├── functions_8.html │ ├── functions_8.js │ ├── functions_9.html │ ├── functions_9.js │ ├── mag_sel.png │ ├── namespaces_0.html │ ├── namespaces_0.js │ ├── nomatches.html │ ├── search.css │ ├── search.js │ ├── search_l.png │ ├── search_m.png │ ├── search_r.png │ ├── searchdata.js │ ├── variables_0.html │ ├── variables_0.js │ ├── variables_1.html │ ├── variables_1.js │ ├── variables_2.html │ ├── variables_2.js │ ├── variables_3.html │ ├── variables_3.js │ ├── variables_4.html │ ├── variables_4.js │ ├── variables_5.html │ ├── variables_5.js │ ├── variables_6.html │ ├── variables_6.js │ ├── variables_7.html │ ├── variables_7.js │ ├── variables_8.html │ ├── variables_8.js │ ├── variables_9.html │ ├── variables_9.js │ ├── variables_a.html │ ├── variables_a.js │ ├── variables_b.html │ ├── variables_b.js │ ├── variables_c.html │ ├── variables_c.js │ ├── variables_d.html │ ├── variables_d.js │ ├── variables_e.html │ └── variables_e.js ├── splitbar.png ├── struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_connect_options-members.html ├── struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_connect_options.html ├── struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_connect_options.png ├── struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_message-members.html ├── struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_message.html ├── struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_message.png ├── struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_ssl_options-members.html ├── struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_ssl_options.html ├── struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_ssl_options.png ├── struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_will_options-members.html ├── struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_will_options.html ├── struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_will_options.png ├── sync_off.png ├── sync_on.png ├── tab_a.png ├── tab_b.png ├── tab_h.png ├── tab_s.png └── tabs.css ├── libs ├── CMakeLists.txt └── MqttClientService │ ├── CMakeLists.txt │ ├── cmake │ ├── FindPahoMqttAS.cmake │ ├── FindPahoMqttCS.cmake │ └── MqttClientConfig.in.cmake │ ├── intermediate │ └── config │ │ └── MqttClient.acf.config │ └── src │ ├── Client.cpp │ ├── Client.hpp │ ├── MqttClientComponent.cpp │ ├── MqttClientComponent.hpp │ ├── MqttClientLibrary.cpp │ ├── MqttClientLibrary.hpp │ ├── MqttClientManager.cpp │ ├── MqttClientManager.hpp │ └── services │ ├── ConnectOptions.hpp │ ├── IMqttClientService.hpp │ ├── Message.hpp │ ├── MqttClientServiceFactory.cpp │ ├── MqttClientServiceFactory.hpp │ ├── MqttClientServiceImpl.cpp │ ├── MqttClientServiceImpl.hpp │ ├── MqttClientServiceProxy.cpp │ ├── MqttClientServiceProxy.hpp │ ├── MqttClientServiceProxyFactory.cpp │ ├── MqttClientServiceProxyFactory.hpp │ ├── MqttClientServiceSecurityStub.cpp │ ├── MqttClientServiceSecurityStub.hpp │ ├── MqttClientServiceStub.cpp │ ├── MqttClientServiceStub.hpp │ ├── SslOptions.hpp │ └── WillOptions.hpp └── tools ├── build-all.sh ├── build-automatic-all.sh ├── build-component.sh ├── build-paho.mqtt.c.sh └── build-paho.mqtt.cpp.sh /.clang-format: -------------------------------------------------------------------------------- 1 | --- 2 | Language: Cpp 3 | Standard: Cpp11 4 | UseTab: Never 5 | IndentWidth: 4 6 | AccessModifierOffset: -4 7 | BreakBeforeBraces: Allman 8 | BreakConstructorInitializers: BeforeComma 9 | Cpp11BracedListStyle: true 10 | DerivePointerAlignment: true 11 | FixNamespaceComments: true 12 | AllowShortIfStatementsOnASingleLine: false 13 | IndentCaseLabels: false 14 | ColumnLimit: 0 15 | ... 16 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | indent_style = space 6 | indent_size = 4 7 | insert_final_newline = true 8 | trim_trailing_whitespace = true 9 | 10 | [*.{config,libmeta,compmeta,progmeta,settings,xml}] 11 | indent_size = 2 12 | 13 | [*.{md,mkdown,markdown}] 14 | trim_trailing_whitespace = false 15 | 16 | [.{json,jsonc}] 17 | indent_size = 2 18 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | *.sh text eol=lf 3 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: feature-request 6 | assignees: '' 7 | 8 | --- 9 | 10 | 11 | 11 | 12 | 13 | **Is your feature request related to a problem? Please describe.** 14 | A clear and concise description of what the problem is. 15 | 16 | **Describe the solution you'd like** 17 | A clear and concise description of what you want to happen. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/question.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Question 3 | about: The issue tracker is not for questions. Please visit [https://plcnext-community.net](https://plcnext-community.net). 4 | title: "[QUESTION]" 5 | labels: invalid 6 | assignees: '' 7 | 8 | --- 9 | 10 | 🚨 The issue tracker is not for questions 🚨 11 | 12 | If you have a question, please ask it on 13 | [https://plcnext-community.net](https://plcnext-community.net). 14 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | /build/ 3 | /external/ 4 | /deploy/ 5 | .vscode 6 | -------------------------------------------------------------------------------- /.gitlab-ci.yml: -------------------------------------------------------------------------------- 1 | #// 2 | #// Copyright (c) Phoenix Contact GmbH & Co. KG. All rights reserved. 3 | #// Licensed under the MIT. See LICENSE file in the project root for full license information. 4 | #// SPDX-License-Identifier: MIT 5 | #// 6 | stages: 7 | - PLCnextBuildC 8 | - PLCnextBuildCpp 9 | - PLCnextBuildLibrary 10 | - PLCnextBuildAll 11 | - deploy 12 | 13 | ## Docker Image: 14 | # PLCNCLI 15 | # C/C++ SDK 16 | # PLCNEngineer Library Builder 17 | # CMAKE 18 | 19 | image: $SDK_IMAGE 20 | 21 | variables: 22 | SDK_PATH: "${SDKPATH}" 23 | TARGET_VERSION: "${TARGETVERSION}" 24 | TARGET_NAME: "${TARGETNAME}" 25 | 26 | .RunnerRequirements: 27 | before_script: 28 | - chmod +x tools/* 29 | - which cmake 30 | - cmake --version 31 | - which make 32 | - make --version 33 | - which plcncli 34 | - plcncli --version 35 | - plcncli get sdks 36 | - plcncli get targets 37 | - apt-get update 38 | - apt-get install ninja-build 39 | - echo "SDK_PATH:${SDK_PATH}" 40 | - echo "TARGET_VERSION:${TARGET_VERSION}" 41 | - echo "TARGET_NAME:${TARGET_NAME}" 42 | tags: 43 | - docker 44 | - debian-based 45 | allow_failure: true 46 | 47 | ################################################# 48 | ################################################# 49 | ################################################# 50 | ######PLCnext Building########################### 51 | BuildPahoC: 52 | stage: PLCnextBuildC 53 | extends: .RunnerRequirements 54 | script: 55 | - tools/build-paho.mqtt.c.sh -t "${SDK_PATH}" -a "${TARGET_VERSION}" -n "${TARGET_NAME}" 56 | cache: 57 | key: buildpahoc 58 | paths: 59 | - external/paho.mqtt.c 60 | artifacts: 61 | expire_in: 10 min 62 | paths: 63 | - deploy 64 | 65 | BuildPahoCpp: 66 | stage: PLCnextBuildCpp 67 | extends: .RunnerRequirements 68 | dependencies: 69 | - BuildPahoC 70 | script: 71 | - tools/build-paho.mqtt.cpp.sh -t "${SDK_PATH}" -a "${TARGET_VERSION}" -n "${TARGET_NAME}" 72 | cache: 73 | key: buildpahoc 74 | paths: 75 | - external/paho.mqtt.cpp 76 | artifacts: 77 | expire_in: 10 min 78 | paths: 79 | - deploy 80 | 81 | BuildComponent: 82 | stage: PLCnextBuildLibrary 83 | extends: .RunnerRequirements 84 | dependencies: 85 | - BuildPahoCpp 86 | - BuildPahoC 87 | 88 | script: 89 | - tools/build-component.sh -t "${SDK_PATH}" -a "${TARGET_VERSION}" -n "${TARGET_NAME}" 90 | cache: 91 | key: buildcomponent 92 | paths: 93 | - build/ 94 | artifacts: 95 | name: "$CI_COMMIT_REF_SLUG" 96 | when: always 97 | expire_in: 20 min 98 | paths: 99 | - deploy 100 | 101 | BuildAll: 102 | stage: PLCnextBuildAll 103 | extends: .RunnerRequirements 104 | script: 105 | - tools/build-automatic-all.sh 106 | artifacts: 107 | name: "$CI_COMMIT_REF_SLUG" 108 | when: on_success 109 | paths: 110 | - deploy 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.12) 2 | 3 | project(MqttClientRscService) 4 | 5 | #include(CTest) 6 | 7 | # Always use find_package to find external dependencies. 8 | # Make find_package a noop for targets that are available as sub projects. 9 | # See speech of Daniel Pfeifer "Effective CMake" C++Now 2017 Slide 34 10 | macro(find_package) 11 | if(NOT "${ARGV0}" IN_LIST FindAsSubproject) 12 | _find_package(${ARGV}) 13 | else() 14 | set("${ARGV0}_FOUND" TRUE) 15 | endif() 16 | endmacro() 17 | 18 | # Add targets that are included as sub projects 19 | # set(FindAsSubproject "MqttClient") 20 | 21 | add_subdirectory(libs) 22 | #add_subdirectory(extras) 23 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as 6 | contributors and maintainers pledge to making participation in our project and 7 | our community a harassment-free experience for everyone, regardless of age, body 8 | size, disability, ethnicity, sex characteristics, gender identity and expression, 9 | level of experience, education, socio-economic status, nationality, personal 10 | appearance, race, religion, or sexual identity and orientation. 11 | 12 | ## Our Standards 13 | 14 | Examples of behavior that contributes to creating a positive environment 15 | include: 16 | 17 | * Using welcoming and inclusive language 18 | * Being respectful of differing viewpoints and experiences 19 | * Gracefully accepting constructive criticism 20 | * Focusing on what is best for the community 21 | * Showing empathy towards other community members 22 | 23 | Examples of unacceptable behavior by participants include: 24 | 25 | * The use of sexualized language or imagery and unwelcome sexual attention or 26 | advances 27 | * Trolling, insulting/derogatory comments, and personal or political attacks 28 | * Public or private harassment 29 | * Publishing others' private information, such as a physical or electronic 30 | address, without explicit permission 31 | * Other conduct which could reasonably be considered inappropriate in a 32 | professional setting 33 | 34 | ## Our Responsibilities 35 | 36 | Project maintainers are responsible for clarifying the standards of acceptable 37 | behavior and are expected to take appropriate and fair corrective action in 38 | response to any instances of unacceptable behavior. 39 | 40 | Project maintainers have the right and responsibility to remove, edit, or 41 | reject comments, commits, code, wiki edits, issues, and other contributions 42 | that are not aligned to this Code of Conduct, or to ban temporarily or 43 | permanently any contributor for other behaviors that they deem inappropriate, 44 | threatening, offensive, or harmful. 45 | 46 | ## Scope 47 | 48 | This Code of Conduct applies both within project spaces and in public spaces 49 | when an individual is representing the project or its community. Examples of 50 | representing a project or community include using an official project e-mail 51 | address, posting via an official social media account, or acting as an appointed 52 | representative at an online or offline event. Representation of a project may be 53 | further defined and clarified by project maintainers. 54 | 55 | ## Enforcement 56 | 57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 58 | reported by contacting the project team at [OSSPLCnext@phoenixcontact.com](mailto:OSSPLCnext@phoenixcontact.com). All 59 | complaints will be reviewed and investigated and will result in a response that 60 | is deemed necessary and appropriate to the circumstances. The project team is 61 | obligated to maintain confidentiality with regard to the reporter of an incident. 62 | Further details of specific enforcement policies may be posted separately. 63 | 64 | Project maintainers who do not follow or enforce the Code of Conduct in good 65 | faith may face temporary or permanent repercussions as determined by other 66 | members of the project's leadership. 67 | 68 | ## Attribution 69 | 70 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, 71 | available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html 72 | 73 | [homepage]: https://www.contributor-covenant.org 74 | 75 | For answers to common questions about this code of conduct, see 76 | https://www.contributor-covenant.org/faq -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing 2 | 3 | This is an open source project, and we appreciate your help! 4 | 5 | We use the GitHub issue tracker to discuss new features and bugs. 6 | 7 | In addition to the issue tracker, the PLCnext Technology [Forum](https://www.plcnext-community.net/index.php?option=com_easydiscuss&view=categories&Itemid=221&lang=en) is the best way to get into contact with the project's maintainers. 8 | 9 | To contribute code or documentation for available projects, please use an issue with an *easy-pick* label. 10 | Our [maintainers](MAINTAINERS.md) will review and implement the changes. 11 | 12 | If you are interested in contributing to the PLCnext platform organisation, please contact CommunityExamples@phoenixcontact.com. 13 | After reviewing, we will decide together, if your project will be forked from our organisation or if you get a member and transfer the repository to the organisation. -------------------------------------------------------------------------------- /CONTRIBUTORS.md: -------------------------------------------------------------------------------- 1 | # Contributors 2 | 3 | This is the official list of the MqttClient project contributors. 4 | 7 | 8 | * Phoenix Contact GmbH & Co. KG 9 | - Martin Boers 10 | - Marcel Luhmann 11 | - Oliver Warneke 12 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Phoenix Contact GmbH & Co KG 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /MAINTAINERS.md: -------------------------------------------------------------------------------- 1 | # MAINTAINER 2 | 3 | Martin Boers - OSSPLCnext@phoenixcontact.com 4 | Oliver Warneke - OSSPLCnext@phoenixcontact.com 5 | -------------------------------------------------------------------------------- /ReleaseNotes.md: -------------------------------------------------------------------------------- 1 | # ReleaseNotes 2 | 3 | ## Current version 4 | 5 | | Date | Version | 6 | |------------|-------------| 7 | | 29.03.2019 | 1.0.0 | 8 | 9 | ### New Features 10 | 11 | ### Changes 12 | 13 | ### BugFixes 14 | 15 | ---------- 16 | 17 | ## Previous versions 18 | 19 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Vulnerablitiys 2 | 3 | Phoenix Contact provides a process to report security issues. 4 | Please visit the website for the [Phoenix Contact PSIRT](https://phoenixcontact.com/psirt) process and follow the instructions. 5 | -------------------------------------------------------------------------------- /docs/PLCnextStore_App_paho_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PLCnext/MqttClient/8c2d3f604715ec9beba7c6ac08455ffd18528a23/docs/PLCnextStore_App_paho_03.png -------------------------------------------------------------------------------- /docs/bc_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PLCnext/MqttClient/8c2d3f604715ec9beba7c6ac08455ffd18528a23/docs/bc_s.png -------------------------------------------------------------------------------- /docs/bdwn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PLCnext/MqttClient/8c2d3f604715ec9beba7c6ac08455ffd18528a23/docs/bdwn.png -------------------------------------------------------------------------------- /docs/class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_i_mqtt_client_service.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PLCnext/MqttClient/8c2d3f604715ec9beba7c6ac08455ffd18528a23/docs/class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_i_mqtt_client_service.png -------------------------------------------------------------------------------- /docs/class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_factory.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PLCnext/MqttClient/8c2d3f604715ec9beba7c6ac08455ffd18528a23/docs/class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_factory.png -------------------------------------------------------------------------------- /docs/class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_impl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PLCnext/MqttClient/8c2d3f604715ec9beba7c6ac08455ffd18528a23/docs/class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_impl.png -------------------------------------------------------------------------------- /docs/class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_proxy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PLCnext/MqttClient/8c2d3f604715ec9beba7c6ac08455ffd18528a23/docs/class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_proxy.png -------------------------------------------------------------------------------- /docs/class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_proxy_factory.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PLCnext/MqttClient/8c2d3f604715ec9beba7c6ac08455ffd18528a23/docs/class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_proxy_factory.png -------------------------------------------------------------------------------- /docs/class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_security_stub.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PLCnext/MqttClient/8c2d3f604715ec9beba7c6ac08455ffd18528a23/docs/class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_security_stub.png -------------------------------------------------------------------------------- /docs/class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_stub.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PLCnext/MqttClient/8c2d3f604715ec9beba7c6ac08455ffd18528a23/docs/class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_stub.png -------------------------------------------------------------------------------- /docs/closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PLCnext/MqttClient/8c2d3f604715ec9beba7c6ac08455ffd18528a23/docs/closed.png -------------------------------------------------------------------------------- /docs/dir_252ceb4d48781b975620d9d49b7036a4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | MQTT Client: C:/Users/iebm01/Desktop/MqttClientService/Cpp Directory Reference 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 21 | 22 | 23 | 24 | 29 | 30 | 31 |
25 |
MQTT Client 26 |  1.0.0 27 |
28 |
32 |
33 | 34 | 35 | 40 | 41 | 42 | 49 | 50 | 51 |
55 |
56 | 57 | 58 |
59 | 62 |
63 | 64 | 68 |
69 |
70 |
71 |
Cpp Directory Reference
72 |
73 |
74 |
75 | 76 | 81 | 82 | 83 | -------------------------------------------------------------------------------- /docs/dir_717eb9f61b51ce50f0de22cc26c6546d.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | MQTT Client: C:/Users/iebm01/Desktop/MqttClientService Directory Reference 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 21 | 22 | 23 | 24 | 29 | 30 | 31 |
25 |
MQTT Client 26 |  1.0.0 27 |
28 |
32 |
33 | 34 | 35 | 40 | 41 | 42 | 49 | 50 | 51 |
55 |
56 | 57 | 58 |
59 | 62 |
63 | 64 | 68 |
69 |
70 |
71 |
MqttClientService Directory Reference
72 |
73 |
74 |
75 | 76 | 81 | 82 | 83 | -------------------------------------------------------------------------------- /docs/dir_abc319a5a9359a139e03f6f252ff1d73.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | MQTT Client: C:/Users/iebm01/Desktop/MqttClientService/C# Directory Reference 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 21 | 22 | 23 | 24 | 29 | 30 | 31 |
25 |
MQTT Client 26 |  1.0.0 27 |
28 |
32 |
33 | 34 | 35 | 40 | 41 | 42 | 49 | 50 | 51 |
55 |
56 | 57 | 58 |
59 | 62 |
63 | 64 | 68 |
69 |
70 |
71 |
C# Directory Reference
72 |
73 |
74 |
75 | 76 | 81 | 82 | 83 | -------------------------------------------------------------------------------- /docs/dir_b7b9236d522a8cac8d553c2b290c70eb.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | MQTT Client: C:/Users/iebm01/Desktop/MqttClientService/Cpp/Eclipse Directory Reference 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 21 | 22 | 23 | 24 | 29 | 30 | 31 |
25 |
MQTT Client 26 |  1.0.0 27 |
28 |
32 |
33 | 34 | 35 | 40 | 41 | 42 | 49 | 50 | 51 |
55 |
56 | 57 | 58 |
59 | 62 |
63 | 64 | 68 |
69 |
70 |
71 |
Eclipse Directory Reference
72 |
73 |
74 |
75 | 76 | 81 | 82 | 83 | -------------------------------------------------------------------------------- /docs/dir_e04ae2849dfa520b4ee2c9f7e9ff15de.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | MQTT Client: C:/Users/iebm01/Desktop Directory Reference 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 21 | 22 | 23 | 24 | 29 | 30 | 31 |
25 |
MQTT Client 26 |  1.0.0 27 |
28 |
32 |
33 | 34 | 35 | 40 | 41 | 42 | 49 | 50 | 51 |
55 |
56 | 57 | 58 |
59 | 62 |
63 | 64 | 68 |
69 |
70 |
71 |
Desktop Directory Reference
72 |
73 |
74 |
75 | 76 | 81 | 82 | 83 | -------------------------------------------------------------------------------- /docs/dir_e6ed4880f6f650eb10a8d5bfc28d0715.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | MQTT Client: C:/Users/iebm01/Desktop/MqttClientService/C#/MqttClient Directory Reference 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 21 | 22 | 23 | 24 | 29 | 30 | 31 |
25 |
MQTT Client 26 |  1.0.0 27 |
28 |
32 |
33 | 34 | 35 | 40 | 41 | 42 | 49 | 50 | 51 |
55 |
56 | 57 | 58 |
59 | 62 |
63 | 64 | 68 |
69 |
70 |
71 |
MqttClient Directory Reference
72 |
73 |
74 |
75 | 76 | 81 | 82 | 83 | -------------------------------------------------------------------------------- /docs/doc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PLCnext/MqttClient/8c2d3f604715ec9beba7c6ac08455ffd18528a23/docs/doc.png -------------------------------------------------------------------------------- /docs/doxygen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PLCnext/MqttClient/8c2d3f604715ec9beba7c6ac08455ffd18528a23/docs/doxygen.png -------------------------------------------------------------------------------- /docs/folderclosed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PLCnext/MqttClient/8c2d3f604715ec9beba7c6ac08455ffd18528a23/docs/folderclosed.png -------------------------------------------------------------------------------- /docs/folderopen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PLCnext/MqttClient/8c2d3f604715ec9beba7c6ac08455ffd18528a23/docs/folderopen.png -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | MQTT Client: Main Page 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 21 | 22 | 23 | 24 | 29 | 30 | 31 |
25 |
MQTT Client 26 |  1.0.0 27 |
28 |
32 |
33 | 34 | 35 | 40 | 41 | 42 | 49 | 50 |
51 | 52 |
56 |
57 | 58 | 59 |
60 | 63 |
64 | 65 |
66 |
67 |
MQTT Client Documentation
68 |
69 |
70 |
71 | 72 | 77 | 78 | 79 | -------------------------------------------------------------------------------- /docs/menu.js: -------------------------------------------------------------------------------- 1 | /* 2 | @licstart The following is the entire license notice for the 3 | JavaScript code in this file. 4 | 5 | Copyright (C) 1997-2017 by Dimitri van Heesch 6 | 7 | This program is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 2 of the License, or 10 | (at your option) any later version. 11 | 12 | This program is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License along 18 | with this program; if not, write to the Free Software Foundation, Inc., 19 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 20 | 21 | @licend The above is the entire license notice 22 | for the JavaScript code in this file 23 | */ 24 | function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { 25 | function makeTree(data,relPath) { 26 | var result=''; 27 | if ('children' in data) { 28 | result+=''; 35 | } 36 | return result; 37 | } 38 | 39 | $('#main-nav').append(makeTree(menudata,relPath)); 40 | $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); 41 | if (searchEnabled) { 42 | if (serverSide) { 43 | $('#main-menu').append('
  • '); 44 | } else { 45 | $('#main-menu').append('
  • '); 46 | } 47 | } 48 | $('#main-menu').smartmenus(); 49 | } 50 | /* @license-end */ 51 | -------------------------------------------------------------------------------- /docs/menudata.js: -------------------------------------------------------------------------------- 1 | /* 2 | @ @licstart The following is the entire license notice for the 3 | JavaScript code in this file. 4 | 5 | Copyright (C) 1997-2017 by Dimitri van Heesch 6 | 7 | This program is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 2 of the License, or 10 | (at your option) any later version. 11 | 12 | This program is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License along 18 | with this program; if not, write to the Free Software Foundation, Inc., 19 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 20 | 21 | @licend The above is the entire license notice 22 | for the JavaScript code in this file 23 | */ 24 | var menudata={children:[ 25 | {text:"Main Page",url:"index.html"}, 26 | {text:"Classes",url:"annotated.html",children:[ 27 | {text:"Class List",url:"annotated.html"}, 28 | {text:"Class Index",url:"classes.html"}, 29 | {text:"Class Hierarchy",url:"hierarchy.html"}, 30 | {text:"Class Members",url:"functions.html",children:[ 31 | {text:"All",url:"functions.html",children:[ 32 | {text:"a",url:"functions.html#index_a"}, 33 | {text:"c",url:"functions.html#index_c"}, 34 | {text:"d",url:"functions.html#index_d"}, 35 | {text:"e",url:"functions.html#index_e"}, 36 | {text:"i",url:"functions.html#index_i"}, 37 | {text:"k",url:"functions.html#index_k"}, 38 | {text:"l",url:"functions.html#index_l"}, 39 | {text:"m",url:"functions.html#index_m"}, 40 | {text:"p",url:"functions.html#index_p"}, 41 | {text:"q",url:"functions.html#index_q"}, 42 | {text:"r",url:"functions.html#index_r"}, 43 | {text:"s",url:"functions.html#index_s"}, 44 | {text:"t",url:"functions.html#index_t"}, 45 | {text:"u",url:"functions.html#index_u"}, 46 | {text:"w",url:"functions.html#index_w"}, 47 | {text:"~",url:"functions.html#index__7E"}]}, 48 | {text:"Functions",url:"functions_func.html",children:[ 49 | {text:"c",url:"functions_func.html#index_c"}, 50 | {text:"d",url:"functions_func.html#index_d"}, 51 | {text:"i",url:"functions_func.html#index_i"}, 52 | {text:"m",url:"functions_func.html#index_m"}, 53 | {text:"p",url:"functions_func.html#index_p"}, 54 | {text:"r",url:"functions_func.html#index_r"}, 55 | {text:"s",url:"functions_func.html#index_s"}, 56 | {text:"t",url:"functions_func.html#index_t"}, 57 | {text:"u",url:"functions_func.html#index_u"}, 58 | {text:"~",url:"functions_func.html#index__7E"}]}, 59 | {text:"Variables",url:"functions_vars.html"}]}]}, 60 | {text:"Files",url:"files.html",children:[ 61 | {text:"File List",url:"files.html"}]}]} 62 | -------------------------------------------------------------------------------- /docs/namespace_pxce_tcs.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | MQTT Client: PxceTcs Namespace Reference 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
    19 |
    20 | 21 | 22 | 23 | 24 | 29 | 30 | 31 |
    25 |
    MQTT Client 26 |  1.0.0 27 |
    28 |
    32 |
    33 | 34 | 35 | 40 | 41 | 42 | 49 | 50 | 51 |
    55 |
    56 | 57 | 58 |
    59 | 62 |
    63 | 64 |
    65 |
    66 |
    67 | Namespaces
    68 |
    69 |
    PxceTcs Namespace Reference
    70 |
    71 |
    72 |
    73 | 74 | 79 | 80 | 81 | -------------------------------------------------------------------------------- /docs/namespace_pxce_tcs_1_1_mqtt_client.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | MQTT Client: PxceTcs.MqttClient Namespace Reference 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
    19 |
    20 | 21 | 22 | 23 | 24 | 29 | 30 | 31 |
    25 |
    MQTT Client 26 |  1.0.0 27 |
    28 |
    32 |
    33 | 34 | 35 | 40 | 41 | 42 | 49 | 50 | 51 |
    55 |
    56 | 57 | 58 |
    59 | 62 |
    63 | 64 | 68 |
    69 |
    70 |
    71 | Namespaces
    72 |
    73 |
    PxceTcs.MqttClient Namespace Reference
    74 |
    75 |
    76 |
    77 | 78 | 83 | 84 | 85 | -------------------------------------------------------------------------------- /docs/nav_f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PLCnext/MqttClient/8c2d3f604715ec9beba7c6ac08455ffd18528a23/docs/nav_f.png -------------------------------------------------------------------------------- /docs/nav_g.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PLCnext/MqttClient/8c2d3f604715ec9beba7c6ac08455ffd18528a23/docs/nav_g.png -------------------------------------------------------------------------------- /docs/nav_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PLCnext/MqttClient/8c2d3f604715ec9beba7c6ac08455ffd18528a23/docs/nav_h.png -------------------------------------------------------------------------------- /docs/open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PLCnext/MqttClient/8c2d3f604715ec9beba7c6ac08455ffd18528a23/docs/open.png -------------------------------------------------------------------------------- /docs/search/all_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/all_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['automaticreconnect',['automaticReconnect',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_connect_options.html#a6bcfee64c8f0e2eec15b9cf6cb6b0d73',1,'PxceTcs::MqttClient::Services::ConnectOptions']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/all_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/all_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['connect',['Connect',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_i_mqtt_client_service.html#ae51ad03876068455c6fff2ced3038440',1,'PxceTcs::MqttClient::Services::IMqttClientService::Connect()'],['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_impl.html#ac19a2522ea46d87889f33202184d5d7a',1,'PxceTcs::MqttClient::Services::MqttClientServiceImpl::Connect()']]], 4 | ['connectoptions',['ConnectOptions',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_connect_options.html',1,'PxceTcs::MqttClient::Services']]], 5 | ['connecttimeout',['connectTimeout',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_connect_options.html#a8a473eaa6c6296a5c356d20aea011441',1,'PxceTcs::MqttClient::Services::ConnectOptions']]], 6 | ['createclient',['CreateClient',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_i_mqtt_client_service.html#a4322db69c95cb0a47bfb03932a8f6e4c',1,'PxceTcs::MqttClient::Services::IMqttClientService::CreateClient()'],['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_impl.html#a572fd22dae25d6530ea4f1cf579287bb',1,'PxceTcs::MqttClient::Services::MqttClientServiceImpl::CreateClient()']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /docs/search/all_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/all_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['destroyclient',['DestroyClient',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_i_mqtt_client_service.html#af2a50bcb08918618f5284ab04ce07ac1',1,'PxceTcs::MqttClient::Services::IMqttClientService::DestroyClient()'],['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_impl.html#ab763d59a545eaafb8145e87270e1bb70',1,'PxceTcs::MqttClient::Services::MqttClientServiceImpl::DestroyClient()']]], 4 | ['disconnect',['Disconnect',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_i_mqtt_client_service.html#a3cb4d51e9ef8d1b8b07fc1004be12001',1,'PxceTcs::MqttClient::Services::IMqttClientService::Disconnect()'],['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_impl.html#a85ccc0ab29d6d9dcea58047c9eefd4da',1,'PxceTcs::MqttClient::Services::MqttClientServiceImpl::Disconnect()']]], 5 | ['duplicate',['duplicate',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_message.html#a7c5692e2e13ab27f34f323c74d02317a',1,'PxceTcs::MqttClient::Services::Message']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/search/all_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/all_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['enabledciphersuites',['enabledCipherSuites',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_ssl_options.html#af36d61a78f0828b3a8a4645f37845ab6',1,'PxceTcs::MqttClient::Services::SslOptions']]], 4 | ['enableservercertauth',['enableServerCertAuth',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_ssl_options.html#a4e9edd8a3cd3af8db63cd37435050a14',1,'PxceTcs::MqttClient::Services::SslOptions']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/all_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/all_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['imqttclientservice',['IMqttClientService',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_i_mqtt_client_service.html',1,'PxceTcs::MqttClient::Services::IMqttClientService'],['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_i_mqtt_client_service.html#a177f229b54da38c34dd948a5c0795226',1,'PxceTcs::MqttClient::Services::IMqttClientService::IMqttClientService()']]], 4 | ['iscleansession',['isCleanSession',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_connect_options.html#a41082f836a56e3b299651f2b5c629aec',1,'PxceTcs::MqttClient::Services::ConnectOptions']]], 5 | ['isconnected',['IsConnected',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_i_mqtt_client_service.html#a1098efefd5e8b5fd9288638d44c9fee5',1,'PxceTcs::MqttClient::Services::IMqttClientService::IsConnected()'],['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_impl.html#a73f3c2441f93790ea3e00d4c2f375bad',1,'PxceTcs::MqttClient::Services::MqttClientServiceImpl::IsConnected()']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/search/all_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/all_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['keepaliveinterval',['keepAliveInterval',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_connect_options.html#a21917761f7e916c4a3631225ba112bc4',1,'PxceTcs::MqttClient::Services::ConnectOptions']]], 4 | ['keystore',['keyStore',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_ssl_options.html#a24403c9bef4b53224c02c4399c720f7c',1,'PxceTcs::MqttClient::Services::SslOptions']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/all_6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/all_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['len',['len',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_message.html#a87fcd0036ff645d4ab4f780b36b27af2',1,'PxceTcs::MqttClient::Services::Message']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/all_7.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/all_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['maxinflight',['maxInflight',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_connect_options.html#a6536a7e4189ecfb27080ec45232b2029',1,'PxceTcs::MqttClient::Services::ConnectOptions']]], 4 | ['maxretryinterval',['maxRetryInterval',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_connect_options.html#abea8ad605849b11c97f161282062e859',1,'PxceTcs::MqttClient::Services::ConnectOptions']]], 5 | ['message',['Message',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_message.html',1,'PxceTcs::MqttClient::Services']]], 6 | ['minretryinterval',['minRetryInterval',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_connect_options.html#aa69b2fc0527a276f2441d7029958704f',1,'PxceTcs::MqttClient::Services::ConnectOptions']]], 7 | ['mqttclientservicefactory',['MqttClientServiceFactory',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_factory.html',1,'PxceTcs::MqttClient::Services::MqttClientServiceFactory'],['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_factory.html#a8879cdcc57b36d1ab940871a3baefef3',1,'PxceTcs::MqttClient::Services::MqttClientServiceFactory::MqttClientServiceFactory()']]], 8 | ['mqttclientserviceimpl',['MqttClientServiceImpl',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_impl.html',1,'PxceTcs::MqttClient::Services::MqttClientServiceImpl'],['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_impl.html#af2af8e892a2672f03c2d6f36fb67d453',1,'PxceTcs::MqttClient::Services::MqttClientServiceImpl::MqttClientServiceImpl()']]], 9 | ['mqttclientserviceproxy',['MqttClientServiceProxy',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_proxy.html',1,'PxceTcs::MqttClient::Services::MqttClientServiceProxy'],['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_proxy.html#a380df14efd9760b0482bd5f16c7b0081',1,'PxceTcs::MqttClient::Services::MqttClientServiceProxy::MqttClientServiceProxy()']]], 10 | ['mqttclientserviceproxyfactory',['MqttClientServiceProxyFactory',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_proxy_factory.html',1,'PxceTcs::MqttClient::Services::MqttClientServiceProxyFactory'],['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_proxy_factory.html#ab4ef56176d60aa1de4d72182b96459cc',1,'PxceTcs::MqttClient::Services::MqttClientServiceProxyFactory::MqttClientServiceProxyFactory()']]], 11 | ['mqttclientservicesecuritystub',['MqttClientServiceSecurityStub',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_security_stub.html',1,'PxceTcs::MqttClient::Services::MqttClientServiceSecurityStub'],['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_security_stub.html#aad88a265dda1d1ac2211de5b2bfa9305',1,'PxceTcs::MqttClient::Services::MqttClientServiceSecurityStub::MqttClientServiceSecurityStub()']]], 12 | ['mqttclientservicestub',['MqttClientServiceStub',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_stub.html',1,'PxceTcs::MqttClient::Services::MqttClientServiceStub'],['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_stub.html#a6bf1786cb186d79b8401652d28db7a0e',1,'PxceTcs::MqttClient::Services::MqttClientServiceStub::MqttClientServiceStub()']]], 13 | ['mqttversion',['mqttVersion',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_connect_options.html#a7d7beec8745be247e827d109076915da',1,'PxceTcs::MqttClient::Services::ConnectOptions']]] 14 | ]; 15 | -------------------------------------------------------------------------------- /docs/search/all_8.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/all_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['password',['password',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_connect_options.html#a268058475cadf82cf4693d0477ef46bb',1,'PxceTcs::MqttClient::Services::ConnectOptions']]], 4 | ['payload',['payload',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_message.html#a0f147795de68d08a1b0581396c4127e1',1,'PxceTcs::MqttClient::Services::Message::payload()'],['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_will_options.html#a0350b3d4fc91b729dbce37218f77e540',1,'PxceTcs::MqttClient::Services::WillOptions::payload()']]], 5 | ['privatekey',['privateKey',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_ssl_options.html#ac99c13c792167abadbd19d975f7e5760',1,'PxceTcs::MqttClient::Services::SslOptions']]], 6 | ['privatekeypassword',['privateKeyPassword',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_ssl_options.html#a21e8e4e2a736a7cbf14699ecd8b9a95b',1,'PxceTcs::MqttClient::Services::SslOptions']]], 7 | ['publish',['Publish',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_i_mqtt_client_service.html#a00a22ab038cceb8c9e366d7bc327b836',1,'PxceTcs::MqttClient::Services::IMqttClientService::Publish()'],['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_impl.html#a56da738b2650f2538d4943ea5725f581',1,'PxceTcs::MqttClient::Services::MqttClientServiceImpl::Publish()']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /docs/search/all_9.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/all_9.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['qos',['qos',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_message.html#a27555c1c7c01efaccbcb31fcae34be2c',1,'PxceTcs::MqttClient::Services::Message::qos()'],['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_will_options.html#a3b2e0f648324e01db93cc6e2c2bed4a5',1,'PxceTcs::MqttClient::Services::WillOptions::qos()']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/all_a.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/all_a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['reconnect',['Reconnect',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_i_mqtt_client_service.html#a7961b421c2b6431087e8176fa1d1da77',1,'PxceTcs::MqttClient::Services::IMqttClientService::Reconnect()'],['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_impl.html#a731cd1c3c3b33986046a80571228763d',1,'PxceTcs::MqttClient::Services::MqttClientServiceImpl::Reconnect()']]], 4 | ['retained',['retained',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_message.html#ac1314720a38422eab49dd4542285c880',1,'PxceTcs::MqttClient::Services::Message::retained()'],['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_will_options.html#a007b66f6eadde48f39b91390a68bfb4e',1,'PxceTcs::MqttClient::Services::WillOptions::retained()']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/all_b.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/all_b.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['servers',['servers',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_connect_options.html#a92142e3d637d6ab4b66291662f79ac03',1,'PxceTcs::MqttClient::Services::ConnectOptions']]], 4 | ['ssloptions',['SslOptions',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_ssl_options.html',1,'PxceTcs::MqttClient::Services::SslOptions'],['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_connect_options.html#a900a8ace1c761419e601bbb7eff8762f',1,'PxceTcs::MqttClient::Services::ConnectOptions::sslOptions()']]], 5 | ['subscribe',['Subscribe',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_i_mqtt_client_service.html#a5c405afd624f30d1eaab8ebc41d2c118',1,'PxceTcs::MqttClient::Services::IMqttClientService::Subscribe()'],['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_impl.html#ab0b3599ce860aae38dc2ca53a0511d64',1,'PxceTcs::MqttClient::Services::MqttClientServiceImpl::Subscribe()']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/search/all_c.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/all_c.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['topic',['topic',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_message.html#a89e36bab9b2361f1347d1ed63c3526af',1,'PxceTcs::MqttClient::Services::Message::topic()'],['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_will_options.html#a3c27cac0f02c4da12f3174fbdbe10740',1,'PxceTcs::MqttClient::Services::WillOptions::topic()']]], 4 | ['truststore',['trustStore',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_ssl_options.html#a53c62c2ece950e08e3e1e4b16864c405',1,'PxceTcs::MqttClient::Services::SslOptions']]], 5 | ['tryconsumemessage',['TryConsumeMessage',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_i_mqtt_client_service.html#afe1487bde7038f64bf20b19ef18632f8',1,'PxceTcs::MqttClient::Services::IMqttClientService::TryConsumeMessage()'],['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_impl.html#a9eb8aca3b76c4706ff1eed6dda754e49',1,'PxceTcs::MqttClient::Services::MqttClientServiceImpl::TryConsumeMessage()']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/search/all_d.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/all_d.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['unsubscribe',['Unsubscribe',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_i_mqtt_client_service.html#a5649871e46b416f3f970391bafea45cf',1,'PxceTcs::MqttClient::Services::IMqttClientService::Unsubscribe()'],['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_impl.html#a91c4c6013c4ffcbf70714f4f0dc852c5',1,'PxceTcs::MqttClient::Services::MqttClientServiceImpl::Unsubscribe()']]], 4 | ['username',['userName',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_connect_options.html#a0a4915a03d45e858df7e9c4139fd636d',1,'PxceTcs::MqttClient::Services::ConnectOptions']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/all_e.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/all_e.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['willoptions',['WillOptions',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_will_options.html',1,'PxceTcs::MqttClient::Services::WillOptions'],['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_connect_options.html#a80e4bf51465a5d60fede7e2e568bc9b6',1,'PxceTcs::MqttClient::Services::ConnectOptions::willOptions()']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/all_f.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/all_f.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['_7eimqttclientservice',['~IMqttClientService',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_i_mqtt_client_service.html#a620c76f7964d27e761141373ec351a92',1,'PxceTcs::MqttClient::Services::IMqttClientService']]], 4 | ['_7emqttclientservicefactory',['~MqttClientServiceFactory',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_factory.html#a05b4a8430553106c24d40f49121a7347',1,'PxceTcs::MqttClient::Services::MqttClientServiceFactory']]], 5 | ['_7emqttclientserviceimpl',['~MqttClientServiceImpl',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_impl.html#a96b30e1a67f607210f654ab53985a40b',1,'PxceTcs::MqttClient::Services::MqttClientServiceImpl']]], 6 | ['_7emqttclientserviceproxy',['~MqttClientServiceProxy',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_proxy.html#a3fa2ef06a845007922b2d77234888a2c',1,'PxceTcs::MqttClient::Services::MqttClientServiceProxy']]], 7 | ['_7emqttclientserviceproxyfactory',['~MqttClientServiceProxyFactory',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_proxy_factory.html#a097d5301b581f9241719a530bae9a268',1,'PxceTcs::MqttClient::Services::MqttClientServiceProxyFactory']]], 8 | ['_7emqttclientservicesecuritystub',['~MqttClientServiceSecurityStub',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_security_stub.html#a9c87acdc09d01e0c3b8e0ba48c4254fd',1,'PxceTcs::MqttClient::Services::MqttClientServiceSecurityStub']]], 9 | ['_7emqttclientservicestub',['~MqttClientServiceStub',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_stub.html#a184964ead0f3b40a95545ee2d8b4ecb8',1,'PxceTcs::MqttClient::Services::MqttClientServiceStub']]] 10 | ]; 11 | -------------------------------------------------------------------------------- /docs/search/classes_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/classes_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['connectoptions',['ConnectOptions',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_connect_options.html',1,'PxceTcs::MqttClient::Services']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/classes_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/classes_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['imqttclientservice',['IMqttClientService',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_i_mqtt_client_service.html',1,'PxceTcs::MqttClient::Services']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/classes_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/classes_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['message',['Message',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_message.html',1,'PxceTcs::MqttClient::Services']]], 4 | ['mqttclientservicefactory',['MqttClientServiceFactory',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_factory.html',1,'PxceTcs::MqttClient::Services']]], 5 | ['mqttclientserviceimpl',['MqttClientServiceImpl',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_impl.html',1,'PxceTcs::MqttClient::Services']]], 6 | ['mqttclientserviceproxy',['MqttClientServiceProxy',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_proxy.html',1,'PxceTcs::MqttClient::Services']]], 7 | ['mqttclientserviceproxyfactory',['MqttClientServiceProxyFactory',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_proxy_factory.html',1,'PxceTcs::MqttClient::Services']]], 8 | ['mqttclientservicesecuritystub',['MqttClientServiceSecurityStub',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_security_stub.html',1,'PxceTcs::MqttClient::Services']]], 9 | ['mqttclientservicestub',['MqttClientServiceStub',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_stub.html',1,'PxceTcs::MqttClient::Services']]] 10 | ]; 11 | -------------------------------------------------------------------------------- /docs/search/classes_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/classes_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['ssloptions',['SslOptions',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_ssl_options.html',1,'PxceTcs::MqttClient::Services']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/classes_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/classes_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['willoptions',['WillOptions',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_will_options.html',1,'PxceTcs::MqttClient::Services']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PLCnext/MqttClient/8c2d3f604715ec9beba7c6ac08455ffd18528a23/docs/search/close.png -------------------------------------------------------------------------------- /docs/search/functions_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/functions_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['connect',['Connect',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_i_mqtt_client_service.html#ae51ad03876068455c6fff2ced3038440',1,'PxceTcs::MqttClient::Services::IMqttClientService::Connect()'],['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_impl.html#ac19a2522ea46d87889f33202184d5d7a',1,'PxceTcs::MqttClient::Services::MqttClientServiceImpl::Connect()']]], 4 | ['createclient',['CreateClient',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_i_mqtt_client_service.html#a4322db69c95cb0a47bfb03932a8f6e4c',1,'PxceTcs::MqttClient::Services::IMqttClientService::CreateClient()'],['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_impl.html#a572fd22dae25d6530ea4f1cf579287bb',1,'PxceTcs::MqttClient::Services::MqttClientServiceImpl::CreateClient()']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/functions_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/functions_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['destroyclient',['DestroyClient',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_i_mqtt_client_service.html#af2a50bcb08918618f5284ab04ce07ac1',1,'PxceTcs::MqttClient::Services::IMqttClientService::DestroyClient()'],['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_impl.html#ab763d59a545eaafb8145e87270e1bb70',1,'PxceTcs::MqttClient::Services::MqttClientServiceImpl::DestroyClient()']]], 4 | ['disconnect',['Disconnect',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_i_mqtt_client_service.html#a3cb4d51e9ef8d1b8b07fc1004be12001',1,'PxceTcs::MqttClient::Services::IMqttClientService::Disconnect()'],['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_impl.html#a85ccc0ab29d6d9dcea58047c9eefd4da',1,'PxceTcs::MqttClient::Services::MqttClientServiceImpl::Disconnect()']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/functions_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/functions_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['imqttclientservice',['IMqttClientService',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_i_mqtt_client_service.html#a177f229b54da38c34dd948a5c0795226',1,'PxceTcs::MqttClient::Services::IMqttClientService']]], 4 | ['isconnected',['IsConnected',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_i_mqtt_client_service.html#a1098efefd5e8b5fd9288638d44c9fee5',1,'PxceTcs::MqttClient::Services::IMqttClientService::IsConnected()'],['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_impl.html#a73f3c2441f93790ea3e00d4c2f375bad',1,'PxceTcs::MqttClient::Services::MqttClientServiceImpl::IsConnected()']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/functions_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/functions_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['mqttclientservicefactory',['MqttClientServiceFactory',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_factory.html#a8879cdcc57b36d1ab940871a3baefef3',1,'PxceTcs::MqttClient::Services::MqttClientServiceFactory']]], 4 | ['mqttclientserviceimpl',['MqttClientServiceImpl',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_impl.html#af2af8e892a2672f03c2d6f36fb67d453',1,'PxceTcs::MqttClient::Services::MqttClientServiceImpl']]], 5 | ['mqttclientserviceproxy',['MqttClientServiceProxy',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_proxy.html#a380df14efd9760b0482bd5f16c7b0081',1,'PxceTcs::MqttClient::Services::MqttClientServiceProxy']]], 6 | ['mqttclientserviceproxyfactory',['MqttClientServiceProxyFactory',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_proxy_factory.html#ab4ef56176d60aa1de4d72182b96459cc',1,'PxceTcs::MqttClient::Services::MqttClientServiceProxyFactory']]], 7 | ['mqttclientservicesecuritystub',['MqttClientServiceSecurityStub',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_security_stub.html#aad88a265dda1d1ac2211de5b2bfa9305',1,'PxceTcs::MqttClient::Services::MqttClientServiceSecurityStub']]], 8 | ['mqttclientservicestub',['MqttClientServiceStub',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_stub.html#a6bf1786cb186d79b8401652d28db7a0e',1,'PxceTcs::MqttClient::Services::MqttClientServiceStub']]] 9 | ]; 10 | -------------------------------------------------------------------------------- /docs/search/functions_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/functions_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['publish',['Publish',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_i_mqtt_client_service.html#a00a22ab038cceb8c9e366d7bc327b836',1,'PxceTcs::MqttClient::Services::IMqttClientService::Publish()'],['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_impl.html#a56da738b2650f2538d4943ea5725f581',1,'PxceTcs::MqttClient::Services::MqttClientServiceImpl::Publish()']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/functions_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/functions_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['reconnect',['Reconnect',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_i_mqtt_client_service.html#a7961b421c2b6431087e8176fa1d1da77',1,'PxceTcs::MqttClient::Services::IMqttClientService::Reconnect()'],['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_impl.html#a731cd1c3c3b33986046a80571228763d',1,'PxceTcs::MqttClient::Services::MqttClientServiceImpl::Reconnect()']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/functions_6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/functions_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['subscribe',['Subscribe',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_i_mqtt_client_service.html#a5c405afd624f30d1eaab8ebc41d2c118',1,'PxceTcs::MqttClient::Services::IMqttClientService::Subscribe()'],['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_impl.html#ab0b3599ce860aae38dc2ca53a0511d64',1,'PxceTcs::MqttClient::Services::MqttClientServiceImpl::Subscribe()']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/functions_7.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/functions_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['tryconsumemessage',['TryConsumeMessage',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_i_mqtt_client_service.html#afe1487bde7038f64bf20b19ef18632f8',1,'PxceTcs::MqttClient::Services::IMqttClientService::TryConsumeMessage()'],['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_impl.html#a9eb8aca3b76c4706ff1eed6dda754e49',1,'PxceTcs::MqttClient::Services::MqttClientServiceImpl::TryConsumeMessage()']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/functions_8.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/functions_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['unsubscribe',['Unsubscribe',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_i_mqtt_client_service.html#a5649871e46b416f3f970391bafea45cf',1,'PxceTcs::MqttClient::Services::IMqttClientService::Unsubscribe()'],['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_impl.html#a91c4c6013c4ffcbf70714f4f0dc852c5',1,'PxceTcs::MqttClient::Services::MqttClientServiceImpl::Unsubscribe()']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/functions_9.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/functions_9.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['_7eimqttclientservice',['~IMqttClientService',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_i_mqtt_client_service.html#a620c76f7964d27e761141373ec351a92',1,'PxceTcs::MqttClient::Services::IMqttClientService']]], 4 | ['_7emqttclientservicefactory',['~MqttClientServiceFactory',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_factory.html#a05b4a8430553106c24d40f49121a7347',1,'PxceTcs::MqttClient::Services::MqttClientServiceFactory']]], 5 | ['_7emqttclientserviceimpl',['~MqttClientServiceImpl',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_impl.html#a96b30e1a67f607210f654ab53985a40b',1,'PxceTcs::MqttClient::Services::MqttClientServiceImpl']]], 6 | ['_7emqttclientserviceproxy',['~MqttClientServiceProxy',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_proxy.html#a3fa2ef06a845007922b2d77234888a2c',1,'PxceTcs::MqttClient::Services::MqttClientServiceProxy']]], 7 | ['_7emqttclientserviceproxyfactory',['~MqttClientServiceProxyFactory',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_proxy_factory.html#a097d5301b581f9241719a530bae9a268',1,'PxceTcs::MqttClient::Services::MqttClientServiceProxyFactory']]], 8 | ['_7emqttclientservicesecuritystub',['~MqttClientServiceSecurityStub',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_security_stub.html#a9c87acdc09d01e0c3b8e0ba48c4254fd',1,'PxceTcs::MqttClient::Services::MqttClientServiceSecurityStub']]], 9 | ['_7emqttclientservicestub',['~MqttClientServiceStub',['../class_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_mqtt_client_service_stub.html#a184964ead0f3b40a95545ee2d8b4ecb8',1,'PxceTcs::MqttClient::Services::MqttClientServiceStub']]] 10 | ]; 11 | -------------------------------------------------------------------------------- /docs/search/mag_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PLCnext/MqttClient/8c2d3f604715ec9beba7c6ac08455ffd18528a23/docs/search/mag_sel.png -------------------------------------------------------------------------------- /docs/search/namespaces_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/namespaces_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['mqttclient',['MqttClient',['../namespace_pxce_tcs_1_1_mqtt_client.html',1,'PxceTcs']]], 4 | ['pxcetcs',['PxceTcs',['../namespace_pxce_tcs.html',1,'']]], 5 | ['services',['Services',['../namespace_pxce_tcs_1_1_mqtt_client_1_1_services.html',1,'PxceTcs::MqttClient']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/search/nomatches.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
    9 |
    No Matches
    10 |
    11 | 12 | 13 | -------------------------------------------------------------------------------- /docs/search/search_l.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PLCnext/MqttClient/8c2d3f604715ec9beba7c6ac08455ffd18528a23/docs/search/search_l.png -------------------------------------------------------------------------------- /docs/search/search_m.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PLCnext/MqttClient/8c2d3f604715ec9beba7c6ac08455ffd18528a23/docs/search/search_m.png -------------------------------------------------------------------------------- /docs/search/search_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PLCnext/MqttClient/8c2d3f604715ec9beba7c6ac08455ffd18528a23/docs/search/search_r.png -------------------------------------------------------------------------------- /docs/search/searchdata.js: -------------------------------------------------------------------------------- 1 | var indexSectionsWithContent = 2 | { 3 | 0: "acdeiklmpqrstuw~", 4 | 1: "cimsw", 5 | 2: "cdimprstu~", 6 | 3: "acdeiklmpqrstuw" 7 | }; 8 | 9 | var indexSectionNames = 10 | { 11 | 0: "all", 12 | 1: "classes", 13 | 2: "functions", 14 | 3: "variables" 15 | }; 16 | 17 | var indexSectionLabels = 18 | { 19 | 0: "All", 20 | 1: "Classes", 21 | 2: "Functions", 22 | 3: "Variables" 23 | }; 24 | 25 | -------------------------------------------------------------------------------- /docs/search/variables_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/variables_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['automaticreconnect',['automaticReconnect',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_connect_options.html#a6bcfee64c8f0e2eec15b9cf6cb6b0d73',1,'PxceTcs::MqttClient::Services::ConnectOptions']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/variables_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/variables_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['connecttimeout',['connectTimeout',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_connect_options.html#a8a473eaa6c6296a5c356d20aea011441',1,'PxceTcs::MqttClient::Services::ConnectOptions']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/variables_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/variables_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['duplicate',['duplicate',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_message.html#a7c5692e2e13ab27f34f323c74d02317a',1,'PxceTcs::MqttClient::Services::Message']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/variables_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/variables_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['enabledciphersuites',['enabledCipherSuites',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_ssl_options.html#af36d61a78f0828b3a8a4645f37845ab6',1,'PxceTcs::MqttClient::Services::SslOptions']]], 4 | ['enableservercertauth',['enableServerCertAuth',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_ssl_options.html#a4e9edd8a3cd3af8db63cd37435050a14',1,'PxceTcs::MqttClient::Services::SslOptions']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/variables_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/variables_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['iscleansession',['isCleanSession',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_connect_options.html#a41082f836a56e3b299651f2b5c629aec',1,'PxceTcs::MqttClient::Services::ConnectOptions']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/variables_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/variables_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['keepaliveinterval',['keepAliveInterval',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_connect_options.html#a21917761f7e916c4a3631225ba112bc4',1,'PxceTcs::MqttClient::Services::ConnectOptions']]], 4 | ['keystore',['keyStore',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_ssl_options.html#a24403c9bef4b53224c02c4399c720f7c',1,'PxceTcs::MqttClient::Services::SslOptions']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/variables_6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/variables_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['len',['len',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_message.html#a87fcd0036ff645d4ab4f780b36b27af2',1,'PxceTcs::MqttClient::Services::Message']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/variables_7.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/variables_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['maxinflight',['maxInflight',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_connect_options.html#a6536a7e4189ecfb27080ec45232b2029',1,'PxceTcs::MqttClient::Services::ConnectOptions']]], 4 | ['maxretryinterval',['maxRetryInterval',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_connect_options.html#abea8ad605849b11c97f161282062e859',1,'PxceTcs::MqttClient::Services::ConnectOptions']]], 5 | ['minretryinterval',['minRetryInterval',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_connect_options.html#aa69b2fc0527a276f2441d7029958704f',1,'PxceTcs::MqttClient::Services::ConnectOptions']]], 6 | ['mqttversion',['mqttVersion',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_connect_options.html#a7d7beec8745be247e827d109076915da',1,'PxceTcs::MqttClient::Services::ConnectOptions']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /docs/search/variables_8.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/variables_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['password',['password',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_connect_options.html#a268058475cadf82cf4693d0477ef46bb',1,'PxceTcs::MqttClient::Services::ConnectOptions']]], 4 | ['payload',['payload',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_message.html#a0f147795de68d08a1b0581396c4127e1',1,'PxceTcs::MqttClient::Services::Message::payload()'],['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_will_options.html#a0350b3d4fc91b729dbce37218f77e540',1,'PxceTcs::MqttClient::Services::WillOptions::payload()']]], 5 | ['privatekey',['privateKey',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_ssl_options.html#ac99c13c792167abadbd19d975f7e5760',1,'PxceTcs::MqttClient::Services::SslOptions']]], 6 | ['privatekeypassword',['privateKeyPassword',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_ssl_options.html#a21e8e4e2a736a7cbf14699ecd8b9a95b',1,'PxceTcs::MqttClient::Services::SslOptions']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /docs/search/variables_9.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/variables_9.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['qos',['qos',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_message.html#a27555c1c7c01efaccbcb31fcae34be2c',1,'PxceTcs::MqttClient::Services::Message::qos()'],['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_will_options.html#a3b2e0f648324e01db93cc6e2c2bed4a5',1,'PxceTcs::MqttClient::Services::WillOptions::qos()']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/variables_a.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/variables_a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['retained',['retained',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_message.html#ac1314720a38422eab49dd4542285c880',1,'PxceTcs::MqttClient::Services::Message::retained()'],['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_will_options.html#a007b66f6eadde48f39b91390a68bfb4e',1,'PxceTcs::MqttClient::Services::WillOptions::retained()']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/variables_b.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/variables_b.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['servers',['servers',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_connect_options.html#a92142e3d637d6ab4b66291662f79ac03',1,'PxceTcs::MqttClient::Services::ConnectOptions']]], 4 | ['ssloptions',['sslOptions',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_connect_options.html#a900a8ace1c761419e601bbb7eff8762f',1,'PxceTcs::MqttClient::Services::ConnectOptions']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/variables_c.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/variables_c.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['topic',['topic',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_message.html#a89e36bab9b2361f1347d1ed63c3526af',1,'PxceTcs::MqttClient::Services::Message::topic()'],['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_will_options.html#a3c27cac0f02c4da12f3174fbdbe10740',1,'PxceTcs::MqttClient::Services::WillOptions::topic()']]], 4 | ['truststore',['trustStore',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_ssl_options.html#a53c62c2ece950e08e3e1e4b16864c405',1,'PxceTcs::MqttClient::Services::SslOptions']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/variables_d.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/variables_d.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['username',['userName',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_connect_options.html#a0a4915a03d45e858df7e9c4139fd636d',1,'PxceTcs::MqttClient::Services::ConnectOptions']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/variables_e.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/variables_e.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['willoptions',['willOptions',['../struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_connect_options.html#a80e4bf51465a5d60fede7e2e568bc9b6',1,'PxceTcs::MqttClient::Services::ConnectOptions']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/splitbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PLCnext/MqttClient/8c2d3f604715ec9beba7c6ac08455ffd18528a23/docs/splitbar.png -------------------------------------------------------------------------------- /docs/struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_connect_options.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PLCnext/MqttClient/8c2d3f604715ec9beba7c6ac08455ffd18528a23/docs/struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_connect_options.png -------------------------------------------------------------------------------- /docs/struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_message.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PLCnext/MqttClient/8c2d3f604715ec9beba7c6ac08455ffd18528a23/docs/struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_message.png -------------------------------------------------------------------------------- /docs/struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_ssl_options.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PLCnext/MqttClient/8c2d3f604715ec9beba7c6ac08455ffd18528a23/docs/struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_ssl_options.png -------------------------------------------------------------------------------- /docs/struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_will_options.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PLCnext/MqttClient/8c2d3f604715ec9beba7c6ac08455ffd18528a23/docs/struct_pxce_tcs_1_1_mqtt_client_1_1_services_1_1_will_options.png -------------------------------------------------------------------------------- /docs/sync_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PLCnext/MqttClient/8c2d3f604715ec9beba7c6ac08455ffd18528a23/docs/sync_off.png -------------------------------------------------------------------------------- /docs/sync_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PLCnext/MqttClient/8c2d3f604715ec9beba7c6ac08455ffd18528a23/docs/sync_on.png -------------------------------------------------------------------------------- /docs/tab_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PLCnext/MqttClient/8c2d3f604715ec9beba7c6ac08455ffd18528a23/docs/tab_a.png -------------------------------------------------------------------------------- /docs/tab_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PLCnext/MqttClient/8c2d3f604715ec9beba7c6ac08455ffd18528a23/docs/tab_b.png -------------------------------------------------------------------------------- /docs/tab_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PLCnext/MqttClient/8c2d3f604715ec9beba7c6ac08455ffd18528a23/docs/tab_h.png -------------------------------------------------------------------------------- /docs/tab_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PLCnext/MqttClient/8c2d3f604715ec9beba7c6ac08455ffd18528a23/docs/tab_s.png -------------------------------------------------------------------------------- /libs/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory(MqttClientService) 2 | -------------------------------------------------------------------------------- /libs/MqttClientService/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.13) 2 | 3 | project(PxceTcs.Mqtt.Client) 4 | 5 | if(NOT CMAKE_BUILD_TYPE) 6 | set(CMAKE_BUILD_TYPE Release) 7 | endif() 8 | 9 | ################# create target ####################################################### 10 | 11 | set (WILDCARD_SOURCE *.cpp) 12 | set (WILDCARD_HEADER *.h *.hpp *.hxx) 13 | 14 | file(GLOB_RECURSE Headers src/${WILDCARD_HEADER} ) 15 | file(GLOB_RECURSE Sources src/${WILDCARD_SOURCE} ) 16 | add_library(PxceTcs.Mqtt.Client SHARED ${Headers} ${Sources}) 17 | 18 | ####################################################################################### 19 | 20 | ################# project include-paths ############################################### 21 | 22 | target_include_directories(PxceTcs.Mqtt.Client 23 | PUBLIC 24 | $ 25 | $) 26 | 27 | ####################################################################################### 28 | 29 | ################# include arp cmake module path ####################################### 30 | 31 | list(INSERT CMAKE_MODULE_PATH 0 "${ARP_TOOLCHAIN_CMAKE_MODULE_PATH}") 32 | list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake") 33 | 34 | ####################################################################################### 35 | 36 | ################# set link options #################################################### 37 | # WARNING: Without --no-undefined the linker will not check, whether all necessary # 38 | # libraries are linked. When a library which is necessary is not linked, # 39 | # the firmware will crash and there will be NO indication why it crashed. # 40 | ####################################################################################### 41 | 42 | target_link_options(PxceTcs.Mqtt.Client PRIVATE LINKER:--no-undefined) 43 | 44 | ####################################################################################### 45 | 46 | ################# add link targets #################################################### 47 | 48 | find_package(ArpDevice REQUIRED) 49 | find_package(ArpProgramming REQUIRED) 50 | find_package(PahoMqttCpp REQUIRED) 51 | find_package(PahoMqttCS REQUIRED) 52 | find_package(PahoMqttAS REQUIRED) 53 | 54 | target_link_libraries(PxceTcs.Mqtt.Client PRIVATE ArpDevice ArpProgramming 55 | PahoMqttCpp::paho-mqttpp3 56 | PahoMqttCS::PahoMqttCS PahoMqttAS::PahoMqttAS) 57 | 58 | ####################################################################################### 59 | 60 | ################# install ############################################################ 61 | 62 | string(REGEX REPLACE "^.*\\(([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+).*$" "\\1" _ARP_SHORT_DEVICE_VERSION ${ARP_DEVICE_VERSION}) 63 | install(TARGETS PxceTcs.Mqtt.Client 64 | LIBRARY DESTINATION ${ARP_DEVICE}_${_ARP_SHORT_DEVICE_VERSION}/$/lib 65 | ARCHIVE DESTINATION ${ARP_DEVICE}_${_ARP_SHORT_DEVICE_VERSION}/$/lib 66 | RUNTIME DESTINATION ${ARP_DEVICE}_${_ARP_SHORT_DEVICE_VERSION}/$/bin) 67 | unset(_ARP_SHORT_DEVICE_VERSION) 68 | 69 | ####################################################################################### 70 | -------------------------------------------------------------------------------- /libs/MqttClientService/cmake/FindPahoMqttAS.cmake: -------------------------------------------------------------------------------- 1 | find_path(PahoMqttAS_INCLUDE_DIR 2 | NAMES MQTTClient.h 3 | ) 4 | find_library(PahoMqttAS_LIBRARY 5 | NAMES paho-mqtt3as 6 | ) 7 | 8 | include(FindPackageHandleStandardArgs) 9 | 10 | find_package_handle_standard_args(PahoMqttAS 11 | DEFAULT_MSG 12 | PahoMqttAS_INCLUDE_DIR PahoMqttAS_LIBRARY 13 | ) 14 | 15 | if(PahoMqttAS_FOUND AND NOT TARGET PahoMqttAS::PahoMqttAS) 16 | add_library(PahoMqttAS::PahoMqttAS UNKNOWN IMPORTED) 17 | set_target_properties(PahoMqttAS::PahoMqttAS PROPERTIES 18 | IMPORTED_LOCATION "${PahoMqttAS_LIBRARY}" 19 | INTERFACE_INCLUDE_DIRECTORIES "${PahoMqttAS_INCLUDE_DIR}" 20 | ) 21 | endif() 22 | 23 | mark_as_advanced(PahoMqttAS_INCLUDE_DIR PahoMqttAS_LIBRARY) 24 | -------------------------------------------------------------------------------- /libs/MqttClientService/cmake/FindPahoMqttCS.cmake: -------------------------------------------------------------------------------- 1 | find_path(PahoMqttCS_INCLUDE_DIR 2 | NAMES MQTTClient.h 3 | ) 4 | find_library(PahoMqttCS_LIBRARY 5 | NAMES paho-mqtt3cs 6 | ) 7 | 8 | include(FindPackageHandleStandardArgs) 9 | 10 | find_package_handle_standard_args(PahoMqttCS 11 | DEFAULT_MSG 12 | PahoMqttCS_INCLUDE_DIR PahoMqttCS_LIBRARY 13 | ) 14 | 15 | if(PahoMqttCS_FOUND AND NOT TARGET PahoMqttCS::PahoMqttCS) 16 | add_library(PahoMqttCS::PahoMqttCS UNKNOWN IMPORTED) 17 | set_target_properties(PahoMqttCS::PahoMqttCS PROPERTIES 18 | IMPORTED_LOCATION "${PahoMqttCS_LIBRARY}" 19 | INTERFACE_INCLUDE_DIRECTORIES "${PahoMqttCS_INCLUDE_DIR}" 20 | ) 21 | endif() 22 | 23 | mark_as_advanced(PahoMqttCS_INCLUDE_DIR PahoMqttCS_LIBRARY) 24 | -------------------------------------------------------------------------------- /libs/MqttClientService/cmake/MqttClientConfig.in.cmake: -------------------------------------------------------------------------------- 1 | # Copyright PHOENIX CONTACT Deutschland GmbH 2 | # 3 | # CMake configure file for @PROJECT_NAME@ library 4 | 5 | @PACKAGE_INIT@ 6 | 7 | include(CMakeFindDependencyMacro) 8 | 9 | include("${CMAKE_CURRENT_LIST_DIR}/@TargetsExportName@.cmake") 10 | check_required_components("@PROJECT_NAME@") 11 | -------------------------------------------------------------------------------- /libs/MqttClientService/intermediate/config/MqttClient.acf.config: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /libs/MqttClientService/src/Client.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Phoenix Contact GmbH & Co. KG. All rights reserved. 3 | // Licensed under the MIT. See LICENSE file in the project root for full license information. 4 | // SPDX-License-Identifier: MIT 5 | // 6 | #pragma once 7 | #include 8 | #include "mqtt/client.h" 9 | 10 | namespace PxceTcs { namespace Mqtt 11 | { 12 | 13 | class Client 14 | { 15 | public: // typedefs 16 | typedef std::uint16_t client_id_t; 17 | 18 | public: // construction/destruction 19 | Client(); 20 | virtual ~Client() = default; 21 | 22 | public: // operations 23 | void Connect(Client::client_id_t clientId); 24 | void Connect(Client::client_id_t clientId, mqtt::connect_options opts); 25 | client_id_t CreateClient(const std::string serverURI, const std::string clientId); 26 | void DestroyClient(Client::client_id_t clientId); 27 | void Disconnect(client_id_t client_id); 28 | void Disconnect(client_id_t client_id, int timeoutMS); 29 | int GetTimeout(client_id_t client_id); 30 | bool IsConnected(Client::client_id_t clientId); 31 | void Publish(client_id_t client_id, mqtt::string_ref top, const void * payload, std::size_t n, int qos, bool retained); 32 | void Reconnect(Client::client_id_t clientId); 33 | void SetTimeout(client_id_t client_id, int timeoutMS); 34 | void Subscribe(Client::client_id_t clientId, const std::string & topicFilter); 35 | bool TryConsumeMessage(Client::client_id_t clientId, mqtt::const_message_ptr * msg); 36 | void UnSubscribe(Client::client_id_t clientId, const std::string & topicFilter); 37 | 38 | private: // methods 39 | 40 | private: // fields 41 | std::unordered_map clients; // The container for MQTT client objects 42 | }; 43 | 44 | }} // end of namespace PxceTcs.Mqtt 45 | -------------------------------------------------------------------------------- /libs/MqttClientService/src/MqttClientComponent.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Phoenix Contact GmbH & Co. KG. All rights reserved. 3 | // Licensed under the MIT. See LICENSE file in the project root for full license information. 4 | // SPDX-License-Identifier: MIT 5 | // 6 | #include "MqttClientComponent.hpp" 7 | #include "Arp/System/Rsc/ServiceManager.hpp" 8 | #include "services/IMqttClientService.hpp" 9 | #include "services/MqttClientServiceFactory.hpp" 10 | #include "MqttClientManager.hpp" 11 | #include "MQTTClient.h" // Needed only for initialisation. 12 | 13 | namespace PxceTcs { namespace MqttClient 14 | { 15 | 16 | void MqttClientComponent::Initialize() 17 | { 18 | // subscribe events from the event system (Nm) here 19 | 20 | // Initialise the underlying MQTT libraries. 21 | // Without this, other SSL/TLS connections (e.g. Proficloud) will not work correctly. 22 | MQTTAsync_init_options inits = MQTTAsync_init_options_initializer; 23 | MQTTAsync_global_init(&inits); 24 | 25 | MQTTClient_init_options initsClient = MQTTClient_init_options_initializer; 26 | MQTTClient_global_init(&initsClient); 27 | 28 | // Create the MQTT Client Manager singleton 29 | MqttClientManager::CreateInstance(); 30 | } 31 | 32 | void MqttClientComponent::PublishServices() 33 | { 34 | this->log.Info("Publishing MQTT Client service"); 35 | // publish the services of this component here 36 | using namespace Arp::System::Rsc; 37 | using namespace MqttClient::Services; 38 | ServiceManager::PublishService("PxceTcs"); 39 | this->log.Info("Published MQTT Client service"); 40 | } 41 | 42 | void MqttClientComponent::Dispose() 43 | { 44 | // implement this inverse to SetupSettings(), LoadSettings() and Initialize() 45 | 46 | MqttClientManager::DisposeInstance(); 47 | } 48 | 49 | }} // end of namespace PxceTcs.MqttClient 50 | -------------------------------------------------------------------------------- /libs/MqttClientService/src/MqttClientComponent.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Phoenix Contact GmbH & Co. KG. All rights reserved. 3 | // Licensed under the MIT. See LICENSE file in the project root for full license information. 4 | // SPDX-License-Identifier: MIT 5 | // 6 | #pragma once 7 | #include "Arp/System/Core/Arp.h" 8 | #include "Arp/System/Acf/ComponentBase.hpp" 9 | #include "Arp/System/Acf/IApplication.hpp" 10 | #include "MqttClientLibrary.hpp" 11 | #include "Arp/System/Commons/Logging.h" 12 | 13 | namespace PxceTcs { namespace MqttClient 14 | { 15 | 16 | using namespace Arp; 17 | using namespace Arp::System::Acf; 18 | 19 | //#component 20 | class MqttClientComponent 21 | : public ComponentBase 22 | , private Loggable 23 | { 24 | public: // typedefs 25 | 26 | public: // construction/destruction 27 | MqttClientComponent(IApplication& application, const String& name); 28 | virtual ~MqttClientComponent() = default; 29 | 30 | public: // IComponent operations 31 | void Initialize() override; 32 | void PublishServices() override; 33 | void Dispose() override; 34 | 35 | private: // methods 36 | MqttClientComponent(const MqttClientComponent& arg) = delete; 37 | MqttClientComponent& operator= (const MqttClientComponent& arg) = delete; 38 | 39 | public: // static factory operations 40 | static IComponent::Ptr Create(Arp::System::Acf::IApplication& application, const String& name); 41 | 42 | private: // fields 43 | 44 | public: /* Ports 45 | ===== 46 | Ports are defined in the following way: 47 | //#port 48 | //#attributes(Input|Retain) 49 | //#name(NameOfPort) 50 | bool portField; 51 | 52 | The attributes comment define the port attributes and is optional. 53 | The name comment defines the name of the port and is optional. Default is the name of the field 54 | */ 55 | }; 56 | 57 | /////////////////////////////////////////////////////////////////////////////// 58 | // inline methods of class MqttClientComponent 59 | inline MqttClientComponent::MqttClientComponent(IApplication& application, const String& name) 60 | : ComponentBase(application, ::PxceTcs::MqttClient::MqttClientLibrary::GetInstance(), name, ComponentCategory::Custom, 100001, true) 61 | { 62 | } 63 | 64 | inline IComponent::Ptr MqttClientComponent::Create(Arp::System::Acf::IApplication& application, const String& name) 65 | { 66 | return IComponent::Ptr(new MqttClientComponent(application, name)); 67 | } 68 | 69 | }} // end of namespace PxceTcs.MqttClient 70 | -------------------------------------------------------------------------------- /libs/MqttClientService/src/MqttClientLibrary.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Phoenix Contact GmbH & Co. KG. All rights reserved. 3 | // Licensed under the MIT. See LICENSE file in the project root for full license information. 4 | // SPDX-License-Identifier: MIT 5 | // 6 | #include "MqttClientLibrary.hpp" 7 | #include "Arp/System/Core/CommonTypeName.hxx" 8 | #include "MqttClientComponent.hpp" 9 | 10 | namespace PxceTcs { namespace MqttClient 11 | { 12 | 13 | MqttClientLibrary::MqttClientLibrary(AppDomain& appDomain) 14 | : LibraryBase(appDomain, ARP_VERSION_CURRENT) 15 | { 16 | this->componentFactory.AddFactoryMethod(CommonTypeName<::PxceTcs::MqttClient::MqttClientComponent>(), &::PxceTcs::MqttClient::MqttClientComponent::Create); 17 | } 18 | 19 | void MqttClientLibrary::Main(AppDomain& appDomain) 20 | { 21 | SingletonBase::CreateInstance(appDomain); 22 | } 23 | 24 | extern "C" ARP_CXX_SYMBOL_EXPORT ILibrary& ArpDynamicLibraryMain(AppDomain& appDomain) 25 | { 26 | MqttClientLibrary::Main(appDomain); 27 | return MqttClientLibrary::GetInstance(); 28 | } 29 | 30 | }} // end of namespace PxceTcs.MqttClient 31 | -------------------------------------------------------------------------------- /libs/MqttClientService/src/MqttClientLibrary.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Phoenix Contact GmbH & Co. KG. All rights reserved. 3 | // Licensed under the MIT. See LICENSE file in the project root for full license information. 4 | // SPDX-License-Identifier: MIT 5 | // 6 | #pragma once 7 | #include "Arp/System/Core/Arp.h" 8 | #include "Arp/System/Core/AppDomain.hpp" 9 | #include "Arp/System/Core/Singleton.hxx" 10 | #include "Arp/System/Core/Library.h" 11 | #include "Arp/System/Acf/LibraryBase.hpp" 12 | 13 | namespace PxceTcs { namespace MqttClient 14 | { 15 | 16 | using namespace Arp::System::Acf; 17 | 18 | class MqttClientLibrary : public LibraryBase, public Arp::Singleton 19 | { 20 | public: // typedefs 21 | typedef Singleton SingletonBase; 22 | 23 | public: // construction/destruction 24 | MqttClientLibrary(Arp::AppDomain& appDomain); 25 | virtual ~MqttClientLibrary() = default; 26 | 27 | public: // static operations (called through reflection) 28 | static void Main(Arp::AppDomain& appDomain); 29 | 30 | private: // deleted methods 31 | MqttClientLibrary(const MqttClientLibrary& arg) = delete; 32 | MqttClientLibrary& operator= (const MqttClientLibrary& arg) = delete; 33 | }; 34 | 35 | extern "C" ARP_CXX_SYMBOL_EXPORT ILibrary& ArpDynamicLibraryMain(Arp::AppDomain& appDomain); 36 | 37 | /////////////////////////////////////////////////////////////////////////////// 38 | // inline methods of class MqttClientLibrary 39 | 40 | }} // end of namespace PxceTcs.MqttClient 41 | -------------------------------------------------------------------------------- /libs/MqttClientService/src/MqttClientManager.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Phoenix Contact GmbH & Co. KG. All rights reserved. 3 | // Licensed under the MIT. See LICENSE file in the project root for full license information. 4 | // SPDX-License-Identifier: MIT 5 | // 6 | #pragma once 7 | #include "Arp/System/Core/Arp.h" 8 | #include "Arp/System/Core/Singleton.hxx" 9 | #include "Arp/System/Commons/Logging.h" 10 | #include "Arp/System/Rsc/Services/RscString.hxx" 11 | #include "Arp/System/Rsc/Services/RscVariant.hxx" 12 | #include "services/Message.hpp" 13 | #include "services/ConnectOptions.hpp" 14 | #include "Client.hpp" 15 | 16 | namespace PxceTcs { namespace MqttClient 17 | { 18 | 19 | using namespace Arp; 20 | using namespace Arp::System::Rsc::Services; 21 | using namespace Services; 22 | 23 | class MqttClientManager : public Singleton 24 | , private Loggable 25 | { 26 | public: // typedefs 27 | 28 | public: // construction/destruction 29 | /// Constructs an instance. 30 | MqttClientManager(void) = default; 31 | /// Copy constructor. 32 | MqttClientManager(const MqttClientManager& arg) = default; 33 | /// Assignment operator. 34 | MqttClientManager& operator=(const MqttClientManager& arg) = default; 35 | /// Destructs this instance and frees all resources. 36 | ~MqttClientManager(void) = default; 37 | 38 | public: // operators 39 | 40 | public: // static operations 41 | 42 | public: // setter/getter operations 43 | 44 | public: // operations 45 | // int32 Connect(int32 clientId); 46 | int32 Connect(int32 clientId, const ConnectOptions& opts); 47 | int32 CreateClient(const RscString<512>& serverURI, const RscString<512>& clientId); 48 | int32 DestroyClient(int32 clientId); 49 | // int32 Disconnect(int32 clientId)override; 50 | int32 Disconnect(int32 clientId, int32 timeoutMS); 51 | int32 GetTimeout(int32 clientId); 52 | boolean IsConnected(int32 clientId); 53 | int32 Publish(int32 clientId, const RscString<512>& topic, RscVariant<512> payload, uint32 length, int32 qos, boolean retained); 54 | int32 Reconnect(int32 clientId); 55 | int32 SetTimeout(int32 clientId, int32 timeoutMS); 56 | int32 Subscribe(int32 clientId, const RscString<512>& topicFilter); 57 | int32 TryConsumeMessage(int32 clientId, Message& msg); 58 | int32 Unsubscribe(int32 clientId, const RscString<512>& topicFilter); 59 | 60 | protected: // operations 61 | 62 | private: // static methods 63 | 64 | private: // methods 65 | void HandleException(); 66 | 67 | private: // fields 68 | std::unique_ptr client = std::make_unique(); 69 | 70 | private: // static fields 71 | 72 | }; 73 | 74 | /////////////////////////////////////////////////////////////////////////////// 75 | // inline methods of class MqttClientManager 76 | 77 | }} // end of namespace PxceTcs.MqttClient 78 | -------------------------------------------------------------------------------- /libs/MqttClientService/src/services/Message.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Phoenix Contact GmbH & Co. KG. All rights reserved. 3 | // Licensed under the MIT. See LICENSE file in the project root for full license information. 4 | // SPDX-License-Identifier: MIT 5 | // 6 | #pragma once 7 | #include "Arp/System/Core/Arp.h" 8 | #include "Arp/System/Rsc/Services/IRscSerializable.hpp" 9 | #include "Arp/System/Rsc/Services/RscReader.hpp" 10 | #include "Arp/System/Rsc/Services/RscString.hxx" 11 | #include "Arp/System/Rsc/Services/RscVariant.hxx" 12 | #include "Arp/System/Rsc/Services/RscWriter.hpp" 13 | 14 | // DO NOT MODIFY THIS FILE, THIS FILE IS AUTOGENERATED 15 | 16 | namespace PxceTcs { namespace MqttClient { namespace Services 17 | { 18 | 19 | using namespace Arp; 20 | using namespace Arp::System::Rsc::Services; 21 | 22 | /// 23 | /// An MQTT message holds everything required for an MQTT PUBLISH message. 24 | /// This holds the message payload, topic string, and all the additional meta-data for an MQTT message. 25 | /// 26 | struct Message : public IRscSerializable 27 | { 28 | /// 29 | /// The message topic. 30 | /// 31 | RscString<512> topic; 32 | 33 | /// 34 | /// The message payload, truncated to 512 bytes if necessary. 35 | /// 36 | RscVariant<512> payload; 37 | 38 | /// 39 | /// The number of bytes in the payload. 40 | /// 41 | int32 len = 0; 42 | 43 | /// 44 | /// The quality of service for the message. 45 | /// 46 | int32 qos = 0; 47 | 48 | /// 49 | /// Whether this message might be a duplicate of one which has already been received. 50 | /// 51 | boolean duplicate = false; 52 | 53 | /// 54 | /// Whether the message should be retained by the broker. 55 | /// 56 | boolean retained = false; 57 | 58 | void Serialize(RscWriter& writer)const override 59 | { 60 | writer.Write(this->topic); 61 | writer.Write(this->payload); 62 | writer.Write(this->len); 63 | writer.Write(this->qos); 64 | writer.Write(this->duplicate); 65 | writer.Write(this->retained); 66 | } 67 | 68 | void Deserialize(RscReader& reader)override 69 | { 70 | reader.Read(this->topic); 71 | reader.Read(this->payload); 72 | reader.Read(this->len); 73 | reader.Read(this->qos); 74 | reader.Read(this->duplicate); 75 | reader.Read(this->retained); 76 | } 77 | 78 | static size_t GetFieldCount(void) 79 | { 80 | return 6; 81 | } 82 | }; 83 | 84 | }}} // end of namespace PxceTcs::MqttClient::Services 85 | -------------------------------------------------------------------------------- /libs/MqttClientService/src/services/MqttClientServiceFactory.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Phoenix Contact GmbH & Co. KG. All rights reserved. 3 | // Licensed under the MIT. See LICENSE file in the project root for full license information. 4 | // SPDX-License-Identifier: MIT 5 | // 6 | #include "MqttClientServiceFactory.hpp" 7 | #include "MqttClientServiceImpl.hpp" 8 | #include "MqttClientServiceStub.hpp" 9 | #include "MqttClientServiceSecurityStub.hpp" 10 | 11 | // DO NOT MODIFY THIS FILE, THIS FILE IS AUTOGENERATED BY IMqttClientService.cs 12 | 13 | namespace PxceTcs { namespace MqttClient { namespace Services 14 | { 15 | 16 | // initializing of static fields 17 | MqttClientServiceFactory MqttClientServiceFactory::instance; 18 | 19 | MqttClientServiceFactory::MqttClientServiceFactory(void) 20 | :RscServiceFactoryBase(false, "Pxce") 21 | { 22 | } 23 | 24 | MqttClientServiceFactory& MqttClientServiceFactory::GetInstance(void) 25 | { 26 | return instance; 27 | } 28 | 29 | IRscService* MqttClientServiceFactory::CreateServiceImpl(const char* providerName, IRscAuthorizator* pAuthorizator) 30 | { 31 | if(this->isSecure) 32 | { 33 | return new MqttClientServiceSecurityStub(providerName, pAuthorizator); 34 | } 35 | else 36 | { 37 | return new MqttClientServiceImpl(); 38 | } 39 | } 40 | 41 | IRscServiceStub* MqttClientServiceFactory::CreateServiceStub(const char* providerName, IRscAuthorizator* pAuthorizator) 42 | { 43 | MqttClientServiceImpl* pImpl = nullptr; 44 | if(isSecure) 45 | { 46 | pImpl = new MqttClientServiceSecurityStub(providerName, pAuthorizator); 47 | } 48 | else 49 | { 50 | pImpl = new MqttClientServiceImpl(); 51 | } 52 | 53 | return new MqttClientServiceStub(pImpl); 54 | } 55 | 56 | }}} // end of namespace PxceTcs::MqttClient::Services 57 | -------------------------------------------------------------------------------- /libs/MqttClientService/src/services/MqttClientServiceFactory.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Phoenix Contact GmbH & Co. KG. All rights reserved. 3 | // Licensed under the MIT. See LICENSE file in the project root for full license information. 4 | // SPDX-License-Identifier: MIT 5 | // 6 | #pragma once 7 | #include "Arp/System/Rsc/Services/RscServiceFactoryBase.hpp" 8 | #include "Arp/System/Rsc/Services/IRscServiceStub.hpp" 9 | 10 | // DO NOT MODIFY THIS FILE, THIS FILE IS AUTOGENERATED BY IMqttClientService.cs 11 | 12 | namespace PxceTcs { namespace MqttClient { namespace Services 13 | { 14 | 15 | using namespace Arp::System::Rsc::Services; 16 | 17 | class MqttClientServiceFactory : public RscServiceFactoryBase 18 | { 19 | public: // typedefs 20 | 21 | public: // construction/destruction 22 | /// Constructs an instance. 23 | MqttClientServiceFactory(void); 24 | /// Destructs this instance and frees all resouces. 25 | virtual ~MqttClientServiceFactory(void) = default; 26 | 27 | public: // static singleton operation 28 | ARP_CXX_SYMBOL_EXPORT static MqttClientServiceFactory& GetInstance(void); 29 | 30 | public: // IServiceFactory operations 31 | IRscService* CreateServiceImpl(const char* providerName, IRscAuthorizator* pAuthorizator)override; 32 | IRscServiceStub* CreateServiceStub(const char* providerName, IRscAuthorizator* pAuthorizator)override; 33 | 34 | private: // static fields 35 | static MqttClientServiceFactory instance; 36 | }; 37 | 38 | /////////////////////////////////////////////////////////////////////////////// 39 | // inline methods of class MqttClientServiceFactory 40 | 41 | }}} // end of namespace PxceTcs::MqttClient::Services 42 | 43 | -------------------------------------------------------------------------------- /libs/MqttClientService/src/services/MqttClientServiceImpl.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Phoenix Contact GmbH & Co. KG. All rights reserved. 3 | // Licensed under the MIT. See LICENSE file in the project root for full license information. 4 | // SPDX-License-Identifier: MIT 5 | // 6 | #pragma once 7 | #include "IMqttClientService.hpp" 8 | 9 | namespace PxceTcs { namespace MqttClient { namespace Services 10 | { 11 | 12 | class MqttClientServiceImpl : public IMqttClientService 13 | { 14 | public: // construction/destruction 15 | /// Constructs an instance. 16 | MqttClientServiceImpl(void); 17 | /// Destructs this instance and frees all resouces. 18 | virtual ~MqttClientServiceImpl(void); 19 | 20 | public: // IMqttClientService operations 21 | int32 Connect(int32 clientId, const ConnectOptions& opts)override; 22 | int32 CreateClient(const RscString<512>& serverURI, const RscString<512>& clientId)override; 23 | int32 DestroyClient(int32 clientId)override; 24 | int32 Disconnect(int32 clientId, int32 timeoutMS)override; 25 | int32 GetTimeout(int32 clientId)override; 26 | boolean IsConnected(int32 clientId)override; 27 | int32 Publish(int32 clientId, const RscString<512>& topic, RscVariant<512> payload, uint32 length, int32 qos, boolean retained)override; 28 | int32 Reconnect(int32 clientId)override; 29 | int32 SetTimeout(int32 clientId, int32 timeoutMS)override; 30 | int32 Subscribe(int32 clientId, const RscString<512>& topicFilter)override; 31 | int32 TryConsumeMessage(int32 clientId, Message& msg)override; 32 | int32 Unsubscribe(int32 clientId, const RscString<512>& topicFilter)override; 33 | 34 | private: // deleted methods (for non-copyable classes) 35 | MqttClientServiceImpl(const MqttClientServiceImpl& arg) = delete; 36 | MqttClientServiceImpl& operator=(const MqttClientServiceImpl& arg) = delete; 37 | }; 38 | 39 | /////////////////////////////////////////////////////////////////////////////// 40 | // inline methods of class MqttClientServiceImpl 41 | inline MqttClientServiceImpl::MqttClientServiceImpl(void) 42 | { 43 | } 44 | 45 | inline MqttClientServiceImpl::~MqttClientServiceImpl(void) 46 | { 47 | } 48 | 49 | }}} // end of namespace PxceTcs::MqttClient::Services 50 | -------------------------------------------------------------------------------- /libs/MqttClientService/src/services/MqttClientServiceProxy.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // Copyright PHOENIX CONTACT Electronics GmbH 4 | // 5 | /////////////////////////////////////////////////////////////////////////////// 6 | #pragma once 7 | #include "Arp/System/Rsc/Services/RscServiceProxyBase.hxx" 8 | #include "IMqttClientService.hpp" 9 | 10 | // DO NOT MODIFY THIS FILE, THIS FILE IS AUTOGENERATED BY IMqttClientService.cs 11 | 12 | namespace PxceTcs { namespace MqttClient { namespace Services 13 | { 14 | 15 | using namespace Arp; 16 | 17 | class MqttClientServiceProxy : public RscServiceProxyBase 18 | { 19 | public: // construction/destruction 20 | /// Constructs an instance. 21 | MqttClientServiceProxy(RscHandle providerHandle, RscHandle serviceHandle, RscClient& rscClient); 22 | /// Destructs this instance and frees all resouces. 23 | virtual ~MqttClientServiceProxy(void); 24 | 25 | public: // IMqttClientService operations 26 | int32 Connect(int32 clientId, const ConnectOptions& opts)override; 27 | int32 CreateClient(const RscString<512>& serverURI, const RscString<512>& clientId)override; 28 | int32 DestroyClient(int32 clientId)override; 29 | int32 Disconnect(int32 clientId, int32 timeoutMS)override; 30 | int32 GetTimeout(int32 clientId)override; 31 | boolean IsConnected(int32 clientId)override; 32 | int32 Publish(int32 clientId, const RscString<512>& topic, RscVariant<512> payload, uint32 length, int32 qos, boolean retained)override; 33 | int32 Reconnect(int32 clientId)override; 34 | int32 SetTimeout(int32 clientId, int32 timeoutMS)override; 35 | int32 Subscribe(int32 clientId, const RscString<512>& topicFilter)override; 36 | int32 TryConsumeMessage(int32 clientId, Message& msg)override; 37 | int32 Unsubscribe(int32 clientId, const RscString<512>& topicFilter)override; 38 | 39 | private: // deleted methods (for non-copyable classes) 40 | MqttClientServiceProxy(const MqttClientServiceProxy& arg) = delete; 41 | MqttClientServiceProxy& operator=(const MqttClientServiceProxy& arg) = delete; 42 | }; 43 | 44 | /////////////////////////////////////////////////////////////////////////////// 45 | // inline methods of class MqttClientServiceProxy 46 | inline MqttClientServiceProxy::~MqttClientServiceProxy(void) 47 | { 48 | } 49 | 50 | }}} // end of namespace PxceTcs::MqttClient::Services 51 | -------------------------------------------------------------------------------- /libs/MqttClientService/src/services/MqttClientServiceProxyFactory.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Phoenix Contact GmbH & Co. KG. All rights reserved. 3 | // Licensed under the MIT. See LICENSE file in the project root for full license information. 4 | // SPDX-License-Identifier: MIT 5 | // 6 | #include "MqttClientServiceProxyFactory.hpp" 7 | #include "MqttClientServiceProxy.hpp" 8 | 9 | // DO NOT MODIFY THIS FILE, THIS FILE IS AUTOGENERATED BY IMqttClientService.cs 10 | 11 | namespace PxceTcs { namespace MqttClient { namespace Services 12 | { 13 | 14 | // initializing of static fields 15 | MqttClientServiceProxyFactory MqttClientServiceProxyFactory::instance; 16 | 17 | MqttClientServiceProxyFactory& MqttClientServiceProxyFactory::GetInstance(void) 18 | { 19 | return instance; 20 | } 21 | 22 | IRscServiceProxy* MqttClientServiceProxyFactory::CreateServiceProxy(RscHandle providerHandle, RscHandle serviceHandle, RscClient& client) 23 | { 24 | return new MqttClientServiceProxy(providerHandle, serviceHandle, client); 25 | } 26 | 27 | }}} // end of namespace PxceTcs::MqttClient::Services 28 | -------------------------------------------------------------------------------- /libs/MqttClientService/src/services/MqttClientServiceProxyFactory.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Phoenix Contact GmbH & Co. KG. All rights reserved. 3 | // Licensed under the MIT. See LICENSE file in the project root for full license information. 4 | // SPDX-License-Identifier: MIT 5 | // 6 | #pragma once 7 | #include "Arp/System/Rsc/Services/RscServiceProxyFactoryBase.hpp" 8 | #include "Arp/System/Rsc/Services/IRscServiceProxy.hpp" 9 | 10 | // DO NOT MODIFY THIS FILE, THIS FILE IS AUTOGENERATED BY IMqttClientService.cs 11 | 12 | namespace PxceTcs { namespace MqttClient { namespace Services 13 | { 14 | 15 | using namespace Arp::System::Rsc::Services; 16 | 17 | class MqttClientServiceProxyFactory : public RscServiceProxyFactoryBase 18 | { 19 | public: // construction/destruction 20 | /// Constructs an instance. 21 | MqttClientServiceProxyFactory(void); 22 | /// Destructs this instance and frees all resouces. 23 | virtual ~MqttClientServiceProxyFactory(void) = default; 24 | 25 | public: // static singleton operation 26 | ARP_CXX_SYMBOL_EXPORT static MqttClientServiceProxyFactory& GetInstance(void); 27 | 28 | public: // IServiceProxyFactory operations 29 | ARP_CXX_SYMBOL_EXPORT IRscServiceProxy* CreateServiceProxy(RscHandle providerHandle, RscHandle serviceHandle, RscClient& client)override; 30 | 31 | private: // static fields 32 | static MqttClientServiceProxyFactory instance; 33 | }; 34 | 35 | /////////////////////////////////////////////////////////////////////////////// 36 | // inline methods of class MqttClientServiceProxyFactory 37 | inline MqttClientServiceProxyFactory::MqttClientServiceProxyFactory() 38 | : Base("PxceTcs.MqttClient.Services.IMqttClientService", "Pxce") 39 | { 40 | } 41 | 42 | }}} // end of namespace PxceTcs::MqttClient::Services 43 | 44 | -------------------------------------------------------------------------------- /libs/MqttClientService/src/services/MqttClientServiceSecurityStub.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // Copyright PHOENIX CONTACT Electronics GmbH 4 | // 5 | /////////////////////////////////////////////////////////////////////////////// 6 | #include "MqttClientServiceSecurityStub.hpp" 7 | 8 | // DO NOT MODIFY THIS FILE, THIS FILE IS AUTOGENERATED BY IMqttClientService.cs 9 | 10 | namespace PxceTcs { namespace MqttClient { namespace Services 11 | { 12 | 13 | int32 MqttClientServiceSecurityStub::Connect(int32 clientId, const ConnectOptions& opts) 14 | { 15 | this->AuthorizeServiceInvocation("Connect"); 16 | return ServiceImpl::Connect(clientId, opts); 17 | } 18 | 19 | int32 MqttClientServiceSecurityStub::CreateClient(const RscString<512>& serverURI, const RscString<512>& clientId) 20 | { 21 | this->AuthorizeServiceInvocation("CreateClient"); 22 | return ServiceImpl::CreateClient(serverURI, clientId); 23 | } 24 | 25 | int32 MqttClientServiceSecurityStub::DestroyClient(int32 clientId) 26 | { 27 | this->AuthorizeServiceInvocation("DestroyClient"); 28 | return ServiceImpl::DestroyClient(clientId); 29 | } 30 | 31 | int32 MqttClientServiceSecurityStub::Disconnect(int32 clientId, int32 timeoutMS) 32 | { 33 | this->AuthorizeServiceInvocation("Disconnect"); 34 | return ServiceImpl::Disconnect(clientId, timeoutMS); 35 | } 36 | 37 | int32 MqttClientServiceSecurityStub::GetTimeout(int32 clientId) 38 | { 39 | this->AuthorizeServiceInvocation("GetTimeout"); 40 | return ServiceImpl::GetTimeout(clientId); 41 | } 42 | 43 | boolean MqttClientServiceSecurityStub::IsConnected(int32 clientId) 44 | { 45 | this->AuthorizeServiceInvocation("IsConnected"); 46 | return ServiceImpl::IsConnected(clientId); 47 | } 48 | 49 | int32 MqttClientServiceSecurityStub::Publish(int32 clientId, const RscString<512>& topic, RscVariant<512> payload, uint32 length, int32 qos, boolean retained) 50 | { 51 | this->AuthorizeServiceInvocation("Publish"); 52 | return ServiceImpl::Publish(clientId, topic, payload, length, qos, retained); 53 | } 54 | 55 | int32 MqttClientServiceSecurityStub::Reconnect(int32 clientId) 56 | { 57 | this->AuthorizeServiceInvocation("Reconnect"); 58 | return ServiceImpl::Reconnect(clientId); 59 | } 60 | 61 | int32 MqttClientServiceSecurityStub::SetTimeout(int32 clientId, int32 timeoutMS) 62 | { 63 | this->AuthorizeServiceInvocation("SetTimeout"); 64 | return ServiceImpl::SetTimeout(clientId, timeoutMS); 65 | } 66 | 67 | int32 MqttClientServiceSecurityStub::Subscribe(int32 clientId, const RscString<512>& topicFilter) 68 | { 69 | this->AuthorizeServiceInvocation("Subscribe"); 70 | return ServiceImpl::Subscribe(clientId, topicFilter); 71 | } 72 | 73 | int32 MqttClientServiceSecurityStub::TryConsumeMessage(int32 clientId, Message& msg) 74 | { 75 | this->AuthorizeServiceInvocation("TryConsumeMessage"); 76 | return ServiceImpl::TryConsumeMessage(clientId, msg); 77 | } 78 | 79 | int32 MqttClientServiceSecurityStub::Unsubscribe(int32 clientId, const RscString<512>& topicFilter) 80 | { 81 | this->AuthorizeServiceInvocation("Unsubscribe"); 82 | return ServiceImpl::Unsubscribe(clientId, topicFilter); 83 | } 84 | 85 | 86 | }}} // end of namespace PxceTcs::MqttClient::Services 87 | -------------------------------------------------------------------------------- /libs/MqttClientService/src/services/MqttClientServiceSecurityStub.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // Copyright PHOENIX CONTACT Electronics GmbH 4 | // 5 | /////////////////////////////////////////////////////////////////////////////// 6 | #pragma once 7 | #include "Arp/System/Rsc/Services/RscServiceProxyBase.hxx" 8 | #include "Arp/System/Rsc/Services/RscServiceSecurityStubBase.hxx" 9 | #include "MqttClientServiceImpl.hpp" 10 | 11 | // DO NOT MODIFY THIS FILE, THIS FILE IS AUTOGENERATED BY IMqttClientService.cs 12 | 13 | namespace PxceTcs { namespace MqttClient { namespace Services 14 | { 15 | 16 | class MqttClientServiceSecurityStub : public RscServiceSecurityStubBase 17 | { 18 | public: // construction/destruction 19 | /// Constructs an instance. 20 | MqttClientServiceSecurityStub(const char* providerName, IRscAuthorizator* pAuthorizator); 21 | /// Destructs this instance and frees all resouces. 22 | virtual ~MqttClientServiceSecurityStub(void) = default; 23 | 24 | public: // IMqttClientService operations 25 | int32 Connect(int32 clientId, const ConnectOptions& opts)override; 26 | int32 CreateClient(const RscString<512>& serverURI, const RscString<512>& clientId)override; 27 | int32 DestroyClient(int32 clientId)override; 28 | int32 Disconnect(int32 clientId, int32 timeoutMS)override; 29 | int32 GetTimeout(int32 clientId)override; 30 | boolean IsConnected(int32 clientId)override; 31 | int32 Publish(int32 clientId, const RscString<512>& topic, RscVariant<512> payload, uint32 length, int32 qos, boolean retained)override; 32 | int32 Reconnect(int32 clientId)override; 33 | int32 SetTimeout(int32 clientId, int32 timeoutMS)override; 34 | int32 Subscribe(int32 clientId, const RscString<512>& topicFilter)override; 35 | int32 TryConsumeMessage(int32 clientId, Message& msg)override; 36 | int32 Unsubscribe(int32 clientId, const RscString<512>& topicFilter)override; 37 | 38 | private: // fields 39 | MqttClientServiceImpl* pImpl; 40 | 41 | private: // deleted methods (for non-copyable classes) 42 | MqttClientServiceSecurityStub(const MqttClientServiceSecurityStub& arg) = delete; 43 | MqttClientServiceSecurityStub& operator=(const MqttClientServiceSecurityStub& arg) = delete; 44 | }; 45 | 46 | /////////////////////////////////////////////////////////////////////////////// 47 | //inline methods of class MqttClientServiceSecurityStub 48 | inline MqttClientServiceSecurityStub::MqttClientServiceSecurityStub(const char* providerName, IRscAuthorizator* pAuthorizator) 49 | : RscServiceSecurityStubBase(providerName, pAuthorizator) 50 | { 51 | } 52 | 53 | }}} // end of namespace PxceTcs::MqttClient::Services 54 | -------------------------------------------------------------------------------- /libs/MqttClientService/src/services/MqttClientServiceStub.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // Copyright PHOENIX CONTACT Electronics GmbH 4 | // 5 | /////////////////////////////////////////////////////////////////////////////// 6 | #pragma once 7 | #include "Arp/System/Rsc/Services/RscServiceStubBase.hxx" 8 | #include "IMqttClientService.hpp" 9 | 10 | // DO NOT MODIFY THIS FILE, THIS FILE IS AUTOGENERATED BY IMqttClientService.cs 11 | 12 | namespace PxceTcs { namespace MqttClient { namespace Services 13 | { 14 | 15 | using namespace Arp::System::Rsc::Services; 16 | 17 | // forwards 18 | class MqttClientServiceImpl; 19 | 20 | class MqttClientServiceStub : public RscServiceStubBase 21 | { 22 | public: // construction/destruction 23 | /// Constructs an instance. 24 | MqttClientServiceStub(MqttClientServiceImpl* pServiceImpl); 25 | /// Destructs this instance and frees all resouces. 26 | virtual ~MqttClientServiceStub(void); 27 | 28 | public: // IServiceStub operations 29 | void Invoke(int methodHandle, RscServerContext& context)override; 30 | 31 | private: // IMqttClientService operations 32 | void Connect(RscServerContext& context); 33 | void CreateClient(RscServerContext& context); 34 | void DestroyClient(RscServerContext& context); 35 | void Disconnect(RscServerContext& context); 36 | void GetTimeout(RscServerContext& context); 37 | void IsConnected(RscServerContext& context); 38 | void Publish(RscServerContext& context); 39 | void Reconnect(RscServerContext& context); 40 | void SetTimeout(RscServerContext& context); 41 | void Subscribe(RscServerContext& context); 42 | void TryConsumeMessage(RscServerContext& context); 43 | void Unsubscribe(RscServerContext& context); 44 | 45 | private: // deleted methods (for non-copyable classes) 46 | MqttClientServiceStub(const MqttClientServiceStub& arg) = delete; 47 | MqttClientServiceStub& operator=(const MqttClientServiceStub& arg) = delete; 48 | }; 49 | 50 | /////////////////////////////////////////////////////////////////////////////// 51 | // inline methods of class MqttClientServiceStub 52 | inline MqttClientServiceStub::~MqttClientServiceStub(void) 53 | { 54 | } 55 | 56 | }}} // end of namespace PxceTcs::MqttClient::Services 57 | -------------------------------------------------------------------------------- /libs/MqttClientService/src/services/SslOptions.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Phoenix Contact GmbH & Co. KG. All rights reserved. 3 | // Licensed under the MIT. See LICENSE file in the project root for full license information. 4 | // SPDX-License-Identifier: MIT 5 | // 6 | #pragma once 7 | #include "Arp/System/Core/Arp.h" 8 | #include "Arp/System/Rsc/Services/IRscSerializable.hpp" 9 | #include "Arp/System/Rsc/Services/RscReader.hpp" 10 | #include "Arp/System/Rsc/Services/RscString.hxx" 11 | #include "Arp/System/Rsc/Services/RscWriter.hpp" 12 | 13 | // DO NOT MODIFY THIS FILE, THIS FILE IS AUTOGENERATED 14 | 15 | namespace PxceTcs { namespace MqttClient { namespace Services 16 | { 17 | 18 | using namespace Arp; 19 | using namespace Arp::System::Rsc::Services; 20 | 21 | /// 22 | /// Holds the set of SSL options for connection. 23 | /// 24 | struct SslOptions : public IRscSerializable 25 | { 26 | /// 27 | /// The filename containing the public digital certificates trusted by the client. 28 | /// 29 | RscString<512> trustStore; 30 | 31 | /// 32 | /// The filename containing the public certificate chain of the client. 33 | /// 34 | RscString<512> keyStore; 35 | 36 | /// 37 | /// The filename containing the client's private key. 38 | /// 39 | RscString<512> privateKey; 40 | 41 | /// 42 | /// The password to load the client's privateKey (if encrypted). 43 | /// 44 | RscString<512> privateKeyPassword; 45 | 46 | /// 47 | /// The list of cipher suites that the client will present to the server during the SSL handshake. 48 | /// 49 | RscString<512> enabledCipherSuites; 50 | 51 | /// 52 | /// Enable verification of the server certificate. 53 | /// 54 | boolean enableServerCertAuth = false; 55 | 56 | void Serialize(RscWriter& writer)const override 57 | { 58 | writer.Write(this->trustStore); 59 | writer.Write(this->keyStore); 60 | writer.Write(this->privateKey); 61 | writer.Write(this->privateKeyPassword); 62 | writer.Write(this->enabledCipherSuites); 63 | writer.Write(this->enableServerCertAuth); 64 | } 65 | 66 | void Deserialize(RscReader& reader)override 67 | { 68 | reader.Read(this->trustStore); 69 | reader.Read(this->keyStore); 70 | reader.Read(this->privateKey); 71 | reader.Read(this->privateKeyPassword); 72 | reader.Read(this->enabledCipherSuites); 73 | reader.Read(this->enableServerCertAuth); 74 | } 75 | 76 | static size_t GetFieldCount(void) 77 | { 78 | return 6; 79 | } 80 | }; 81 | 82 | }}} // end of namespace PxceTcs::MqttClient::Services 83 | -------------------------------------------------------------------------------- /libs/MqttClientService/src/services/WillOptions.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Phoenix Contact GmbH & Co. KG. All rights reserved. 3 | // Licensed under the MIT. See LICENSE file in the project root for full license information. 4 | // SPDX-License-Identifier: MIT 5 | // 6 | #pragma once 7 | #include "Arp/System/Core/Arp.h" 8 | #include "Arp/System/Rsc/Services/IRscSerializable.hpp" 9 | #include "Arp/System/Rsc/Services/RscReader.hpp" 10 | #include "Arp/System/Rsc/Services/RscString.hxx" 11 | #include "Arp/System/Rsc/Services/RscWriter.hpp" 12 | 13 | // DO NOT MODIFY THIS FILE, THIS FILE IS AUTOGENERATED 14 | 15 | namespace PxceTcs { namespace MqttClient { namespace Services 16 | { 17 | 18 | using namespace Arp; 19 | using namespace Arp::System::Rsc::Services; 20 | 21 | /// 22 | /// Holds the set of options that govern the Last Will and Testament feature. 23 | /// 24 | struct WillOptions : public IRscSerializable 25 | { 26 | /// 27 | /// The LWT message is published to the this topic. 28 | /// 29 | RscString<512> topic; 30 | 31 | /// 32 | /// The message that is published to the Will Topic. 33 | /// 34 | RscString<512> payload; 35 | 36 | /// 37 | /// The message Quality of Service. 38 | /// 39 | int32 qos = 0; 40 | 41 | /// 42 | /// Tell the broker to keep the LWT message after send to subscribers. 43 | /// 44 | boolean retained = false; 45 | 46 | void Serialize(RscWriter& writer)const override 47 | { 48 | writer.Write(this->topic); 49 | writer.Write(this->payload); 50 | writer.Write(this->qos); 51 | writer.Write(this->retained); 52 | } 53 | 54 | void Deserialize(RscReader& reader)override 55 | { 56 | reader.Read(this->topic); 57 | reader.Read(this->payload); 58 | reader.Read(this->qos); 59 | reader.Read(this->retained); 60 | } 61 | 62 | static size_t GetFieldCount(void) 63 | { 64 | return 4; 65 | } 66 | }; 67 | 68 | }}} // end of namespace PxceTcs::MqttClient::Services 69 | -------------------------------------------------------------------------------- /tools/build-all.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #// 3 | #// Copyright (c) Phoenix Contact GmbH & Co. KG. All rights reserved. 4 | #// Licensed under the MIT. See LICENSE file in the project root for full license information. 5 | #// SPDX-License-Identifier: MIT 6 | #// 7 | while getopts t:a:n: option 8 | do 9 | case "${option}" 10 | in 11 | t) TOOLCHAIN=${OPTARG};; 12 | a) ARPVERSION=${OPTARG};; 13 | n) TARGETNAME=${OPTARG};; 14 | esac 15 | done 16 | 17 | 18 | # Get the directory of this script 19 | DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" 20 | 21 | echo "Build Paho Mqtt C" 22 | $DIR/build-paho.mqtt.c.sh -t "${TOOLCHAIN}" -a "${ARPVERSION}" -n "${TARGETNAME}" 23 | 24 | echo "Build Paho Mqtt Cpp" 25 | $DIR/build-paho.mqtt.cpp.sh -t "${TOOLCHAIN}" -a "${ARPVERSION}" -n "${TARGETNAME}" 26 | 27 | echo "Build MqttClient" 28 | $DIR/build-component.sh -t "${TOOLCHAIN}" -a "${ARPVERSION}" -n "${TARGETNAME}" 29 | -------------------------------------------------------------------------------- /tools/build-automatic-all.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #// 3 | #// Copyright (c) Phoenix Contact GmbH & Co. KG. All rights reserved. 4 | #// Licensed under the MIT. See LICENSE file in the project root for full license information. 5 | #// SPDX-License-Identifier: MIT 6 | #// 7 | while getopts h: option 8 | do 9 | case "${option}" 10 | in 11 | h) HARDWARE+=${OPTARG};; 12 | esac 13 | done 14 | # Get the directory of this script 15 | DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" 16 | # Get all available targets 17 | 18 | OLD=$IFS 19 | IFS=$'\n\t' 20 | Targets=($( plcncli get targets | grep -oPe [[:alpha:]]+[[:digit:]]+[[:alpha:]]?[[:punct:]][0-9]+[.][0-9]+.?.?.?.?.?.?.?.?[[:punct:]].?[0-9]+[.][0-9]+[.][0-9]+[.][0-9]+.?.?[[:punct:]])) 21 | echo -e ${Targets[@]} 22 | 23 | # Extract Hardware and Release and Firmware Version 24 | 25 | Hardware=($(echo -e ${Targets[@]} | grep -oPe [[:alpha:]]+[[:digit:]]+[[:alpha:]]?)) 26 | IFS=$OLD 27 | 28 | Release=($(echo -e ${Targets[@]} | grep -oPe [^.,][0-9]+[.][0-9]+[.]?[0-9]?[[:blank:]][L]?[T]?[S]?[[:blank:]]?)) 29 | 30 | IFS=$'\n\t' 31 | Version=($(echo -e ${Targets[@]} | grep -oPe [0-9]+[.][0-9]+[.][0-9]+[.][0-9]+)) 32 | 33 | ARPVERSION=($(echo -e ${Targets[@]} | grep -oPe [^.,][0-9]+[.][0-9]+[.]?[0-9]?[[:blank:]][L]?[T]?[S]?[[:blank:]]?[[:punct:]].?[0-9]+[.][0-9]+[.][0-9]+[.][0-9]+[[:blank:]]?[[:blank:]]?[[:punct:]])) 34 | IFS=$OLD 35 | 36 | echo -e "H:\n${Hardware[@]} \n R:\n ${Release[@]} \n V:\n ${Version[@]} \nA:\n ${ARPVERSION[@]} \n" 37 | 38 | var=${#Hardware[@]} 39 | ## Extract SDK paths and match to Targets 40 | 41 | Toolchains=($(plcncli get sdks | grep -oPe [[:blank:]]?[/][[:alnum:][:blank:][:punct:]]*[[:blank:]]?)) 42 | echo -e "Toolchain: \n ${Toolchains[@]} \n " 43 | 44 | rm -r "${DIR}/../build" 45 | 46 | # Build for each Version of Specified HARDWARE 47 | var=${#Hardware[@]} 48 | for ((i=0; i/dev/null 2>&1 && pwd )" 22 | 23 | 24 | echo CMAKE Configure 25 | cmake --configure -G "Ninja" \ 26 | -DBUILD_TESTING=OFF \ 27 | -DUSE_ARP_DEVICE=ON \ 28 | -DCMAKE_STAGING_PREFIX="${DIR}/../deploy/" \ 29 | -DCMAKE_INSTALL_PREFIX=/usr/local \ 30 | -DCMAKE_PREFIX_PATH="${DIR}/../deploy/${TARGETNAME}_${VERSION}" \ 31 | -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ 32 | "-DARP_TOOLCHAIN_ROOT=${TOOLCHAIN}" \ 33 | "-DARP_DEVICE=${TARGETNAME}" \ 34 | "-DARP_DEVICE_VERSION=${ARPVERSION}" \ 35 | "-DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN}/toolchain.cmake" \ 36 | -DMqttClient_WITH_CPACK=ON \ 37 | -S "${DIR}/../." \ 38 | -B "${DIR}/../build/external/${TARGETNAME}_${VERSION}" 39 | 40 | echo CMAKE build all 41 | cmake --build "${DIR}/../build/external/${TARGETNAME}_${VERSION}" \ 42 | --config Debug \ 43 | --target all -- -j 3 44 | 45 | echo CMAKE build install 46 | cmake --build "${DIR}/../build/external/${TARGETNAME}_${VERSION}" \ 47 | --config Debug --target install -- -j 3 48 | -------------------------------------------------------------------------------- /tools/build-paho.mqtt.c.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #// 3 | #// Copyright (c) Phoenix Contact GmbH & Co. KG. All rights reserved. 4 | #// Licensed under the MIT. See LICENSE file in the project root for full license information. 5 | #// SPDX-License-Identifier: MIT 6 | #// 7 | while getopts t:a:n: option 8 | do 9 | case "${option}" 10 | in 11 | t) TOOLCHAIN=${OPTARG};; 12 | a) ARPVERSION=${OPTARG};; 13 | n) TARGETNAME=${OPTARG};; 14 | esac 15 | done 16 | VERSION=$(echo $ARPVERSION | grep -oP [0-9]+[.][0-9]+[.][0-9]+[.][0-9]+) 17 | echo "Version:${VERSION}" 18 | # Get the directory of this script 19 | DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" 20 | 21 | echo "Clone Paho mqtt C" 22 | mkdir -p ${DIR}/../external 23 | set +e 24 | git clone -q https://github.com/eclipse/paho.mqtt.c.git "${DIR}/../external/paho.mqtt.c" 25 | cd "${DIR}/../external/paho.mqtt.c" 26 | git status || git init 27 | git fetch --tags 28 | git checkout v1.3.0 29 | set -e 30 | 31 | 32 | #cmake 33 | echo CMAKE Configure 34 | cmake \ 35 | -D CMAKE_BUILD_TYPE=Release \ 36 | -D BUILD_TESTING=OFF \ 37 | -D CMAKE_STAGING_PREFIX="${DIR}/../deploy/${TARGETNAME}_${VERSION}" \ 38 | -D CMAKE_INSTALL_PREFIX=/usr/local \ 39 | -D CMAKE_PREFIX_PATH="${DIR}/../deploy/${TARGETNAME}_${VERSION}" \ 40 | -D CMAKE_EXPORT_COMPILE_COMMANDS=ON \ 41 | -D BUILD_SHARED_LIBS=ON \ 42 | -D CMAKE_TOOLCHAIN_FILE="${TOOLCHAIN}/toolchain.cmake" \ 43 | -D ARP_TOOLCHAIN_ROOT="${TOOLCHAIN}" \ 44 | -D ARP_DEVICE="${TARGETNAME}" \ 45 | -D ARP_DEVICE_VERSION="${ARPVERSION}" \ 46 | -D PAHO_WITH_SSL=ON \ 47 | -D PAHO_BUILD_STATIC=FALSE \ 48 | -D PAHO_BUILD_DOCUMENTATION=OFF \ 49 | -D PAHO_BUILD_SAMPLES=OFF \ 50 | -D PAHO_BUILD_DEB_PACKAGE=OFF \ 51 | -D PAHO_ENABLE_TESTING=OFF \ 52 | -S "${DIR}/../external/paho.mqtt.c" \ 53 | -B "${DIR}/../build/external/paho.mqtt.c/${TARGETNAME}_${VERSION}" 54 | 55 | echo "build" 56 | cmake --build "${DIR}/../build/external/paho.mqtt.c/${TARGETNAME}_${VERSION}" 57 | cmake --build "${DIR}/../build/external/paho.mqtt.c/${TARGETNAME}_${VERSION}" --target install 58 | -------------------------------------------------------------------------------- /tools/build-paho.mqtt.cpp.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #// 3 | #// Copyright (c) Phoenix Contact GmbH & Co. KG. All rights reserved. 4 | #// Licensed under the MIT. See LICENSE file in the project root for full license information. 5 | #// SPDX-License-Identifier: MIT 6 | #// 7 | while getopts t:a:n: option 8 | do 9 | case "${option}" 10 | in 11 | t) TOOLCHAIN=${OPTARG};; 12 | a) ARPVERSION=${OPTARG};; 13 | n) TARGETNAME=${OPTARG};; 14 | esac 15 | done 16 | VERSION=$(echo $ARPVERSION | grep -oP [0-9]+[.][0-9]+[.][0-9]+[.][0-9]+) 17 | echo "Version:${VERSION}" 18 | # Get the directory of this script 19 | DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" 20 | 21 | echo "Clone Paho mqtt Cpp" 22 | mkdir -p ${DIR}/../external 23 | set +e 24 | git clone -q https://github.com/eclipse/paho.mqtt.cpp.git ${DIR}/../external/paho.mqtt.cpp 25 | cd ${DIR}/../external/paho.mqtt.cpp 26 | git status 27 | git fetch 28 | git fetch --tags 29 | git checkout v1.0.1 30 | set -e 31 | cd 32 | 33 | echo CMAKE Configure 34 | ## Cmake 35 | cmake \ 36 | -D CMAKE_BUILD_TYPE=Release \ 37 | -D BUILD_TESTING=OFF \ 38 | -D CMAKE_STAGING_PREFIX="${DIR}/../deploy/${TARGETNAME}_${VERSION}" \ 39 | -D CMAKE_INSTALL_PREFIX=/usr/local \ 40 | -D CMAKE_PREFIX_PATH="${DIR}/../deploy/${TARGETNAME}_${VERSION}" \ 41 | -D CMAKE_EXPORT_COMPILE_COMMANDS=ON \ 42 | -D BUILD_SHARED_LIBS=ON \ 43 | -D CMAKE_TOOLCHAIN_FILE="${TOOLCHAIN}/toolchain.cmake" \ 44 | -D ARP_TOOLCHAIN_ROOT="${TOOLCHAIN}" \ 45 | -D ARP_DEVICE="${TARGETNAME}" \ 46 | -D ARP_DEVICE_VERSION="${ARPVERSION}" \ 47 | -D PAHO_WITH_SSL=ON \ 48 | -D PAHO_BUILD_STATIC=FALSE \ 49 | -D PAHO_BUILD_SHARED=ON \ 50 | -D PAHO_BUILD_DOCUMENTATION=OFF \ 51 | -D PAHO_BUILD_SAMPLES=OFF \ 52 | -D PAHO_BUILD_TESTS=OFF \ 53 | -S "${DIR}/../external/paho.mqtt.cpp" \ 54 | -B "${DIR}/../build/external/paho.mqtt.cpp/${TARGETNAME}_${VERSION}" 55 | 56 | cmake --build "${DIR}/../build/external/paho.mqtt.cpp/${TARGETNAME}_${VERSION}" 57 | cmake --build "${DIR}/../build/external/paho.mqtt.cpp/${TARGETNAME}_${VERSION}" --target install 58 | --------------------------------------------------------------------------------