2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
|
|
|
|
#include "tfarmexecutor.h"
|
|
|
|
#include <QStringList>
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
TFarmExecutor::TFarmExecutor(int port) : TTcpIpServer(port) {}
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
2016-07-14 18:51:27 +12:00
|
|
|
static int extractArgs(const QString &s, std::vector<QString> &argv) {
|
2016-06-15 18:43:10 +12:00
|
|
|
argv.clear();
|
|
|
|
if (s == "") return 0;
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
QStringList sl = s.split(',');
|
|
|
|
int i;
|
|
|
|
for (i = 0; i < sl.size(); i++) argv.push_back(sl.at(i));
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
return argv.size();
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|
|
|
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void TFarmExecutor::onReceive(int socket, const QString &data) {
|
|
|
|
QString reply;
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
try {
|
|
|
|
std::vector<QString> argv;
|
|
|
|
extractArgs(data, argv);
|
|
|
|
reply = execute(argv);
|
|
|
|
} catch (...) {
|
|
|
|
}
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
sendReply(socket, reply);
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|