Distribution_Service/Server/Task/TaskInfo.h
2025-12-09 19:09:12 +08:00

49 lines
1.2 KiB
C++

#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"
struct Dist_Tasks {
JSON_TYPE_INTRUSIVE(Dist_Tasks,TaskID,TaskType,Terms,AimIP,AimPort,ServerPort,SendOrder,TaskOrder);
int TaskID = -1;
int TaskType = 0;
CTL::String AimIP;
int AimPort = 10062;
int ServerPort = 10060;
CCVector<int> Terms;
int SendOrder = 0;
std::vector<char> TaskOrder{};
};
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;
int SendOrder = 0;
std::vector<char> TaskOrder{};
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);
static void StopAll();
};
#endif