| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 | // Copyright Takatoshi Kondo 2015//// 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_WILL_HPP)#define MQTT_WILL_HPP#include <string>#include <mqtt/namespace.hpp>#include <mqtt/namespace.hpp>#include <mqtt/move.hpp>#include <mqtt/publish.hpp>#include <mqtt/property_variant.hpp>namespace MQTT_NS {class will {public:    /**     * @brief constructor     * @param topic     *        A topic name to publish as a will     * @param message     *        The contents to publish as a will     * @param pubopts     *        Qos and retain flag     * @param qos     *        qos     */    will(buffer topic,         buffer message,         publish_options pubopts = {},         v5::properties props = {})        :topic_(force_move(topic)),         message_(force_move(message)),         pubopts_(pubopts),         props_(force_move(props))    {}    constexpr buffer const& topic() const {        return topic_;    }    constexpr buffer& topic() {        return topic_;    }    constexpr buffer const& message() const {        return message_;    }    constexpr buffer& message() {        return message_;    }    constexpr retain get_retain() const {        return pubopts_.get_retain();    }    constexpr qos get_qos() const {        return pubopts_.get_qos();    }    constexpr v5::properties const& props() const {        return props_;    }    constexpr v5::properties& props() {        return props_;    }private:    buffer topic_;    buffer message_;    publish_options pubopts_;    v5::properties props_;};} // namespace MQTT_NS#endif // MQTT_WILL_HPP
 |