BluFedora Job System v1.0.0
This is a C++ job system library for use in game engines.
|
#include <job_queue.hpp>
Public Types | |
using | size_type = std::size_t |
Public Member Functions | |
void | Initialize (T *const memory_backing, const size_type capacity) noexcept |
bool | Push (const T &value) |
bool | Pop (T *const out_value) |
Private Member Functions | |
size_type | mask (const size_type raw_index) const noexcept |
T * | elementAt (const size_type raw_index) const noexcept |
Private Attributes | |
std::mutex | m_Lock |
T * | m_Data |
size_type | m_Capacity |
size_type | m_CapacityMask |
size_type | m_WriteIndex |
size_type | m_Size |
Definition at line 35 of file job_queue.hpp.
using Job::LockedQueue< T >::size_type = std::size_t |
Definition at line 38 of file job_queue.hpp.
|
inlinenoexcept |
Definition at line 49 of file job_queue.hpp.
References JobAssert, Job::LockedQueue< T >::m_Capacity, Job::LockedQueue< T >::m_CapacityMask, Job::LockedQueue< T >::m_Data, Job::LockedQueue< T >::m_Size, and Job::LockedQueue< T >::m_WriteIndex.
|
inline |
Definition at line 60 of file job_queue.hpp.
References Job::LockedQueue< T >::elementAt(), Job::LockedQueue< T >::m_Capacity, Job::LockedQueue< T >::m_Lock, Job::LockedQueue< T >::m_Size, and Job::LockedQueue< T >::m_WriteIndex.
Referenced by Job::TaskSubmit().
|
inline |
Definition at line 76 of file job_queue.hpp.
References Job::LockedQueue< T >::elementAt(), JobAssert, Job::LockedQueue< T >::m_Lock, Job::LockedQueue< T >::m_Size, and Job::LockedQueue< T >::m_WriteIndex.
|
inlineprivatenoexcept |
Definition at line 95 of file job_queue.hpp.
References Job::LockedQueue< T >::m_CapacityMask.
Referenced by Job::LockedQueue< T >::elementAt().
|
inlineprivatenoexcept |
Definition at line 100 of file job_queue.hpp.
References Job::LockedQueue< T >::m_Data, and Job::LockedQueue< T >::mask().
Referenced by Job::LockedQueue< T >::Pop(), and Job::LockedQueue< T >::Push().
|
private |
Definition at line 41 of file job_queue.hpp.
Referenced by Job::LockedQueue< T >::Pop(), and Job::LockedQueue< T >::Push().
|
private |
Definition at line 42 of file job_queue.hpp.
Referenced by Job::LockedQueue< T >::elementAt(), and Job::LockedQueue< T >::Initialize().
|
private |
Definition at line 43 of file job_queue.hpp.
Referenced by Job::LockedQueue< T >::Initialize(), and Job::LockedQueue< T >::Push().
|
private |
Definition at line 44 of file job_queue.hpp.
Referenced by Job::LockedQueue< T >::Initialize(), and Job::LockedQueue< T >::mask().
|
private |
Definition at line 45 of file job_queue.hpp.
Referenced by Job::LockedQueue< T >::Initialize(), Job::LockedQueue< T >::Pop(), and Job::LockedQueue< T >::Push().
|
private |
Definition at line 46 of file job_queue.hpp.
Referenced by Job::LockedQueue< T >::Initialize(), Job::LockedQueue< T >::Pop(), and Job::LockedQueue< T >::Push().