37#include <unordered_map>
42#define JOBF(gofId, frameId, priority, func, ...) \
43 uvgvpcc_enc::JobManager::make_job(gofId, frameId, priority, std::string(#func), func, ##__VA_ARGS__)
45#define JOBG(gofId, priority, func, ...) uvgvpcc_enc::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:118
std::string getFuncName() const
Definition jobManagement.cpp:120
size_t getGofId() const
Definition jobManagement.cpp:116
std::string toString() const
Definition jobManagement.cpp:109
bool operator==(const jobKey &other) const
Definition jobManagement.cpp:122
Definition jobManagement.cpp:168
Definition jobManagement.hpp:80
static void initThreadQueue(uint16_t numThreads)
Definition jobManagement.cpp:138
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:127
static void submitCurrentGOFJobs()
Definition jobManagement.cpp:155
static std::unique_ptr< ThreadQueue > threadQueue
Definition jobManagement.hpp:81
static std::shared_ptr< Job > make_job(const size_t &gofId, std::size_t priority, std::string funcName, Func &&func, Args &&... args)
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 void submitCurrentFrameJobs()
Definition jobManagement.cpp:145
static std::unique_ptr< std::unordered_map< jobKey, std::shared_ptr< Job > > > currentGOFJobMap
Definition jobManagement.hpp:84
static std::unique_ptr< std::unordered_map< jobKey, std::shared_ptr< Job > > > previousFrameJobMap
Definition jobManagement.hpp:83
static std::unique_ptr< std::unordered_map< jobKey, std::shared_ptr< Job > > > previousGOFJobMap
Definition jobManagement.hpp:82
size_t gofId
Definition uvgvpcc.cpp:89