Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Class Members

SmacqScheduler Class Reference

#include <SmacqScheduler.h>

Collaboration diagram for SmacqScheduler:

Collaboration graph
[legend]
List of all members.

Detailed Description

This is a scheduler for processing any number of SmacqGraphContainer instances.


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< DtsObjectoutputq

Friends

void * iterative_scheduler_thread_start (void *arg)


Constructor & Destructor Documentation

SmacqScheduler::SmacqScheduler  )  [inline]
 

A default graph must be specified.

Graph graph's init() method is called before anything else is done.


Member Function Documentation

bool SmacqScheduler::busy_loop  ) 
 

Run to completion.

Return false iff error.

smacq_result SmacqScheduler::decide SmacqGraph g,
DtsObject  din
 

Process a single action or object.

Return SMACQ_PASS or SMACQ_FREE.

smacq_result SmacqScheduler::decideContainer SmacqGraphContainer g,
DtsObject  din
 

Process a single action or object.

Return SMACQ_PASS or SMACQ_FREE.

bool SmacqScheduler::element DtsObject dout  ) 
 

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.

void SmacqScheduler::seed_produce SmacqGraphContainer  ) 
 

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.


The documentation for this class was generated from the following files:
Generated on Mon Aug 28 23:37:14 2006 for SMACQ by doxygen 1.3.5