| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 | 
							- // Copyright Takatoshi Kondo 2020
 
- //
 
- // Distributed under the Boost Software License, Version 1.0.
 
- // (See accompanying file LICENSE_1_0.txt or copy at
 
- // http://www.boost.org/LICENSE_1_0.txt)
 
- #if !defined(MQTT_BROKER_PROPERTY_UTIL_HPP)
 
- #define MQTT_BROKER_PROPERTY_UTIL_HPP
 
- #include <mqtt/config.hpp>
 
- #include <mqtt/broker/broker_namespace.hpp>
 
- #include <mqtt/optional.hpp>
 
- #include <mqtt/property_variant.hpp>
 
- #include <mqtt/visitor_util.hpp>
 
- MQTT_BROKER_NS_BEGIN
 
- template <typename T>
 
- inline optional<T> get_property(v5::properties const& props) {
 
-     optional<T> result;
 
-     auto visitor = make_lambda_visitor(
 
-         [&result](T const& t) { result = t; },
 
-         [](auto const&) { }
 
-     );
 
-     for (auto const& p : props) {
 
-         MQTT_NS::visit(visitor, p);
 
-     }
 
-     return result;
 
- }
 
- template <typename T>
 
- inline void set_property(v5::properties& props, T&& v) {
 
-     auto visitor = make_lambda_visitor(
 
-         [&v](T& t) mutable { t = std::forward<T>(v); },
 
-         [](auto&) { }
 
-     );
 
-     for (auto& p : props) {
 
-         MQTT_NS::visit(visitor, p);
 
-     }
 
- }
 
- MQTT_BROKER_NS_END
 
- #endif // MQTT_BROKER_PROPERTY_UTIL_HPP
 
 
  |