| ## Public API Reference

- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- Alphabetical List
- Class List
- Class Hierarchy
- Class Members

# iJobQueue Struct Reference

Interface to simple job management. More...

`#include <iutil/job.h>`

Inheritance diagram for iJobQueue:

[legend]
List of all members.

## Public Member Functions
virtual void | Enqueue (iJob *job)=0
| Add a job to the queue.
virtual void | PullAndRun (iJob *job)=0
| Check if a job is still in the queue.
virtual void | Unqueue (iJob *job, bool waitIfCurrent=true)=0
| Remove a job from the queue.

## Detailed Description

Interface to simple job management.

Jobs are enqueued and run one after another, e.g. in another thread.

See also:
  csThreadJobQueue

Definition at line 47 of file job.h.

## Member Function Documentation

virtual void iJobQueue::Enqueue | ( | iJob * | job | ) | `[pure virtual]`

Add a job to the queue.

Implemented in csThreadJobQueue.

virtual void iJobQueue::PullAndRun | ( | iJob * | job | ) | `[pure virtual]`

Check if a job is still in the queue.

If yes, remove it from the queue and run it immediately.

Implemented in csThreadJobQueue.

virtual void iJobQueue::Unqueue | ( | iJob * | job,
|  | bool | waitIfCurrent = `true` |
| ) |  |  | `[pure virtual]`

Remove a job from the queue.

If the job is currently running and waitIfCurrent is true, wait until the job has finished. This guarantees that the queue won't hold any reference to the job object.

Implemented in csThreadJobQueue.

The documentation for this struct was generated from the following file:

- iutil/job.h