9#ifndef THREADWEAVER_QUEUEING_H
10#define THREADWEAVER_QUEUEING_H
12#include "collection.h"
13#include "jobinterface.h"
14#include "jobpointer.h"
16#include "managedjobpointer.h"
17#include "qobjectdecorator.h"
24QSharedPointer<Lambda<T>> make_job(T t)
26 QSharedPointer<Lambda<T>> ret(
new Lambda<T>(t));
32inline QSharedPointer<T> make_job(T *job)
34 JobInterface *test =
static_cast<JobInterface *
>(job);
36 return QSharedPointer<T>(job);
40inline JobPointer make_job_raw(JobInterface *job)
42 return ManagedJobPointer<JobInterface>(job);
47JobPointer enqueue(Queue *weaver, T t)
49 JobPointer ret = make_job(t);
55QSharedPointer<T> enqueue(Queue *weaver, T *t)
57 JobInterface *test =
static_cast<JobInterface *
>(t);
59 QSharedPointer<T> ret(make_job(t));
66inline JobPointer enqueue<JobPointer>(Queue *weaver, JobPointer job)
74JobPointer enqueue(T t)
76 return enqueue(Queue::instance(), t);
80inline JobPointer enqueue_raw(Queue *weaver, JobInterface *job)
82 return enqueue(weaver, make_job_raw(job));
86inline JobPointer enqueue_raw(JobInterface *job)
88 return enqueue(Queue::instance(), make_job_raw(job));