#include <SmacqScheduler.h>
Collaboration diagram for SmacqScheduler:
Public Member Functions | |
SmacqScheduler () | |
A default graph must be specified. | |
void | setDebug () |
Set debug output. | |
bool | isDebug () |
Get debug status. | |
void | seed_produce (SmacqGraphContainer *) |
Cue the head(s) of the given graph to start producing data. | |
void | seed_produce (SmacqGraph *startf) |
Cue the graph to start producing data. | |
void | input (SmacqGraphContainer *g, DtsObject din) |
Queue an object for input to the specified graph. | |
bool | get (DtsObject &dout) |
Run until an output object is ready. | |
smacq_result | decide (SmacqGraph *, DtsObject din) |
Process a single action or object. | |
smacq_result | decideContainer (SmacqGraphContainer *, DtsObject din) |
Process a single action or object. | |
bool | busy_loop () |
Run to completion. | |
void | enqueue (SmacqGraph *f, DtsObject d, int outchan) |
Handle an object produced by a currently running node. | |
void | queue_children (SmacqGraph_ptr, DtsObject d, int outchan) |
Handle an object produced by the specified node. | |
bool | element (DtsObject &dout) |
Process a single action or object. | |
void | start_threads (int numt) |
Create some threads to process the current workload. | |
Public Attributes | |
runq< SmacqGraph_ptr > | consumeq |
runq< SmacqGraph_ptr > | produceq |
runq< DtsObject > | outputq |
Friends | |
void * | iterative_scheduler_thread_start (void *arg) |
|
A default graph must be specified. Graph graph's init() method is called before anything else is done. |
|
Run to completion. Return false iff error. |
|
Process a single action or object. Return SMACQ_PASS or SMACQ_FREE. |
|
Process a single action or object. Return SMACQ_PASS or SMACQ_FREE. |
|
Process a single action or object. dout will be set to NULL or to a returned object. Returns false if we're done and true if we want to be called again. |
|
Cue the head(s) of the given graph to start producing data. Otherwise data must be provided using the input() method. |
|
Create some threads to process the current workload. They will exit when there is nothing to do. |