appro:优化输入判断。
This commit is contained in:
parent
15668ff112
commit
965be90c1e
@ -91,25 +91,27 @@ void CClient::run(const std::string& ip, const std::string& port)
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
auto vec = COfStr::split(cmd_input, " ");
|
auto vec = COfStr::split(cmd_input, " ");
|
||||||
if (vec.size() == 3) {
|
if (vec.size() < 2) {
|
||||||
if (vec[0] == "Update") {
|
|
||||||
request_update_list(vec[2], std::stoi(vec[1]));
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
logger_->error("No matched cmd, May be param size incorrect.");
|
|
||||||
} else if (vec.size() == 2) {
|
|
||||||
if (vec[0] == "Down") {
|
|
||||||
down_task(vec[1]);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (vec[0] == "Up") {
|
|
||||||
up_task(cmd_input);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
logger_->error("No matched cmd, May be param size incorrect.");
|
|
||||||
} else {
|
|
||||||
logger_->error("No matched cmd, May be param size incorrect.");
|
logger_->error("No matched cmd, May be param size incorrect.");
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
|
std::string param(cmd_input);
|
||||||
|
std::string scmd = param.substr(0, param.find_first_of(" "));
|
||||||
|
param.erase(0, param.find_first_of(" ") + 1);
|
||||||
|
|
||||||
|
if (scmd == "Update") {
|
||||||
|
request_update_list(param);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (scmd == "Down") {
|
||||||
|
down_task(param);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (scmd == "Up") {
|
||||||
|
up_task(param);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
logger_->error("No matched cmd, May be param size incorrect.");
|
||||||
}
|
}
|
||||||
client_->disconnect();
|
client_->disconnect();
|
||||||
thread.join();
|
thread.join();
|
||||||
@ -152,7 +154,7 @@ bool CClient::down_task(const std::string& param)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CClient::up_task(const std::string& cmd)
|
bool CClient::up_task(const std::string& param)
|
||||||
{
|
{
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -165,7 +167,7 @@ bool CClient::up_task(const std::string& cmd)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
auto list = CFileOpr::get_file_list(cmd);
|
auto list = CFileOpr::get_file_list(param);
|
||||||
std::string msg;
|
std::string msg;
|
||||||
for (const auto& item : list) {
|
for (const auto& item : list) {
|
||||||
|
|
||||||
@ -316,8 +318,16 @@ void CClient::report_trans_ret(TransState state, const std::string& key)
|
|||||||
|
|
||||||
功能为,请求某个客户端,更新我所列出的文件,右侧是远端需要存储的目录(必须存在,不存在则不理会)
|
功能为,请求某个客户端,更新我所列出的文件,右侧是远端需要存储的目录(必须存在,不存在则不理会)
|
||||||
*/
|
*/
|
||||||
bool CClient::request_update_list(const std::string& list_file, int index)
|
bool CClient::request_update_list(const std::string& param)
|
||||||
{
|
{
|
||||||
|
auto tvec = COfStr::split(param, " ");
|
||||||
|
if (tvec.size() < 2) {
|
||||||
|
logger_->error("{} invalid param format [{}]", __FUNCTION__, param);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
int index = std::stoi(tvec[0]);
|
||||||
|
std::string list_file = tvec[1];
|
||||||
|
|
||||||
if (downloading_) {
|
if (downloading_) {
|
||||||
logger_->warn("Have Task Downloading, Please wait.....");
|
logger_->warn("Have Task Downloading, Please wait.....");
|
||||||
return false;
|
return false;
|
||||||
@ -694,9 +704,7 @@ CFileOpr::~CFileOpr()
|
|||||||
std::vector<std::string> CFileOpr::get_file_list(const std::string& input)
|
std::vector<std::string> CFileOpr::get_file_list(const std::string& input)
|
||||||
{
|
{
|
||||||
std::vector<std::string> result;
|
std::vector<std::string> result;
|
||||||
std::string backup = input;
|
auto backup = COfStr::trim(input);
|
||||||
backup.erase(0, backup.find_first_of(" "));
|
|
||||||
backup = COfStr::trim(backup);
|
|
||||||
if (backup.empty()) {
|
if (backup.empty()) {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -43,11 +43,11 @@ public:
|
|||||||
public:
|
public:
|
||||||
bool get_task_list();
|
bool get_task_list();
|
||||||
bool down_task(const std::string& param);
|
bool down_task(const std::string& param);
|
||||||
bool up_task(const std::string& cmd);
|
bool up_task(const std::string& param);
|
||||||
bool cancel_task();
|
bool cancel_task();
|
||||||
bool down_one_file(const std::string& id, const std::string& file, const std::string& local_dir = "");
|
bool down_one_file(const std::string& id, const std::string& file, const std::string& local_dir = "");
|
||||||
void report_trans_ret(TransState state, const std::string& key = "");
|
void report_trans_ret(TransState state, const std::string& key = "");
|
||||||
bool request_update_list(const std::string& list_file, int index);
|
bool request_update_list(const std::string& param);
|
||||||
bool check_update_list(const std::string& content, std::map<std::string, std::string>& files);
|
bool check_update_list(const std::string& content, std::map<std::string, std::string>& files);
|
||||||
bool down_update_file(std::map<std::string, std::string> files);
|
bool down_update_file(std::map<std::string, std::string> files);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user