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;
}