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 {
inline static CTL::Map<int,TaskInfo*> TaskInfoMap;
inline static CTL::DatagramSocket* socket = nullptr;
inline static std::shared_mutex mutex_socket;
public:
inline static CTL::ThreadPool thread_pool;
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