37#include <unordered_map>
42#define JOBF(gofId, frameId, priority, func, ...) \
43 uvgutils::JobManager::make_job(gofId, frameId, priority, std::string(#func), func, ##__VA_ARGS__)
45#define JOBG(gofId, priority, func, ...) uvgutils::JobManager::make_job(gofId, priority, std::string(#func), func, ##__VA_ARGS__)
47#define TO_STRING(x) #x
54 std::optional<size_t> frameId_;
55 std::string funcName_;
58 jobKey(
const size_t&
gofId,
const size_t& frameId,
const std::string& funcName);
59 jobKey(
const size_t&
gofId,
const std::string& funcName);
84 static std::unique_ptr<std::unordered_map<jobKey, std::shared_ptr<Job>>>
currentGOFJobMap;
87 template <
typename Func,
typename... Args>
88 static std::shared_ptr<Job>
make_job(
const size_t&
gofId,
const size_t& frameId, std::size_t priority, std::string funcName, Func&& func,
91 template <
typename Func,
typename... Args>
92 static std::shared_ptr<Job>
make_job(
const size_t&
gofId, std::size_t priority, std::string funcName, Func&& func, Args&&... args);
94 static std::shared_ptr<Job>
getJob(
size_t gofId,
size_t frameId,
const std::string& funcName);
95 static std::shared_ptr<Job>
getJob(
size_t gofId,
const std::string& funcName);
106#include "jobManagement.tpp"
Definition jobManagement.hpp:51
std::optional< size_t > getFrameId() const
Definition jobManagement.cpp:117
size_t getGofId() const
Definition jobManagement.cpp:115
std::string getFuncName() const
Definition jobManagement.cpp:119
bool operator==(const jobKey &other) const
Definition jobManagement.cpp:121
std::string toString() const
Definition jobManagement.cpp:108
Definition jobManagement.hpp:71
Definition jobManagement.hpp:49
Definition jobManagement.hpp:80
static std::unique_ptr< std::unordered_map< jobKey, std::shared_ptr< Job > > > previousFrameJobMap
Definition jobManagement.hpp:83
static std::shared_ptr< Job > make_job(const size_t &gofId, const size_t &frameId, std::size_t priority, std::string funcName, Func &&func, Args &&... args)
static std::unique_ptr< std::unordered_map< jobKey, std::shared_ptr< Job > > > currentFrameJobMap
Definition jobManagement.hpp:85
static std::shared_ptr< Job > getJob(size_t gofId, size_t frameId, const std::string &funcName)
Definition jobManagement.cpp:126
static void submitCurrentFrameJobs()
Definition jobManagement.cpp:144
static std::shared_ptr< Job > make_job(const size_t &gofId, std::size_t priority, std::string funcName, Func &&func, Args &&... args)
static std::unique_ptr< std::unordered_map< jobKey, std::shared_ptr< Job > > > previousGOFJobMap
Definition jobManagement.hpp:82
static void initThreadQueue(uint16_t numThreads)
Definition jobManagement.cpp:137
static void submitCurrentGOFJobs()
Definition jobManagement.cpp:154
static std::unique_ptr< ThreadQueue > threadQueue
Definition jobManagement.hpp:81
static std::unique_ptr< std::unordered_map< jobKey, std::shared_ptr< Job > > > currentGOFJobMap
Definition jobManagement.hpp:84
size_t gofId
Definition uvgvpcc.cpp:89