40#include <robin_hood.h>
43#define JOBF(gofId, frameId, priority, func, ...) \
44 uvgutils::JobManager::make_job(gofId, frameId, priority, std::string(#func), func, ##__VA_ARGS__)
46#define JOBG(gofId, priority, func, ...) uvgutils::JobManager::make_job(gofId, priority, std::string(#func), func, ##__VA_ARGS__)
48#define TO_STRING(x) #x
55 std::optional<size_t> frameId_;
56 std::string funcName_;
59 jobKey(
const size_t&
gofId,
const size_t& frameId,
const std::string& funcName);
60 jobKey(
const size_t&
gofId,
const std::string& funcName);
83 static std::unique_ptr<robin_hood::unordered_map<jobKey, std::shared_ptr<Job>>>
previousGOFJobMap;
85 static std::unique_ptr<robin_hood::unordered_map<jobKey, std::shared_ptr<Job>>>
currentGOFJobMap;
86 static std::unique_ptr<robin_hood::unordered_map<jobKey, std::shared_ptr<Job>>>
currentFrameJobMap;
88 template <
typename Func,
typename... Args>
89 static std::shared_ptr<Job>
make_job(
const size_t&
gofId,
const size_t& frameId, std::size_t priority, std::string funcName, Func&& func,
92 template <
typename Func,
typename... Args>
93 static std::shared_ptr<Job>
make_job(
const size_t&
gofId, std::size_t priority, std::string funcName, Func&& func, Args&&... args);
95 static std::shared_ptr<Job>
getJob(
size_t gofId,
size_t frameId,
const std::string& funcName);
96 static std::shared_ptr<Job>
getJob(
size_t gofId,
const std::string& funcName);
107#include "jobManagement.tpp"
Definition jobManagement.hpp:52
std::optional< size_t > getFrameId() const
Definition jobManagement.cpp:119
size_t getGofId() const
Definition jobManagement.cpp:117
std::string getFuncName() const
Definition jobManagement.cpp:121
bool operator==(const jobKey &other) const
Definition jobManagement.cpp:123
std::string toString() const
Definition jobManagement.cpp:110
Definition jobManagement.hpp:72
Definition jobManagement.hpp:50
Definition jobManagement.hpp:81
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::shared_ptr< Job > getJob(size_t gofId, size_t frameId, const std::string &funcName)
Definition jobManagement.cpp:128
static void submitCurrentFrameJobs()
Definition jobManagement.cpp:146
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< robin_hood::unordered_map< jobKey, std::shared_ptr< Job > > > previousGOFJobMap
Definition jobManagement.hpp:83
static void initThreadQueue(uint16_t numThreads)
Definition jobManagement.cpp:139
static void submitCurrentGOFJobs()
Definition jobManagement.cpp:156
static std::unique_ptr< ThreadQueue > threadQueue
Definition jobManagement.hpp:82
static std::unique_ptr< robin_hood::unordered_map< jobKey, std::shared_ptr< Job > > > currentFrameJobMap
Definition jobManagement.hpp:86
static std::unique_ptr< robin_hood::unordered_map< jobKey, std::shared_ptr< Job > > > currentGOFJobMap
Definition jobManagement.hpp:85
static std::unique_ptr< robin_hood::unordered_map< jobKey, std::shared_ptr< Job > > > previousFrameJobMap
Definition jobManagement.hpp:84
size_t gofId
Definition uvgvpccenc.cpp:94