Files
2026-07-17 15:30:29 +01:00

32 lines
696 B
C++

#ifndef HYDRATASK
#define HYDRATASK
#include "../engine/HydraObject.h"
#include <thread>
class CLASS_DEFINE HydraTask : public HydraObject
{
private:
int m_child_tasks = 0;
HydraID m_dependant_task = INVALID_HYDRA_ID;
HydraID m_barrierID = INVALID_HYDRA_ID;
std::thread::id m_notifyID;
HydraThreadAffinity ThreadAffinity = HydraThreadAffinity::General;
bool m_notifyThread = true;
void _RunTask();
friend class HydraTaskScheduler;
protected:
HydraID m_taskID;
public:
HydraID GetBarrierID() {return m_barrierID;}
virtual void Process() = 0;
virtual void Notify() {};
virtual void Complete() {};
};
#endif /* HYDRATASK */