UI: TaskManagerRpc: Simplify processServerCommand()

This commit is contained in:
Nodir Temirkhodjaev 2024-10-01 10:27:03 +05:00
parent 923b7558ee
commit d43db00e2d

View File

@ -6,6 +6,43 @@
namespace { namespace {
bool processTaskManager_appVersionUpdated(
TaskManager *taskManager, const ProcessCommandArgs & /*p*/)
{
emit taskManager->appVersionUpdated();
return true;
}
bool processTaskManager_appVersionDownloaded(TaskManager *taskManager, const ProcessCommandArgs &p)
{
emit taskManager->appVersionDownloaded(p.args[0].toString());
return true;
}
bool processTaskManager_zonesDownloaded(TaskManager *taskManager, const ProcessCommandArgs &p)
{
emit taskManager->zonesDownloaded(p.args[0].toStringList());
return true;
}
using processTaskManagerSignal_func = bool (*)(
TaskManager *taskManager, const ProcessCommandArgs &p);
static const processTaskManagerSignal_func processTaskManagerSignal_funcList[] = {
&processTaskManager_appVersionUpdated, // Rpc_TaskManager_appVersionUpdated,
&processTaskManager_appVersionDownloaded, // Rpc_TaskManager_appVersionDownloaded,
&processTaskManager_zonesDownloaded, // Rpc_TaskManager_zonesDownloaded,
};
inline bool processTaskManagerRpcSignal(TaskManager *taskManager, const ProcessCommandArgs &p)
{
const processTaskManagerSignal_func func = RpcManager::getProcessFunc(p.command,
processTaskManagerSignal_funcList, Control::Rpc_TaskManager_appVersionUpdated,
Control::Rpc_TaskManager_zonesDownloaded);
return func ? func(taskManager, p) : false;
}
inline bool processTaskManager_runTask(TaskManager *taskManager, const ProcessCommandArgs &p) inline bool processTaskManager_runTask(TaskManager *taskManager, const ProcessCommandArgs &p)
{ {
taskManager->runTask(p.args.value(0).toInt()); taskManager->runTask(p.args.value(0).toInt());
@ -34,6 +71,26 @@ inline bool processTaskManager_taskFinished(TaskManager *taskManager, const Proc
return true; return true;
} }
inline bool processTaskManagerRpcResult(TaskManager *taskManager, const ProcessCommandArgs &p)
{
switch (p.command) {
case Control::Rpc_TaskManager_runTask: {
return processTaskManager_runTask(taskManager, p);
}
case Control::Rpc_TaskManager_abortTask: {
return processTaskManager_abortTask(taskManager, p);
}
case Control::Rpc_TaskManager_taskStarted: {
return processTaskManager_taskStarted(taskManager, p);
}
case Control::Rpc_TaskManager_taskFinished: {
return processTaskManager_taskFinished(taskManager, p);
}
default:
return false;
}
}
} }
TaskManagerRpc::TaskManagerRpc(QObject *parent) : TaskManager(parent) { } TaskManagerRpc::TaskManagerRpc(QObject *parent) : TaskManager(parent) { }
@ -78,32 +135,13 @@ bool TaskManagerRpc::processServerCommand(const ProcessCommandArgs &p, QVariantL
auto taskManager = IoC<TaskManager>(); auto taskManager = IoC<TaskManager>();
switch (p.command) { switch (p.command) {
case Control::Rpc_TaskManager_runTask: { case Control::Rpc_TaskManager_appVersionUpdated:
return processTaskManager_runTask(taskManager, p); case Control::Rpc_TaskManager_appVersionDownloaded:
}
case Control::Rpc_TaskManager_abortTask: {
return processTaskManager_abortTask(taskManager, p);
}
case Control::Rpc_TaskManager_taskStarted: {
return processTaskManager_taskStarted(taskManager, p);
}
case Control::Rpc_TaskManager_taskFinished: {
return processTaskManager_taskFinished(taskManager, p);
}
case Control::Rpc_TaskManager_appVersionUpdated: {
emit taskManager->appVersionUpdated();
return true;
}
case Control::Rpc_TaskManager_appVersionDownloaded: {
emit taskManager->appVersionDownloaded(p.args[0].toString());
return true;
}
case Control::Rpc_TaskManager_zonesDownloaded: { case Control::Rpc_TaskManager_zonesDownloaded: {
emit taskManager->zonesDownloaded(p.args[0].toStringList()); return processTaskManagerRpcSignal(taskManager, p);
return true;
} }
default: default:
return false; return processTaskManagerRpcResult(taskManager, p);
} }
} }