#include <SmacqScheduler.h>
Public Member Functions | |
SmacqScheduler () | |
A default graph must be specified. | |
void | setDebug () |
Set debug output. | |
bool | isDebug () |
Get debug status. | |
void | seed_produce (SmacqGraph *) |
Cue the head(s) of the given graph to start producing data. | |
void | seed_produce (SmacqGraphNode *startf) |
Cue the graph to start producing data. | |
void | input (SmacqGraph *g, DtsObject din) |
Queue an object for input to the specified graph. | |
DtsObject | get () |
Run until an output object is ready, and return that object. | |
smacq_result | decide (SmacqGraphNode *, DtsObject din) |
Process a single action or object. | |
smacq_result | decideContainer (SmacqGraph *, DtsObject din) |
Process a single action or object. | |
bool | busy_loop () |
Run to completion. | |
void | enqueue (SmacqGraphNode *f, DtsObject d, int outchan) |
Handle an object produced by a currently running node. | |
void | queue_children (SmacqGraphNode_ptr, DtsObject d, int outchan) |
Handle an object produced by the specified node. | |
bool | element (DtsObject &dout) |
Process a single action or object. | |
DtsObject | pyelement () |
Created for the python smacq library Process a single action or object, if output is produced, return that output. | |
bool | done () |
Return true if the query is done processing. | |
void | start_threads (int numt) |
Create some threads to process the current workload. | |
Public Attributes | |
runq< SmacqGraphNode_ptr > | consumeq |
runq< SmacqGraphNode_ptr > | produceq |
runq< DtsObject > | outputq |
SmacqScheduler::SmacqScheduler | ( | ) | [inline] |
A default graph must be specified.
Graph graph's init() method is called before anything else is done.
bool SmacqScheduler::busy_loop | ( | ) |
Run to completion.
Process until completion. Returns true unless there is an error. Ignores any output.
Return false iff error.
smacq_result SmacqScheduler::decide | ( | SmacqGraphNode * | g, | |
DtsObject | din | |||
) |
Process a single action or object.
Take an input and run it through a boolean graph.
Return SMACQ_PASS or SMACQ_FREE.
smacq_result SmacqScheduler::decideContainer | ( | SmacqGraph * | g, | |
DtsObject | din | |||
) |
Process a single action or object.
Take an input and run it through a boolean graph.
Return SMACQ_PASS or SMACQ_FREE.
bool SmacqScheduler::element | ( | DtsObject & | dout | ) |
Process a single action or object.
Do a _little_ work.
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.
DtsObject SmacqScheduler::get | ( | ) |
Run until an output object is ready, and return that object.
Return NULL if execution completes without producing object.
DtsObject SmacqScheduler::pyelement | ( | ) |
Created for the python smacq library Process a single action or object, if output is produced, return that output.
void SmacqScheduler::seed_produce | ( | SmacqGraph * | startf | ) |
Cue the head(s) of the given graph to start producing data.
Otherwise data must be provided using the input() method.
void SmacqScheduler::start_threads | ( | int | numt | ) |
Create some threads to process the current workload.
They will exit when there is nothing to do.