karabo.cpp 3.0.3__tar.gz → 3.0.7__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (453) hide show
  1. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/CMakeLists.txt +0 -1
  2. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/PKG-INFO +2 -2
  3. karabo_cpp-3.0.3/dist/karabo_cpp-3.0.3-cp312-cp312-manylinux_2_28_aarch64.whl → karabo_cpp-3.0.7/dist/karabo_cpp-3.0.7-cp312-cp312-manylinux_2_28_aarch64.whl +0 -0
  4. karabo_cpp-3.0.3/dist/karabo_cpp-3.0.3-cp312-cp312-manylinux_2_28_x86_64.whl → karabo_cpp-3.0.7/dist/karabo_cpp-3.0.7-cp312-cp312-manylinux_2_28_x86_64.whl +0 -0
  5. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/extern/build.sh +6 -6
  6. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/extern/conanfile.txt +2 -2
  7. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/pyproject.toml +3 -3
  8. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/PyUtilAlarmElement.cc +2 -1
  9. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/PyUtilHash.cc +2 -2
  10. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/PyUtilSchemaElement.cc +2 -1
  11. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/PyUtilSchemaElement.hh +27 -26
  12. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/PyUtilSchemaTableElement.cc +2 -1
  13. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/PyUtilStateElement.cc +2 -1
  14. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/PyXmsImageDataElement.cc +2 -1
  15. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/PyXmsSlotElement.cc +2 -1
  16. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/CMakeLists.txt +2 -2
  17. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/core/Device.cc +37 -10
  18. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/core/Device.hh +18 -6
  19. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/core/DeviceClient.cc +9 -15
  20. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/schema/BaseElement.cc +18 -6
  21. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/schema/BaseElement.hh +4 -3
  22. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/schema/CustomNodeElement.hh +3 -2
  23. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/devices/DataLoggerManager.cc +1 -1
  24. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/net/AmqpClient.cc +31 -10
  25. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/schema/Schema_Test.cc +18 -2
  26. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/net/Amqp_Test.cc +15 -4
  27. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/xms/SignalSlotable.cc +5 -16
  28. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/xms/SlotElement.hh +3 -3
  29. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/README.md +0 -0
  30. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/extern/builder_path_replace.py +0 -0
  31. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/extern/conanfile-bootstrap.txt +0 -0
  32. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/extern/conanfile-centos.txt +0 -0
  33. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/extern/conanprofile.karabo +0 -0
  34. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/extern/karabo_deployer.py +0 -0
  35. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/extern/relocate_deps.sh +0 -0
  36. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/extern/requirements-0.txt +0 -0
  37. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/extern/requirements-1.txt +0 -0
  38. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/extern/requirements-pre.txt +0 -0
  39. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/extern/resources/daemontools/CMakeLists.txt +0 -0
  40. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/extern/resources/daemontools/conanfile.py +0 -0
  41. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/extern/resources/nss/conandata.yml +0 -0
  42. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/extern/resources/nss/conanfile.py +0 -0
  43. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/mod_extern_conanfile.txt +0 -0
  44. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/prepare_extern.py +0 -0
  45. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/pyproject.toml.template +0 -0
  46. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/python/src/karabind/__init__.py +0 -0
  47. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/python/src/shims/__init__.py +0 -0
  48. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/python/src/shims/entrypoints.py +0 -0
  49. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/set_lsb_release_info.sh +0 -0
  50. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/CMakeLists.txt +0 -0
  51. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/brokerMessageLogger/CMakeLists.txt +0 -0
  52. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/brokerMessageLogger/brokerMessageLogger.cc +0 -0
  53. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/cmake/code-coverage.cmake +0 -0
  54. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/cmake/cxx-options.cmake +0 -0
  55. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/cmake/import_karabo_lib.cmake +0 -0
  56. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/cmake/karabo-lib-target-name.cmake +0 -0
  57. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/deviceServer/CMakeLists.txt +0 -0
  58. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/deviceServer/deviceServer.cc +0 -0
  59. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/CMakeLists.txt +0 -0
  60. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/ConfigurationTestClasses.cc +0 -0
  61. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/ConfigurationTestClasses.hh +0 -0
  62. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/FromNumpy.cc +0 -0
  63. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/FromNumpy.hh +0 -0
  64. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/HandlerWrap.cc +0 -0
  65. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/HandlerWrap.hh +0 -0
  66. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/PyCoreDeviceClient.cc +0 -0
  67. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/PyIoFileTools.cc +0 -0
  68. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/PyLogLogger.cc +0 -0
  69. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/PyNetConnectionChannel.cc +0 -0
  70. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/PyNetEventLoop.cc +0 -0
  71. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/PyTypes.hh +0 -0
  72. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/PyUtilClassInfo.cc +0 -0
  73. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/PyUtilDateTimeString.cc +0 -0
  74. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/PyUtilDims.cc +0 -0
  75. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/PyUtilEpochstamp.cc +0 -0
  76. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/PyUtilException.cc +0 -0
  77. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/PyUtilHashAttributes.cc +0 -0
  78. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/PyUtilHashNode.cc +0 -0
  79. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/PyUtilJsonToHashParser.cc +0 -0
  80. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/PyUtilNDArray.cc +0 -0
  81. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/PyUtilSchema.cc +0 -0
  82. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/PyUtilSchemaNodeElement.cc +0 -0
  83. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/PyUtilSchemaOverwriteElement.cc +0 -0
  84. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/PyUtilSchemaValidator.cc +0 -0
  85. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/PyUtilTimeDuration.cc +0 -0
  86. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/PyUtilTimeId.cc +0 -0
  87. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/PyUtilTimestamp.cc +0 -0
  88. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/PyUtilTypesReferenceType.cc +0 -0
  89. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/PyXmsInputOutputChannel.cc +0 -0
  90. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/PyXmsSignalSlotable.cc +0 -0
  91. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/PythonFactoryMacros.hh +0 -0
  92. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/ToNumpy.hh +0 -0
  93. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/Wrapper.cc +0 -0
  94. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/Wrapper.hh +0 -0
  95. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/karabind.cc +0 -0
  96. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/karabind_test.cc +0 -0
  97. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/stubs/__init__.pyi +0 -0
  98. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabind/stubs/py.typed +0 -0
  99. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/cmake/activateKarabo.in +0 -0
  100. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/cmake/karaboPackageDependencies-GNU-Linux-x86.pc.in +0 -0
  101. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/core/DeviceClient.hh +0 -0
  102. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/core/DeviceServer.cc +0 -0
  103. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/core/DeviceServer.hh +0 -0
  104. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/core/InstanceChangeThrottler.cc +0 -0
  105. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/core/InstanceChangeThrottler.hh +0 -0
  106. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/core/Runner.cc +0 -0
  107. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/core/Runner.hh +0 -0
  108. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/core.hpp +0 -0
  109. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/io/AbstractInput.hh +0 -0
  110. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/io/BinaryFileInput.cc +0 -0
  111. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/io/BinaryFileInput.hh +0 -0
  112. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/io/BinaryFileOutput.cc +0 -0
  113. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/io/BinaryFileOutput.hh +0 -0
  114. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/io/BinarySerializer.hh +0 -0
  115. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/io/BufferSet.cc +0 -0
  116. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/io/BufferSet.hh +0 -0
  117. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/io/FileTools.cc +0 -0
  118. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/io/FileTools.hh +0 -0
  119. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/io/HashBinaryFileInput.cc +0 -0
  120. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/io/HashBinaryFileOutput.cc +0 -0
  121. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/io/HashBinarySerializer.cc +0 -0
  122. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/io/HashBinarySerializer.hh +0 -0
  123. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/io/HashTextFileInput.cc +0 -0
  124. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/io/HashTextFileOutput.cc +0 -0
  125. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/io/HashXmlSerializer.cc +0 -0
  126. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/io/HashXmlSerializer.hh +0 -0
  127. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/io/Input.hh +0 -0
  128. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/io/InputHandler.hh +0 -0
  129. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/io/Output.hh +0 -0
  130. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/io/SchemaBinaryFileInput.cc +0 -0
  131. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/io/SchemaBinaryFileOutput.cc +0 -0
  132. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/io/SchemaBinarySerializer.cc +0 -0
  133. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/io/SchemaBinarySerializer.hh +0 -0
  134. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/io/SchemaTextFileInput.cc +0 -0
  135. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/io/SchemaTextFileOutput.cc +0 -0
  136. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/io/SchemaXmlSerializer.cc +0 -0
  137. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/io/SchemaXmlSerializer.hh +0 -0
  138. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/io/TextFileInput.cc +0 -0
  139. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/io/TextFileInput.hh +0 -0
  140. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/io/TextFileOutput.cc +0 -0
  141. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/io/TextFileOutput.hh +0 -0
  142. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/io/TextSerializer.hh +0 -0
  143. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/io.hpp +0 -0
  144. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/schema/AlarmConditionElement.cc +0 -0
  145. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/schema/AlarmConditionElement.hh +0 -0
  146. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/schema/ByteArrayElement.hh +0 -0
  147. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/schema/Configurator.hh +0 -0
  148. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/schema/Factory.hh +0 -0
  149. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/schema/LeafElement.hh +0 -0
  150. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/schema/NDArrayElement.cc +0 -0
  151. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/schema/NDArrayElement.hh +0 -0
  152. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/schema/NodeElement.hh +0 -0
  153. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/schema/OverwriteElement.cc +0 -0
  154. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/schema/OverwriteElement.hh +0 -0
  155. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/schema/SimpleElement.hh +0 -0
  156. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/schema/StateElement.cc +0 -0
  157. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/schema/StateElement.hh +0 -0
  158. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/schema/TableElement.cc +0 -0
  159. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/schema/TableElement.hh +0 -0
  160. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/schema/Validator.cc +0 -0
  161. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/schema/Validator.hh +0 -0
  162. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/schema/VectorElement.hh +0 -0
  163. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/schema.hpp +0 -0
  164. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/time/DateTimeString.cc +0 -0
  165. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/time/DateTimeString.hh +0 -0
  166. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/time/Epochstamp.cc +0 -0
  167. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/time/Epochstamp.hh +0 -0
  168. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/time/TimeDuration.cc +0 -0
  169. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/time/TimeDuration.hh +0 -0
  170. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/time/TimeId.cc +0 -0
  171. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/time/TimeId.hh +0 -0
  172. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/time/TimePeriod.cc +0 -0
  173. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/time/TimePeriod.hh +0 -0
  174. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/time/Timestamp.cc +0 -0
  175. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/time/Timestamp.hh +0 -0
  176. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/time.hpp +0 -0
  177. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/types/AlarmCondition.cc +0 -0
  178. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/types/AlarmCondition.hh +0 -0
  179. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/types/Base64.cc +0 -0
  180. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/types/Base64.hh +0 -0
  181. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/types/ByteSwap.cc +0 -0
  182. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/types/ByteSwap.hh +0 -0
  183. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/types/ClassInfo.cc +0 -0
  184. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/types/ClassInfo.hh +0 -0
  185. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/types/Dims.cc +0 -0
  186. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/types/Dims.hh +0 -0
  187. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/types/Element.hh +0 -0
  188. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/types/Exception.cc +0 -0
  189. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/types/Exception.hh +0 -0
  190. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/types/FromInt.cc +0 -0
  191. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/types/FromInt.hh +0 -0
  192. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/types/FromLiteral.cc +0 -0
  193. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/types/FromLiteral.hh +0 -0
  194. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/types/FromType.hh +0 -0
  195. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/types/FromTypeInfo.cc +0 -0
  196. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/types/FromTypeInfo.hh +0 -0
  197. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/types/Hash.cc +0 -0
  198. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/types/Hash.hh +0 -0
  199. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/types/HashFilter.cc +0 -0
  200. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/types/HashFilter.hh +0 -0
  201. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/types/NDArray.cc +0 -0
  202. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/types/NDArray.hh +0 -0
  203. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/types/OrderedMap.hh +0 -0
  204. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/types/Schema.cc +0 -0
  205. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/types/Schema.hh +0 -0
  206. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/types/State.cc +0 -0
  207. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/types/State.hh +0 -0
  208. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/types/StateSignifier.cc +0 -0
  209. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/types/StateSignifier.hh +0 -0
  210. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/types/StringTools.cc +0 -0
  211. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/types/StringTools.hh +0 -0
  212. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/types/ToCppString.hh +0 -0
  213. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/types/ToLiteral.hh +0 -0
  214. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/types/ToSize.hh +0 -0
  215. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/types/ToType.hh +0 -0
  216. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/types/Types.hh +0 -0
  217. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/types/Units.hh +0 -0
  218. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/types/details.hh +0 -0
  219. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/types/karaboDll.hh +0 -0
  220. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data/types.hpp +0 -0
  221. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/data.hpp +0 -0
  222. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/devices/DataLogReader.cc +0 -0
  223. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/devices/DataLogReader.hh +0 -0
  224. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/devices/DataLogger.cc +0 -0
  225. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/devices/DataLogger.hh +0 -0
  226. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/devices/DataLoggerManager.hh +0 -0
  227. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/devices/FileDataLogger.cc +0 -0
  228. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/devices/FileDataLogger.hh +0 -0
  229. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/devices/FileLogReader.cc +0 -0
  230. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/devices/FileLogReader.hh +0 -0
  231. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/devices/GuiServerAuthSessionManager.cc +0 -0
  232. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/devices/GuiServerAuthSessionManager.hh +0 -0
  233. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/devices/GuiServerDevice.cc +0 -0
  234. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/devices/GuiServerDevice.hh +0 -0
  235. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/devices/InfluxDataLogger.cc +0 -0
  236. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/devices/InfluxDataLogger.hh +0 -0
  237. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/devices/InfluxLogReader.cc +0 -0
  238. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/devices/InfluxLogReader.hh +0 -0
  239. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/devices/PropertyTest.cc +0 -0
  240. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/devices/PropertyTest.hh +0 -0
  241. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/karabo.hpp +0 -0
  242. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/log/Logger.cc +0 -0
  243. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/log/Logger.hh +0 -0
  244. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/log/LoggerStream.hh +0 -0
  245. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/log/utils.cc +0 -0
  246. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/log/utils.hh +0 -0
  247. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/log.hpp +0 -0
  248. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/net/AmqpBroker.cc +0 -0
  249. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/net/AmqpBroker.hh +0 -0
  250. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/net/AmqpClient.hh +0 -0
  251. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/net/AmqpConnection.cc +0 -0
  252. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/net/AmqpConnection.hh +0 -0
  253. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/net/AmqpHashClient.cc +0 -0
  254. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/net/AmqpHashClient.hh +0 -0
  255. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/net/AmqpUtils.cc +0 -0
  256. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/net/AmqpUtils.hh +0 -0
  257. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/net/Broker.cc +0 -0
  258. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/net/Broker.hh +0 -0
  259. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/net/Channel.hh +0 -0
  260. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/net/Connection.cc +0 -0
  261. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/net/Connection.hh +0 -0
  262. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/net/EventLoop.cc +0 -0
  263. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/net/EventLoop.hh +0 -0
  264. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/net/HttpClient.cc +0 -0
  265. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/net/HttpClient.hh +0 -0
  266. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/net/HttpCommon.hh +0 -0
  267. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/net/HttpRequestRunner.cc +0 -0
  268. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/net/HttpRequestRunner.hh +0 -0
  269. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/net/HttpResponse.cc +0 -0
  270. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/net/HttpResponse.hh +0 -0
  271. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/net/HttpsRequestRunner.cc +0 -0
  272. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/net/HttpsRequestRunner.hh +0 -0
  273. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/net/InfluxDbClient.cc +0 -0
  274. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/net/InfluxDbClient.hh +0 -0
  275. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/net/InfluxDbClientUtils.cc +0 -0
  276. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/net/InfluxDbClientUtils.hh +0 -0
  277. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/net/NetworkInterface.cc +0 -0
  278. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/net/NetworkInterface.hh +0 -0
  279. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/net/Queues.hh +0 -0
  280. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/net/Strand.cc +0 -0
  281. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/net/Strand.hh +0 -0
  282. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/net/TcpChannel.cc +0 -0
  283. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/net/TcpChannel.hh +0 -0
  284. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/net/TcpConnection.cc +0 -0
  285. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/net/TcpConnection.hh +0 -0
  286. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/net/UserAuthClient.cc +0 -0
  287. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/net/UserAuthClient.hh +0 -0
  288. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/net/utils.cc +0 -0
  289. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/net/utils.hh +0 -0
  290. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/net.hpp +0 -0
  291. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/BrokerUtils.cc +0 -0
  292. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/BrokerUtils.hh +0 -0
  293. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/CMakeLists.txt +0 -0
  294. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/WaitUtils.cc +0 -0
  295. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/WaitUtils.hh +0 -0
  296. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/core/DeviceClient_Test.cc +0 -0
  297. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/core/DeviceClient_Test.hh +0 -0
  298. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/core/InstanceChangeThrottler_Test.cc +0 -0
  299. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/core/InstanceChangeThrottler_Test.hh +0 -0
  300. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/core/Runner_Test.cc +0 -0
  301. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/core/Runner_Test.hh +0 -0
  302. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/core/testJsonToHashParsing.cc +0 -0
  303. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/io/BufferSet_Test.cc +0 -0
  304. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/io/BufferSet_Test.hh +0 -0
  305. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/io/FileInputOutput_Test.cc +0 -0
  306. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/io/FileInputOutput_Test.hh +0 -0
  307. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/io/HashBinarySerializer_Test.cc +0 -0
  308. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/io/HashBinarySerializer_Test.hh +0 -0
  309. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/io/HashXmlSerializer_Test.cc +0 -0
  310. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/io/HashXmlSerializer_Test.hh +0 -0
  311. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/io/SchemaSerializer_Test.cc +0 -0
  312. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/io/SchemaSerializer_Test.hh +0 -0
  313. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/io/TestPathSetup.hh +0 -0
  314. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/io/resources/etalonXML_readonly.xml +0 -0
  315. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/io/resources/etalonXSD_readonly.xsd +0 -0
  316. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/io/resources/expectedParamsTextFile.xsd +0 -0
  317. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/io/resources/newTestXml.xml +0 -0
  318. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/io/resources/testSchemaFile_readonly.xsd +0 -0
  319. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/io/resources/xmlForReading_readonly.xml +0 -0
  320. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/schema/ConfigurationTestClasses.cc +0 -0
  321. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/schema/ConfigurationTestClasses.hh +0 -0
  322. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/schema/Configurator_Test.cc +0 -0
  323. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/schema/Configurator_Test.hh +0 -0
  324. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/schema/Factory_Test.cc +0 -0
  325. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/schema/Factory_Test.hh +0 -0
  326. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/schema/Schema_Test.hh +0 -0
  327. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/schema/Validator_Test.cc +0 -0
  328. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/schema/Validator_Test.hh +0 -0
  329. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/time/DateTimeString_Test.cc +0 -0
  330. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/time/DateTimeString_Test.hh +0 -0
  331. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/time/Epochstamp_Test.cc +0 -0
  332. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/time/Epochstamp_Test.hh +0 -0
  333. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/time/TimeClasses_Test.cc +0 -0
  334. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/time/TimeClasses_Test.hh +0 -0
  335. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/types/AlarmCondition_Test.cc +0 -0
  336. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/types/AlarmCondition_Test.hh +0 -0
  337. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/types/Base64_Test.cc +0 -0
  338. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/types/Base64_Test.hh +0 -0
  339. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/types/ByteSwap_Test.cc +0 -0
  340. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/types/ByteSwap_Test.hh +0 -0
  341. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/types/ClassInfo_Test.cc +0 -0
  342. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/types/ClassInfo_Test.hh +0 -0
  343. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/types/Dims_Test.cc +0 -0
  344. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/types/Dims_Test.hh +0 -0
  345. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/types/Exception_Test.cc +0 -0
  346. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/types/Exception_Test.hh +0 -0
  347. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/types/HashFilter_Test.cc +0 -0
  348. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/types/HashFilter_Test.hh +0 -0
  349. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/types/Hash_Test.cc +0 -0
  350. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/types/Hash_Test.hh +0 -0
  351. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/types/NDArray_Test.cc +0 -0
  352. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/types/NDArray_Test.hh +0 -0
  353. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/types/Serializable_Test.cc +0 -0
  354. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/types/Serializable_Test.h +0 -0
  355. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/types/States_Test.cc +0 -0
  356. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/types/States_Test.hh +0 -0
  357. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/types/StringTools_Test.cc +0 -0
  358. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/types/StringTools_Test.hh +0 -0
  359. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/types/Types_Test.cc +0 -0
  360. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/data/types/Types_Test.hh +0 -0
  361. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/log/Logger_Test.cc +0 -0
  362. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/log/Logger_Test.hh +0 -0
  363. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/net/Amqp_Test.hh +0 -0
  364. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/net/Broker_Test.cc +0 -0
  365. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/net/Broker_Test.hh +0 -0
  366. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/net/EventLoop_Test.cc +0 -0
  367. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/net/EventLoop_Test.hh +0 -0
  368. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/net/HttpClient_Test.cc +0 -0
  369. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/net/HttpClient_Test.hh +0 -0
  370. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/net/InfluxDbClient_Test.cc +0 -0
  371. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/net/InfluxDbClient_Test.hh +0 -0
  372. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/net/MQTcpNetworking.cc +0 -0
  373. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/net/MQTcpNetworking.hh +0 -0
  374. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/net/NetworkInterface_Test.cc +0 -0
  375. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/net/NetworkInterface_Test.hh +0 -0
  376. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/net/ParseUrl_Test.cc +0 -0
  377. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/net/ParseUrl_Test.hh +0 -0
  378. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/net/ReadAsyncStringUntil_Test.cc +0 -0
  379. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/net/ReadAsyncStringUntil_Test.hh +0 -0
  380. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/net/Strand_Test.cc +0 -0
  381. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/net/Strand_Test.hh +0 -0
  382. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/net/TcpNetworking_Test.cc +0 -0
  383. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/net/TcpNetworking_Test.hh +0 -0
  384. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/testRunner.cc +0 -0
  385. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/testRunner.hh +0 -0
  386. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/testRunnerNoLoop.cc +0 -0
  387. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/util/DataLogUtils_Test.cc +0 -0
  388. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/util/DataLogUtils_Test.hh +0 -0
  389. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/util/MetaTools_Test.cc +0 -0
  390. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/util/MetaTools_Test.hh +0 -0
  391. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/util/Version_Test.cc +0 -0
  392. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/util/Version_Test.hh +0 -0
  393. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/xms/ImageData_Test.cc +0 -0
  394. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/xms/ImageData_Test.hh +0 -0
  395. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/xms/InputOutputChannel_Test.cc +0 -0
  396. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/xms/InputOutputChannel_Test.hh +0 -0
  397. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/xms/Memory_Test.cc +0 -0
  398. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/xms/Memory_Test.hh +0 -0
  399. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/xms/SignalSlotable_Test.cc +0 -0
  400. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/xms/SignalSlotable_Test.hh +0 -0
  401. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/xms/Signal_Test.cc +0 -0
  402. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/xms/Signal_Test.hh +0 -0
  403. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/xms/Slot_Test.cc +0 -0
  404. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/tests/xms/Slot_Test.hh +0 -0
  405. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/util/ArrayTools.hh +0 -0
  406. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/util/DataLogUtils.cc +0 -0
  407. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/util/DataLogUtils.hh +0 -0
  408. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/util/JsonToHashParser.cc +0 -0
  409. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/util/JsonToHashParser.hh +0 -0
  410. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/util/MetaTools.hh +0 -0
  411. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/util/PackParameters.hh +0 -0
  412. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/util/PluginLoader.cc +0 -0
  413. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/util/PluginLoader.hh +0 -0
  414. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/util/TimeProfiler.cc +0 -0
  415. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/util/TimeProfiler.hh +0 -0
  416. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/util/Version.cc +0 -0
  417. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/util/Version.hh +0 -0
  418. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/util/VersionMacros.in +0 -0
  419. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/util.hpp +0 -0
  420. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/xms/ImageData.cc +0 -0
  421. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/xms/ImageData.hh +0 -0
  422. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/xms/InputChannel.cc +0 -0
  423. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/xms/InputChannel.hh +0 -0
  424. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/xms/Memory.cc +0 -0
  425. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/xms/Memory.hh +0 -0
  426. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/xms/OutputChannel.cc +0 -0
  427. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/xms/OutputChannel.hh +0 -0
  428. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/xms/Signal.cc +0 -0
  429. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/xms/Signal.hh +0 -0
  430. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/xms/SignalSlotable.hh +0 -0
  431. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/xms/Slot.cc +0 -0
  432. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/xms/Slot.hh +0 -0
  433. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/xms/Statics.cc +0 -0
  434. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/xms/Statics.hh +0 -0
  435. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/karabo/xms.hpp +0 -0
  436. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/tools/brokerRates/CMakeLists.txt +0 -0
  437. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/tools/brokerRates/brokerRates.cpp +0 -0
  438. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/tools/dataLoggerIndex/CMakeLists.txt +0 -0
  439. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/tools/dataLoggerIndex/idxBuild.cc +0 -0
  440. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/tools/dataLoggerIndex/idxView.cc +0 -0
  441. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/tools/scripts/activate.tmpl +0 -0
  442. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/tools/scripts/karabo-inspectbrokertopic +0 -0
  443. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/tools/scripts/karabo-monitorjmsbroker +0 -0
  444. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/tools/scripts/karabo-querybroker +0 -0
  445. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/tools/scripts/karabo-startinfluxdb +0 -0
  446. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/tools/scripts/karabo-startopenmq +0 -0
  447. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/tools/scripts/karabo-startprojectdb +0 -0
  448. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/tools/scripts/karabo-startrabbitmq +0 -0
  449. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/tools/scripts/karabo-stopbroker +0 -0
  450. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/tools/scripts/karabo-stopinfluxdb +0 -0
  451. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/tools/scripts/karabo-stopprojectdb +0 -0
  452. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/src/tools/scripts/karabo-stoprabbitmq +0 -0
  453. {karabo_cpp-3.0.3 → karabo_cpp-3.0.7}/wheel_tests/test_console.py +0 -0
@@ -37,7 +37,6 @@ install(DIRECTORY extern/build/include/
37
37
  PATTERN "boost/fusion" EXCLUDE
38
38
  PATTERN "boost/geometry" EXCLUDE
39
39
  PATTERN "boost/spirit" EXCLUDE
40
- PATTERN "boost/preprocessor" EXCLUDE
41
40
  PATTERN "boost/wave" EXCLUDE
42
41
  PATTERN "boost/beast" EXCLUDE
43
42
  PATTERN "boost/qvm" EXCLUDE
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: karabo.cpp
3
- Version: 3.0.3
3
+ Version: 3.0.7
4
4
  Summary: Karabo's C++ API and Python bindings thereof
5
5
  Keywords: Karabo,SCADA,async,control system
6
6
  Author-Email: European XFEL GmbH <opensource@xfel.eu>
@@ -13,7 +13,7 @@ Project-URL: Homepage, https://github.com/European-XFEL/Karabo
13
13
  Project-URL: Bug Reports, https://github.com/European-XFEL/Karabo/issues
14
14
  Project-URL: Source, https://github.com/European-XFEL/Karabo
15
15
  Requires-Python: ==3.12.*
16
- Requires-Dist: karabo-native==3.0.3
16
+ Requires-Dist: karabo-native==3.0.7
17
17
  Description-Content-Type: text/markdown
18
18
 
19
19
  # Karabo SCADA Framework - C++ API and Service Devices
@@ -145,12 +145,6 @@ install_python() {
145
145
  safeRunCommandQuiet "conan remote update conancenter --url https://center2.conan.io"
146
146
  fi
147
147
 
148
- # Some dependencies, like libpng specify minimum required versions of cmake to be older than
149
- # "3.5" - starting with cmake "4.X", the minimum cmake version must be at least "3.5".
150
- # Details at https://cmake.org/cmake/help/v4.0/release/4.0.html#id14
151
- # Setting the environment variable below allows passing the cmake check.
152
- export CMAKE_POLICY_VERSION_MINIMUM="3.5"
153
-
154
148
  safeRunCommandQuiet "conan install conanfile-bootstrap.txt $folder_opts $build_opts $profile_opts"
155
149
 
156
150
  # ensure that python can always find its libpython.so
@@ -283,6 +277,12 @@ else
283
277
  conan --version
284
278
  fi
285
279
 
280
+ # Some dependencies, like libpng specify minimum required versions of cmake to be older than
281
+ # "3.5" - starting with cmake "4.X", the minimum cmake version must be at least "3.5".
282
+ # Details at https://cmake.org/cmake/help/v4.0/release/4.0.html#id14
283
+ # Setting the environment variable below allows passing the cmake check.
284
+ export CMAKE_POLICY_VERSION_MINIMUM="3.5"
285
+
286
286
  # python download and install to allow full bootstrap
287
287
  # install framework python dependencies via pip
288
288
  check_for $INSTALL_PREFIX/bin/python
@@ -18,11 +18,11 @@ zeromq/4.3.2
18
18
 
19
19
 
20
20
  # patch-any
21
- libpng/1.6.37
21
+ libpng/1.6.50
22
22
  libxslt/1.1.34
23
23
  libxml2/2.11.6
24
24
  patchelf/0.13
25
- pugixml/1.10
25
+ pugixml/1.15
26
26
 
27
27
  # minor-any
28
28
  boost/1.88.0
@@ -3,7 +3,7 @@ requires = ["scikit-build-core"]
3
3
  build-backend = "scikit_build_core.build"
4
4
 
5
5
  [project]
6
- version = "3.0.3"
6
+ version = "3.0.7"
7
7
  name = "karabo.cpp"
8
8
  description = "Karabo's C++ API and Python bindings thereof"
9
9
  readme = "README.md"
@@ -38,7 +38,7 @@ classifiers = [
38
38
  # For an analysis of this field vs pip's requirements files see:
39
39
  # https://packaging.python.org/discussions/install-requires-vs-requirements/
40
40
  dependencies = [
41
- "karabo-native==3.0.3",
41
+ "karabo-native==3.0.7",
42
42
  ]
43
43
 
44
44
 
@@ -130,5 +130,5 @@ before-build = "pip3 install conan==2.19.0 && pip3 install numpy==2.0.1 && pytho
130
130
 
131
131
  test-requires = ["pytest"]
132
132
  # these are minimally required for a C++ server to start
133
- before-test = "mkdir /karabo && mkdir /karabo/var && mkdir /karabo/var/data && mkdir /karabo/plugins && pip install karabo.native==3.0.3 --index-url 'https://gitlab-ci-token:glcbt-64_ywxqxzTszQXmxeVm8idj@git.xfel.eu/api/v4/projects/5003/packages/pypi/simple' --extra-index-url https://pypi.org"
133
+ before-test = "mkdir /karabo && mkdir /karabo/var && mkdir /karabo/var/data && mkdir /karabo/plugins && pip install karabo.native==3.0.7 --index-url 'https://gitlab-ci-token:glcbt-64_rQzK5PzG5pw-grW5ESAR@git.xfel.eu/api/v4/projects/5003/packages/pypi/simple' --extra-index-url https://pypi.org"
134
134
  test-command = "KARABO=/karabo KARABO_BROKER=amqp://xfel:karabo@exfl-broker-1:5672 pytest {project}/wheel_tests"
@@ -49,7 +49,8 @@ void exportPyUtilAlarmConditionElement(py::module_& m) {
49
49
 
50
50
  a.def("displayedName", &AlarmConditionElement::displayedName, py::return_value_policy::reference_internal);
51
51
 
52
- a.def("key", &AlarmConditionElement::key, py::return_value_policy::reference_internal);
52
+ a.def("key", &AlarmConditionElement::key, py::arg("name"), py::arg("strict") = true,
53
+ py::return_value_policy::reference_internal);
53
54
 
54
55
  a.def("tags",
55
56
  (AlarmConditionElement & (AlarmConditionElement::*)(std::string const&, std::string const&)) &
@@ -461,8 +461,8 @@ void exportPyUtilHash(py::module_& m) {
461
461
  g = h.get('a.b') # reference to Hash('c', 1)
462
462
  g.set('c', 2)
463
463
  assert(h.get('a.b.c') == 2)
464
- del(h) # delete whole tree
465
- print(g) # SEGFAULT: dangling reference
464
+ del h # delete whole tree
465
+ print(g) # inner Hash still valid
466
466
  )pbdoc");
467
467
 
468
468
  h.def(
@@ -217,7 +217,8 @@ void exportPyUtilSchemaElement(py::module_& m) {
217
217
  .def("description", &NDArrayElement::description, py::return_value_policy::reference_internal)
218
218
  .def("displayedName", &NDArrayElement::displayedName, py::return_value_policy::reference_internal)
219
219
  .def("init", &NDArrayElement::init, py::return_value_policy::reference_internal)
220
- .def("key", &NDArrayElement::key, py::return_value_policy::reference_internal)
220
+ .def("key", &NDArrayElement::key, py::arg("name"), py::arg("strict") = true,
221
+ py::return_value_policy::reference_internal)
221
222
  .def("readOnly", &NDArrayElement::readOnly, py::return_value_policy::reference_internal)
222
223
  .def("reconfigurable", &NDArrayElement::reconfigurable, py::return_value_policy::reference_internal)
223
224
  .def("commit", &NDArrayElement::commit, py::return_value_policy::reference_internal);
@@ -234,31 +234,31 @@ class CommonWrap {
234
234
  KARABO_PYTHON_NUMERIC_ATTRIBUTES(T); \
235
235
  }
236
236
 
237
- #define KARABO_PYTHON_COMMON_ATTRIBUTES(T) \
238
- .def("observerAccess", &T::observerAccess, py::return_value_policy::reference_internal) \
239
- .def("operatorAccess", &T::operatorAccess, py::return_value_policy::reference_internal) \
240
- .def("expertAccess", &T::expertAccess, py::return_value_policy::reference_internal) \
241
- .def("allowedStates", &CommonWrap<T>::allowedStatesPy, py::return_value_policy::reference_internal) \
242
- .def("assignmentInternal", &T::assignmentInternal, py::return_value_policy::reference_internal) \
243
- .def("assignmentMandatory", &T::assignmentMandatory, py::return_value_policy::reference_internal) \
244
- .def("assignmentOptional", &T::assignmentOptional, py::return_value_policy::reference_internal) \
245
- .def("alias", &AliasAttributeWrap<T>::aliasPy, py::return_value_policy::reference_internal) \
246
- .def("commit", &T::commit, py::return_value_policy::reference_internal) \
247
- .def("commit", (T & (T::*)(karabo::data::Schema&))(&T::commit), py::arg("expected"), \
248
- py::return_value_policy::reference_internal) \
249
- .def("description", &T::description, py::return_value_policy::reference_internal) \
250
- .def("displayedName", &T::displayedName, py::return_value_policy::reference_internal) \
251
- .def("unit", &T::unit, py::return_value_policy::reference_internal) \
252
- .def("metricPrefix", &T::metricPrefix, py::return_value_policy::reference_internal) \
253
- .def("init", &T::init, py::return_value_policy::reference_internal) \
254
- .def("key", &T::key, py::return_value_policy::reference_internal) \
255
- .def("setSpecialDisplayType", (T & (T::*)(std::string const&))(&T::setSpecialDisplayType), \
256
- py::arg("displayType"), py::return_value_policy::reference_internal) \
257
- .def("readOnly", &T::readOnly, py::return_value_policy::reference_internal) \
258
- .def("reconfigurable", &T::reconfigurable, py::return_value_policy::reference_internal) \
259
- .def("tags", (T & (T::*)(std::string const&, std::string const&))(&T::tags), py::arg("tags"), \
260
- py::arg("sep") = " ,;", py::return_value_policy::reference_internal) \
261
- .def("tags", (T & (T::*)(std::vector<std::string> const&))(&T::tags), py::arg("tags"), \
237
+ #define KARABO_PYTHON_COMMON_ATTRIBUTES(T) \
238
+ .def("observerAccess", &T::observerAccess, py::return_value_policy::reference_internal) \
239
+ .def("operatorAccess", &T::operatorAccess, py::return_value_policy::reference_internal) \
240
+ .def("expertAccess", &T::expertAccess, py::return_value_policy::reference_internal) \
241
+ .def("allowedStates", &CommonWrap<T>::allowedStatesPy, py::return_value_policy::reference_internal) \
242
+ .def("assignmentInternal", &T::assignmentInternal, py::return_value_policy::reference_internal) \
243
+ .def("assignmentMandatory", &T::assignmentMandatory, py::return_value_policy::reference_internal) \
244
+ .def("assignmentOptional", &T::assignmentOptional, py::return_value_policy::reference_internal) \
245
+ .def("alias", &AliasAttributeWrap<T>::aliasPy, py::return_value_policy::reference_internal) \
246
+ .def("commit", &T::commit, py::return_value_policy::reference_internal) \
247
+ .def("commit", (T & (T::*)(karabo::data::Schema&))(&T::commit), py::arg("expected"), \
248
+ py::return_value_policy::reference_internal) \
249
+ .def("description", &T::description, py::return_value_policy::reference_internal) \
250
+ .def("displayedName", &T::displayedName, py::return_value_policy::reference_internal) \
251
+ .def("unit", &T::unit, py::return_value_policy::reference_internal) \
252
+ .def("metricPrefix", &T::metricPrefix, py::return_value_policy::reference_internal) \
253
+ .def("init", &T::init, py::return_value_policy::reference_internal) \
254
+ .def("key", &T::key, py::arg("name"), py::arg("strict") = true, py::return_value_policy::reference_internal) \
255
+ .def("setSpecialDisplayType", (T & (T::*)(std::string const&))(&T::setSpecialDisplayType), \
256
+ py::arg("displayType"), py::return_value_policy::reference_internal) \
257
+ .def("readOnly", &T::readOnly, py::return_value_policy::reference_internal) \
258
+ .def("reconfigurable", &T::reconfigurable, py::return_value_policy::reference_internal) \
259
+ .def("tags", (T & (T::*)(std::string const&, std::string const&))(&T::tags), py::arg("tags"), \
260
+ py::arg("sep") = " ,;", py::return_value_policy::reference_internal) \
261
+ .def("tags", (T & (T::*)(std::vector<std::string> const&))(&T::tags), py::arg("tags"), \
262
262
  py::return_value_policy::reference_internal)
263
263
 
264
264
  #define KARABO_PYTHON_OPTIONS_NONVECTOR(T) \
@@ -315,7 +315,8 @@ class CommonWrap {
315
315
  .def("observerAccess", &NameElem::observerAccess, py::return_value_policy::reference_internal) \
316
316
  .def("operatorAccess", &NameElem::operatorAccess, py::return_value_policy::reference_internal) \
317
317
  .def("expertAccess", &NameElem::expertAccess, py::return_value_policy::reference_internal) \
318
- .def("key", &NameElem::key, py::return_value_policy::reference_internal) \
318
+ .def("key", &NameElem::key, py::arg("name"), py::arg("strict") = true, \
319
+ py::return_value_policy::reference_internal) \
319
320
  .def("description", &NameElem::description, py::return_value_policy::reference_internal) \
320
321
  .def("displayedName", &NameElem::displayedName, py::return_value_policy::reference_internal) \
321
322
  .def("alias", &AliasAttributeWrap<NameElem>::aliasPy, py::return_value_policy::reference_internal) \
@@ -125,7 +125,8 @@ void exportPyUtilSchemaTableElement(py::module_& m) {
125
125
  .def("description", &TableElement::description, py::return_value_policy::reference_internal)
126
126
  .def("displayedName", &TableElement::displayedName, py::return_value_policy::reference_internal)
127
127
  .def("init", &TableElement::init, py::return_value_policy::reference_internal)
128
- .def("key", &TableElement::key, py::return_value_policy::reference_internal)
128
+ .def("key", &TableElement::key, py::arg("name"), py::arg("strict") = true,
129
+ py::return_value_policy::reference_internal)
129
130
  .def("reconfigurable", &TableElement::reconfigurable, py::return_value_policy::reference_internal)
130
131
  .def("tags",
131
132
  (TableElement & (TableElement::*)(std::string const&, std::string const&)) & TableElement::tags,
@@ -47,7 +47,8 @@ void exportPyUtilStateElement(py::module_& m) {
47
47
 
48
48
  se.def("displayedName", &StateElement::displayedName, py::return_value_policy::reference_internal);
49
49
 
50
- se.def("key", &StateElement::key, py::return_value_policy::reference_internal);
50
+ se.def("key", &StateElement::key, py::arg("name"), py::arg("strict") = true,
51
+ py::return_value_policy::reference_internal);
51
52
 
52
53
  se.def("tags", (StateElement & (StateElement::*)(std::string const&, std::string const&)) & StateElement::tags,
53
54
  py::arg("tags"), py::arg("sep") = " ,;", py::return_value_policy::reference_internal);
@@ -210,7 +210,8 @@ void exportPyXmsImageDataElement(py::module_& m) {
210
210
 
211
211
  el.def(py::init<Schema&>(), py::arg("expected"));
212
212
 
213
- el.def("key", &ImageDataElement::key, py::arg("key"), py::return_value_policy::reference_internal);
213
+ el.def("key", &ImageDataElement::key, py::arg("key"), py::arg("strict") = true,
214
+ py::return_value_policy::reference_internal);
214
215
 
215
216
  el.def("displayedName", &ImageDataElement::displayedName, py::arg("name"),
216
217
  py::return_value_policy::reference_internal);
@@ -85,7 +85,8 @@ void exportPyXmsSlotElement(py::module_& m) {
85
85
  sl.def("displayedName", &SlotElementBase<SLOT_ELEMENT>::displayedName, py::arg("displayedName"),
86
86
  py::return_value_policy::reference_internal);
87
87
 
88
- sl.def("key", &SlotElementBase<SLOT_ELEMENT>::key, py::arg("name"), py::return_value_policy::reference_internal);
88
+ sl.def("key", &SlotElementBase<SLOT_ELEMENT>::key, py::arg("name"), py::arg("strict") = true,
89
+ py::return_value_policy::reference_internal);
89
90
 
90
91
  sl.def("alias", &wrapper::AliasAttributePy<SLOT_ELEMENT>::setAlias, py::return_value_policy::reference_internal);
91
92
 
@@ -66,10 +66,10 @@ endif()
66
66
  # Extracts KARABO_VERSION from the appropriate Git tag, writes to
67
67
  # a file to be used by the Karabo Framework at build time.
68
68
  message(STATUS "Resolving Karabo Version from Git repository")
69
- set(KARABO_VERSION "3.0.3")
69
+ set(KARABO_VERSION "3.0.7")
70
70
  set(KARABO_VERSION_MAJOR "3")
71
71
  set(KARABO_VERSION_MINOR "0")
72
- set(KARABO_VERSION_PATCH "3")
72
+ set(KARABO_VERSION_PATCH "7")
73
73
  message(STATUS "Karabo Version: ${KARABO_VERSION}")
74
74
  message(STATUS "Karabo Version Major: ${KARABO_VERSION_MAJOR}")
75
75
  message(STATUS "Karabo Version Minor: ${KARABO_VERSION_MINOR}")
@@ -158,10 +158,7 @@ namespace karabo {
158
158
  ALARM_ELEMENT(expected)
159
159
  .key("alarmCondition")
160
160
  .displayedName("Alarm condition")
161
- .description(
162
- "The current alarm condition of the device. "
163
- "Evaluates to the highest condition on any"
164
- " property if not set manually.")
161
+ .description("The current alarm condition of the device.")
165
162
  .initialValue(AlarmCondition::NONE)
166
163
  .commit();
167
164
 
@@ -717,23 +714,53 @@ namespace karabo {
717
714
  onTimeTick(id, sec, frac, period);
718
715
  }
719
716
 
720
-
721
717
  void Device::appendSchemaMaxSize(const std::string& path, unsigned int value, bool emitFlag) {
718
+ internalAppendSchemaMultiMaxSize({path}, {value}, emitFlag);
719
+ }
720
+
721
+ void Device::appendSchemaMultiMaxSize(const std::vector<std::string>& paths,
722
+ const std::vector<unsigned int>& values) {
723
+ internalAppendSchemaMultiMaxSize(paths, values, true);
724
+ }
725
+
726
+ void Device::internalAppendSchemaMultiMaxSize(const std::vector<std::string>& paths,
727
+ const std::vector<unsigned int>& values, bool emitFlag) {
722
728
  using karabo::data::OVERWRITE_ELEMENT;
729
+
730
+ if (paths.size() != values.size()) {
731
+ throw KARABO_PARAMETER_EXCEPTION("Number of paths and values differs.");
732
+ }
723
733
  std::lock_guard<std::mutex> lock(m_objectStateChangeMutex);
724
- if (!m_fullSchema.has(path)) {
725
- throw KARABO_PARAMETER_EXCEPTION("Path \"" + path + "\" not found in the device schema.");
734
+ for (const std::string& path : paths) {
735
+ if (!m_fullSchema.has(path)) {
736
+ throw KARABO_PARAMETER_EXCEPTION("Path \"" + path + "\" not found in the device schema.");
737
+ }
726
738
  }
727
739
  m_stateDependentSchema.clear();
728
740
  // Do not touch static schema - that must be restorable via updateSchema(Schema())
729
741
  // OVERWRITE_ELEMENT checks whether max size attribute makes sense for path
730
- OVERWRITE_ELEMENT(m_fullSchema).key(path).setNewMaxSize(value).commit();
731
- if (m_injectedSchema.has(path)) {
732
- OVERWRITE_ELEMENT(m_injectedSchema).key(path).setNewMaxSize(value).commit();
742
+ size_t index = 0;
743
+ for (const std::string& path : paths) {
744
+ const unsigned int value = values[index++]; // postfix!
745
+ OVERWRITE_ELEMENT(m_fullSchema).key(path).setNewMaxSize(value).commit();
746
+ if (m_injectedSchema.has(path)) {
747
+ OVERWRITE_ELEMENT(m_injectedSchema).key(path).setNewMaxSize(value).commit();
748
+ }
733
749
  }
734
750
 
735
751
  // Notify the distributed system if needed
752
+ // (and, as in updateSchema and appendSchema, better before recreating output channels):
736
753
  if (emitFlag) emit("signalSchemaUpdated", m_fullSchema, m_deviceId);
754
+
755
+ // If the vector was part of an output channel schema, recreate the channel.
756
+ // The new incarnation of the channel receives the up-to-date schema for validation.
757
+ for (const std::string& output : getOutputChannelNames()) {
758
+ for (const std::string& path : paths) {
759
+ if (path.starts_with(output)) {
760
+ prepareOutputChannel(output);
761
+ }
762
+ }
763
+ }
737
764
  }
738
765
 
739
766
 
@@ -811,20 +811,32 @@ namespace karabo {
811
811
  unsigned long long period) {}
812
812
 
813
813
  /**
814
- * Append Schema to change/set maximum size information for path - if paths does not exist, throw exception
814
+ * Append Schema to change or set the maximum size for a vector or table property
815
815
  *
816
816
  * This is similar to the more general appendSchema, but dedicated to a common use case.
817
817
  *
818
- * Caveat: This does not recreate an output channel if its schema is changed
818
+ * Use 'appendSchemaMultiMaxSize' if the maximum size of several properties should be changed.
819
819
  *
820
- * @param path indicates the parameter which should be a Vector- or TableElement
821
- * @param value is the new maximum size of the parameter
820
+ * @param path indicates the property which should be a Vector- or TableElement
821
+ * @param value is the new maximum size of the property
822
822
  * @param emitFlag indicates if others should be informed about this Schema update.
823
- * If this method is called for a bunch of paths, it is recommended to
824
- * set this to true only for the last call.
823
+ * Should only be set to false if followed by a call to appendSchema(..).
825
824
  */
826
825
  void appendSchemaMaxSize(const std::string& path, unsigned int value, bool emitFlag = true);
827
826
 
827
+ /**
828
+ * Append Schema to change or set the maximum size information for several properties
829
+ *
830
+ * @param paths property names of Vector- or TableElements
831
+ * @param values the new maximum sizes of these properties (same order and length as 'paths')
832
+ */
833
+ void appendSchemaMultiMaxSize(const std::vector<std::string>& paths,
834
+ const std::vector<unsigned int>& values);
835
+
836
+ private:
837
+ void internalAppendSchemaMultiMaxSize(const std::vector<std::string>& paths,
838
+ const std::vector<unsigned int>& values, bool emitFlag);
839
+
828
840
  protected: // Functions and Classes
829
841
  virtual void preReconfigure(karabo::data::Hash& incomingReconfiguration) {}
830
842
 
@@ -58,7 +58,6 @@ namespace karabo {
58
58
  // See also OutputChannel::initializeServerConnection(...)
59
59
  const int kMaxCompleteInitializationAttempts = 2500;
60
60
 
61
- // TODO: Move this to a constant of ConfigurationManager device once it becomes part of the Framework.
62
61
  const std::string DEFAULT_CONFIG_MANAGER_ID("KaraboConfigurationManager");
63
62
 
64
63
  void DeviceClient::initServiceDeviceIds(const Hash& serviceDeviceIds) {
@@ -81,8 +80,7 @@ namespace karabo {
81
80
  m_internalTimeout(3000),
82
81
  m_topologyInitialized(false),
83
82
  m_ageingTimer(karabo::net::EventLoop::getIOService()),
84
- m_getOlder(false) // Sic! To start aging in setAgeing below.
85
- ,
83
+ m_getOlder(false), // Sic! To start aging in setAgeing below.
86
84
  m_signalsChangedTimer(karabo::net::EventLoop::getIOService()),
87
85
  m_runSignalsChangedTimer(false),
88
86
  m_signalsChangedInterval(-1),
@@ -119,8 +117,7 @@ namespace karabo {
119
117
  m_internalTimeout(2000),
120
118
  m_topologyInitialized(false),
121
119
  m_ageingTimer(karabo::net::EventLoop::getIOService()),
122
- m_getOlder(false) // Sic! To start aging in setAgeing below.
123
- ,
120
+ m_getOlder(false), // Sic! To start aging in setAgeing below.
124
121
  m_signalsChangedTimer(karabo::net::EventLoop::getIOService()),
125
122
  m_runSignalsChangedTimer(false),
126
123
  m_signalsChangedInterval(-1),
@@ -203,18 +200,15 @@ namespace karabo {
203
200
  bind_weak(&karabo::core::DeviceClient::_slotClassSchema, this, _1, _2, _3), "_slotClassSchema");
204
201
  p->registerSlot<Schema, string>(bind_weak(&karabo::core::DeviceClient::_slotSchemaUpdated, this, _1, _2),
205
202
  "_slotSchemaUpdated");
203
+ // We hook our methods to the existing (in SignalSlotable) slots for instance monitoring
206
204
  p->registerSlot<string, Hash>(bind_weak(&karabo::core::DeviceClient::_slotInstanceNew, this, _1, _2),
207
- "_slotInstanceNew");
205
+ "slotInstanceNew");
208
206
  p->registerSlot<string, Hash>(bind_weak(&karabo::core::DeviceClient::_slotInstanceGone, this, _1, _2),
209
- "_slotInstanceGone");
207
+ "slotInstanceGone");
210
208
  p->registerSlot<string, Hash>(bind_weak(&karabo::core::DeviceClient::_slotInstanceUpdated, this, _1, _2),
211
- "_slotInstanceUpdated");
209
+ "slotInstanceUpdated");
210
+ // A slot to follow logger map updates
212
211
  p->registerSlot<Hash>(bind_weak(&karabo::core::DeviceClient::_slotLoggerMap, this, _1), "_slotLoggerMap");
213
-
214
- // No advantage from asyncConnect since connecting to one's own signal is just a call chain:
215
- p->connect("", "signalInstanceNew", "_slotInstanceNew");
216
- p->connect("", "signalInstanceGone", "_slotInstanceGone");
217
- p->connect("", "signalInstanceUpdated", "_slotInstanceUpdated");
218
212
  }
219
213
 
220
214
 
@@ -380,11 +374,11 @@ namespace karabo {
380
374
  //
381
375
  // As a workaround, we try to clarify the situation:
382
376
  // - Take care that we do not track the instance.
383
- // - Trigger a call to our slotPingAnswer that will then trigger "signalInstanceNew" (but only
377
+ // - Trigger a call to our slotDiscoverAnswer that will then trigger "slotInstanceNew" (but only
384
378
  // if instance is untracked).
385
379
  if (auto sigSlot = m_signalSlotable.lock()) {
386
380
  const bool wasTracked = sigSlot->eraseTrackedInstance(instanceId);
387
- sigSlot->call(instanceId, "slotPing", 0);
381
+ sigSlot->call(instanceId, "slotDiscover", getInstanceId());
388
382
  KARABO_LOG_FRAMEWORK_WARN << getInstanceId() << ": Received instance update from '"
389
383
  << instanceId << "' although it is not in runtime description"
390
384
  << (wasTracked ? " (but was tracked!)" : "")
@@ -23,21 +23,33 @@
23
23
  #include "karabo/data/types/Exception.hh"
24
24
  #include "karabo/data/types/Hash.hh"
25
25
 
26
- void karabo::data::checkPropertyPath(const std::string& name) {
26
+ void karabo::data::checkPropertyPath(const std::string& name, bool strict) {
27
27
  if (name.empty() || name.back() == Hash::k_defaultSep) {
28
28
  throw KARABO_PARAMETER_EXCEPTION(("Bad (sub-)key '" + name) += "': empty");
29
29
  }
30
30
  // '/' is special: only allowed for backward compatibility in metro devices of DA group
31
31
  constexpr char allowedCharacters[] =
32
- ".0123456789_/"
32
+ ".0123456789_/" // In 3.1.X move '/' to tolerated characters?
33
33
  "abcdefghijklmnopqrstuvwxyz"
34
34
  "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
35
35
  assert(allowedCharacters[0] == karabo::data::Hash::k_defaultSep);
36
36
 
37
- const size_t pos = name.find_first_not_of(allowedCharacters);
38
- if (pos != std::string::npos) {
39
- std::string msg(("Bad (sub-)key '" + name) += "': illegal character at position ");
40
- throw KARABO_PARAMETER_EXCEPTION(msg += toString(pos));
37
+ if (strict) {
38
+ const size_t pos = name.find_first_not_of(allowedCharacters);
39
+ if (pos != std::string::npos) {
40
+ std::string msg(("Bad (sub-)key '" + name) += "': illegal character at position ");
41
+ throw KARABO_PARAMETER_EXCEPTION(msg += toString(pos));
42
+ }
43
+ } else {
44
+ // If requested to be not strict, we tolerate some characters.
45
+ // Note we must not tolerate ',', '=', or space for sake of the influxDB line protocol!
46
+ const std::string toleratedCharacters("@-");
47
+ const std::string allAllowedCharacters(allowedCharacters + toleratedCharacters);
48
+ const size_t pos = name.find_first_not_of(allAllowedCharacters);
49
+ if (pos != std::string::npos) {
50
+ std::string msg(("Bad (sub-)key '" + name) += "': not tolerated character at position ");
51
+ throw KARABO_PARAMETER_EXCEPTION(msg += toString(pos));
52
+ }
41
53
  }
42
54
  // Now check that leading character of (last part of) name is not a digit
43
55
  // (non-last parts are checked when their nodes were added)
@@ -40,8 +40,9 @@ namespace karabo {
40
40
  * Nestes paths (i.e. paths with dots) are allowed.
41
41
  *
42
42
  * @param name the key to be checked
43
+ * @param strict specify whether to tolerate more than just letter, digits, underscore
43
44
  */
44
- void checkPropertyPath(const std::string& name);
45
+ void checkPropertyPath(const std::string& name, bool strict);
45
46
 
46
47
  /**
47
48
  * The BaseElement class is a base class for various element types: simple, vector, choice, list
@@ -74,13 +75,13 @@ namespace karabo {
74
75
  * .commit();
75
76
  * @endcode
76
77
  */
77
- virtual Derived& key(const std::string& name) {
78
+ virtual Derived& key(const std::string& name, bool strict = true) {
78
79
  // Check whether full path (that in fact has to be specified here!) or its last
79
80
  // key is empty - empty non-last keys are caught elsewhere.
80
81
  // Also ensure that keys are usable with MDL proxies, i.e. only letters, digits,
81
82
  // underscores - and a digit not as first character.
82
83
 
83
- checkPropertyPath(name); // throws if not OK
84
+ checkPropertyPath(name, strict); // throws if not OK
84
85
 
85
86
  m_node->m_key = name;
86
87
  return *(static_cast<Derived*>(this));
@@ -92,6 +92,7 @@ namespace karabo {
92
92
  /**
93
93
  * The <b>key</b> method serves for setting up a unique name for the element.
94
94
  * @param name Unique name for the key
95
+ * @param strict keep as true to get the strongly recommended strict validation of characters in 'name'
95
96
  * @return reference to the Element (to allow method's chaining)
96
97
  *
97
98
  * <b>Example:</b>
@@ -102,10 +103,10 @@ namespace karabo {
102
103
  * .commit();
103
104
  * @endcode
104
105
  */
105
- Derived& key(const std::string& key) {
106
+ Derived& key(const std::string& key, bool strict = true) {
106
107
  using namespace karabo::data;
107
108
  m_key = key;
108
- NODE_ELEMENT(m_schema).key(m_key).template appendParametersOf<Described>().commit();
109
+ NODE_ELEMENT(m_schema).key(m_key, strict).template appendParametersOf<Described>().commit();
109
110
 
110
111
  return *(static_cast<Derived*>(this));
111
112
  }
@@ -682,7 +682,7 @@ namespace karabo {
682
682
  remote().enableInstanceTracking();
683
683
 
684
684
  // Publish logger map read from disc. Do that as late as possible in the initialization procedure
685
- // to give those interested the chance to register their slots after we sent signalInstanceNew.
685
+ // to give those interested the chance to register their slots after we sent slotInstanceNew.
686
686
  {
687
687
  std::lock_guard<std::mutex> lock(
688
688
  m_loggerMapMutex); // m_loggerMap must not be changed while we process it
@@ -570,11 +570,14 @@ namespace karabo::net {
570
570
  << static_cast<int>(m_channelStatus);
571
571
  break;
572
572
  case ChannelStatus::CREATE_QUEUE: {
573
- m_channel->declareQueue(m_queue, AMQP::autodelete, m_queueArgs)
573
+ // auto-delete: deleted when last consumer is finished using it
574
+ // exclusive: can be accessed only from our connection, deleted when that closes
575
+ m_channel->declareQueue(m_queue, AMQP::autodelete + AMQP::exclusive, m_queueArgs)
574
576
  .onSuccess([wSelf](const std::string& name, int msgCount, int consumerCount) {
575
577
  if (auto self = wSelf.lock()) {
576
578
  if (consumerCount > 0) {
577
579
  // Queue already exists, but we need a unique one for us - attach timestamp
580
+ // (since queue is exclusive, happens only for same id using same connection)
578
581
  KARABO_LOG_FRAMEWORK_INFO_C("AmqpClient")
579
582
  << "Queue " << self->m_queue
580
583
  << " already has a consumer, append some bytes from clock and try again.";
@@ -601,15 +604,33 @@ namespace karabo::net {
601
604
  }) // end of success handler
602
605
  .onError([wSelf](const char* message) {
603
606
  if (auto self = wSelf.lock()) {
604
- const std::string queue(self->m_instanceId == self->m_queue ? "" : self->m_queue + " ");
605
- KARABO_LOG_FRAMEWORK_WARN_C("AmqpClient")
606
- << self->m_instanceId << ": Declaring queue " << queue << "failed: " << message;
607
- // reset channel
608
- self->m_channel.reset();
609
- self->m_channelStatus = ChannelStatus::REQUEST;
610
- AsyncHandler callback;
611
- callback.swap(self->m_channelPreparationCallback);
612
- callback(make_error_code(AmqpCppErrc::eCreateQueueError));
607
+ const std::string_view msg(message);
608
+ constexpr auto np = std::string::npos;
609
+ if (msg.find("RESOURCE_LOCKED") != np && msg.find("cannot obtain exclusive") != np) {
610
+ KARABO_LOG_FRAMEWORK_INFO
611
+ << "Queue " << self->m_queue
612
+ << " already created, append some bytes from clock and try again. "
613
+ << "Will recreate channel (was " << (self->m_channel->usable() ? "" : "not ")
614
+ << "OK)."; // should be not OK
615
+ std::ostringstream oss;
616
+ oss << ":" << std::hex << std::chrono::steady_clock::now().time_since_epoch().count();
617
+ self->m_queue += oss.str();
618
+ self->m_channelStatus = ChannelStatus::CREATE;
619
+ AsyncHandler callback;
620
+ callback.swap(self->m_channelPreparationCallback);
621
+ self->asyncPrepareChannel(std::move(callback));
622
+ } else {
623
+ const std::string queue(self->m_instanceId == self->m_queue ? ""
624
+ : self->m_queue + " ");
625
+ KARABO_LOG_FRAMEWORK_WARN << self->m_instanceId << ": Declaring queue " << queue
626
+ << "failed: " << message;
627
+ // reset channel
628
+ self->m_channel.reset();
629
+ self->m_channelStatus = ChannelStatus::REQUEST;
630
+ AsyncHandler callback;
631
+ callback.swap(self->m_channelPreparationCallback);
632
+ callback(make_error_code(AmqpCppErrc::eCreateQueueError));
633
+ }
613
634
  }
614
635
  }); // end of failure handler
615
636
  } break;