#include <job_queue.hpp>
template<typename T>
job_queue class
A generic job queue structure that implements the classical consumer-producer pattern. It's thread-safe and can be used to transfer any type.
Example
#include <job_queue.hpp> // at most 100 integers can be placed on the queue mt::job_queue<int> jq(100); // in some producer thread jq.add_job(1); // in some consumer thread jq.pop_job(); // to signal that a job queue is inactive and no more threads should use it jq.stop_queue();
Constructors, destructors, conversion operators
- job_queue(size_t cap)
- Construct a new job queue object.
Public functions
- auto add_job(const T& job) -> bool -> auto
- Add a new job to the queue.
- auto pop_job() -> T -> auto
- Pop a job from the queue.
- void stop_queue()
- Mark the queue as inactive and notify all waiters.
- auto size() const -> size_t -> auto
- Return the size of the queue.
- auto cap() const -> size_t -> auto
- Return the capacity of the queue.
Function documentation
template<typename T>
mt:: job_queue<T>:: job_queue(size_t cap)
Construct a new job queue object.
| Parameters | |
|---|---|
| cap | capacity of the job queue |
template<typename T>
auto mt:: job_queue<T>:: add_job(const T& job) -> bool
Add a new job to the queue.
| Parameters | |
|---|---|
| job | new job to be placed onto the queue |
| Returns | true if job was successfully added to the queue |
template<typename T>
auto mt:: job_queue<T>:: pop_job() -> T
Pop a job from the queue.
| Returns | T is the job returned. It's empty if failed to pop job |
|---|
template<typename T>
auto mt:: job_queue<T>:: size() const -> size_t
Return the size of the queue.
| Returns | size_t, the size of the queue |
|---|
template<typename T>
auto mt:: job_queue<T>:: cap() const -> size_t
Return the capacity of the queue.
| Returns | size_t, the capacity of the queue |
|---|