ResponseCode CLI::RunPublish()

in cli/cli.cpp [187:232]


    ResponseCode CLI::RunPublish() {
        std::cout << "Entering Publish!" << std::endl;
        ResponseCode rc;
        uint16_t packet_id = 0;
        bool run_thread = true;
        util::String p_topic_name_str;
        util::String str;
        util::String payload_str;

        do {
            if (!p_topic_name_str.empty()) {
                std::cout << "Publish to same topic (" << p_topic_name_str << ") <yes/no>?";
                std::getline(std::cin, str);
                if (str != "yes" && str != "y" && str != "Y") {
                    std::cout << std::endl << "Enter topic name : ";
                    std::getline(std::cin, p_topic_name_str);
                }
            } else {
                std::cout << std::endl << "Enter topic name : ";
                std::getline(std::cin, p_topic_name_str);
            }

            std::unique_ptr<Utf8String> p_topic_name = Utf8String::Create(p_topic_name_str);

            if (!payload_str.empty()) {
                std::cout << "Use name payload (" << payload_str << ") <yes/no>?";
                std::getline(std::cin, str);
                if (str != "yes" && str != "y" && str != "Y") {
                    std::cout << std::endl << "Enter new payload : ";
                    std::getline(std::cin, payload_str);
                }
            } else {
                std::cout << std::endl << "Enter new payload : ";
                std::getline(std::cin, payload_str);
            }
            rc = p_iot_client_->PublishAsync(std::move(p_topic_name), false, false, mqtt::QoS::QOS1,
                                             payload_str, nullptr, packet_id);
            std::this_thread::sleep_for(std::chrono::seconds(1));
            std::cout << "Publish Packet Id : " << packet_id << std::endl;
            std::cout << "Publish more messages <yes/no>? " << std::flush;
            std::getline(std::cin, str);
            run_thread = (str == "yes" || str == "y" || str == "Y");
        } while (run_thread);

        return rc;
    }