iJobQueue Struct Reference (Crystal Space 2.0 Public API Reference)

| ## Public API Reference

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

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Types | Public Member Functions
iJobQueue Struct Reference

Interface to simple job management system. More...

`#include <iutil/job.h>`

Inheritance diagram for iJobQueue:

List of all members.

## Public Types
enum | JobStatus { NotEnqueued, Pending, Dequeued }
| Status values for Dequeue and PullAndRun. More...
## Public Member Functions
virtual JobStatus | Dequeue (iJob *job, bool waitForCompletion=false)=0
| Remove a job from the queue.
virtual void | Enqueue (iJob *job)=0
| Add a job to the queue.
virtual int32 | GetQueueCount ()=0
| Return the number of jobs in the queue.
virtual bool | IsFinished ()=0
| Return true if all enqueued jobs are finished.
virtual JobStatus | PullAndRun (iJob *job, bool waitForCompletion=true)=0
| Check if a job is still in the queue and, if so, remove it from the queue and run it immediately.
virtual void | WaitAll ()=0
| Wait for all jobs in queue to finish executing.

## Detailed Description

Interface to simple job management system.

The queue will execute the jobs according to the policy of the implementation, such as in parallel using multiple threads.

Remarks:
  Implementations makes no gurantees as to the order or latency for job execution.

See also:
  csThreadJobQueue

Definition at line 53 of file job.h.

## Member Enumeration Documentation

enum iJobQueue::JobStatus

Status values for Dequeue and PullAndRun.

Enumerator:

  NotEnqueued | The job was not enqueued.
  Pending | The job is currently running.
  Dequeued | The job was pulled from a queue and executed (PullAndRun()) resp. dropped (PullAndDrop())

Definition at line 63 of file job.h.

## Member Function Documentation

virtual JobStatus iJobQueue::Dequeue | ( | iJob * | job,
|  | bool | waitForCompletion = `false`
| ) |  | `[pure virtual]`

Remove a job from the queue.

If the job is currently running, this will wait for it to finish if waitForCompletion is `true`, otherwise nothing is done.

Remarks:
  The job queue will continue to hold a reference to the job if it is currently running (return value `Pending`). Wait for job completion if this is not desired.

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

Add a job to the queue.

virtual int32 iJobQueue::GetQueueCount | ( |  | ) | `[pure virtual]`

Return the number of jobs in the queue.

virtual bool iJobQueue::IsFinished | ( |  | ) | `[pure virtual]`

Return true if all enqueued jobs are finished.

Remarks:
  Might return wrong result if jobs are enqueued or dequeued from other threads during this call.

virtual JobStatus iJobQueue::PullAndRun | ( | iJob * | job,
|  | bool | waitForCompletion = `true`
| ) |  | `[pure virtual]`

Check if a job is still in the queue and, if so, remove it from the queue and run it immediately.

If a job is currently running, either wait for it (waitForCompletion is `true`) to finish or just let it be.

Remarks:
  The job queue will continue to hold a reference to the job if it is currently running (return value `Pending`). Wait for job completion if this is not desired.

virtual void iJobQueue::WaitAll | ( |  | ) | `[pure virtual]`

Wait for all jobs in queue to finish executing.

Remarks:
  Might return prematurely if jobs are enqueued or dequeued from other threads during this call.

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

- iutil/job.h