Distribution_Service/Server/Task/TaskInfo.h

49 lines
1.2 KiB
C
Raw Normal View History

2025-12-04 18:12:54 +08:00
#ifndef DISTRIBUTION_SERVICE_TASK_INFO_H
#define DISTRIBUTION_SERVICE_TASK_INFO_H
#include "CCDatagramSocket.h"
#include "CCThreadPool.h"
#include "TL/Map.h"
#include "PushFlowTask.h"
2025-12-05 16:46:23 +08:00
struct Dist_Tasks {
2025-12-09 19:09:12 +08:00
JSON_TYPE_INTRUSIVE(Dist_Tasks,TaskID,TaskType,Terms,AimIP,AimPort,ServerPort,SendOrder,TaskOrder);
2025-12-05 16:46:23 +08:00
int TaskID = -1;
int TaskType = 0;
CTL::String AimIP;
int AimPort = 10062;
int ServerPort = 10060;
CCVector<int> Terms;
2025-12-09 19:09:12 +08:00
int SendOrder = 0;
std::vector<char> TaskOrder{};
2025-12-05 16:46:23 +08:00
};
2025-12-04 18:12:54 +08:00
class TaskInfo {
2026-03-24 14:43:26 +08:00
static CTL::Map<int,TaskInfo*> TaskInfoMap;
static CTL::DatagramSocket* socket;
static std::shared_mutex mutex_socket;
2025-12-04 18:12:54 +08:00
public:
2026-03-24 14:43:26 +08:00
static CTL::ThreadPool thread_pool;
2025-12-04 18:12:54 +08:00
TaskInfo();
~TaskInfo();
void BitstreamHeartbeat();
int Flag = 0;
int Type = 0;
int TaskID = -1;
int TaskType = 0;
int ServerPort = 10060;
2025-12-09 19:09:12 +08:00
int SendOrder = 0;
std::vector<char> TaskOrder{};
2025-12-04 18:12:54 +08:00
CTL::Map<int, int> Terms;
PushFlowTask* pushFlowTask = nullptr;
private:
public:
static void InitSocket();
static void Start(TaskInfo* taskInfo);
static void Stop(int TaskID);
static TaskInfo* getData(int TaskID);
2025-12-06 10:48:12 +08:00
static void StopAll();
2025-12-04 18:12:54 +08:00
};
#endif