Executes one or more Operations in sequence in a separate thread. More...

#include <OperationThread.h>

Inheritance diagram for dsp::OperationThread:
dsp::Operation OwnStream Reference::Able Reference::HeapTracked

Public Member Functions

 OperationThread (Operation *=0)
 Default constructor with optional first Operation.
 
 ~OperationThread ()
 Destructor destroys all Operation instances.
 
void append_operation (Operation *op)
 Append operation to the list of operations, thread state must be Idle.
 
void reserve ()
 Calls the reserve method of each Operation.
 
void prepare ()
 Calls the prepare method of each Operation.
 
void add_extensions (Extensions *ext)
 Calls the add_extensions method of each Operation.
 
void operation ()
 Signals the operation thread to start.
 
void combine (const Operation *)
 Calls the combine method of each Operation.
 
void report () const
 Calls the report method of each Operation.
 
uint64_t bytes_storage () const override
 The number of bytes of additional storage used by the operation.
 
uint64_t bytes_scratch () const override
 The number of bytes of scratch space used by the operation.
 
void reset ()
 Calls the reset method of each Operation.
 
Wait * get_wait ()
 Return a new Wait operation for this thread.
 
unsigned get_nop () const
 
Operationget_op (unsigned i)
 
- Public Member Functions inherited from dsp::Operation
 Operation (const char *name)
 All sub-classes must specify a unique name. More...
 
 Operation (const Operation &)
 Copy constructor.
 
virtual ~Operation ()
 Virtual destructor.
 
virtual bool operate ()
 Call this method to operate on data Returns false on failure. More...
 
std::string get_name () const
 Return the unique name of this operation.
 
double get_total_time () const
 Return the total time spent on this Operation in seconds.
 
double get_elapsed_time () const
 Get the time spent in the last invocation of operate()
 
virtual uint64_t get_total_weights () const
 Return the total number of timesample weights encountered. More...
 
virtual uint64_t get_discarded_weights () const
 Return the number of invalid timesample weights encountered.
 
int get_id ()
 Inquire the unique instantiation id.
 
virtual Function get_function () const
 Get the function classification of this operation.
 
virtual double get_delay_time () const
 Get the time delay of this operation, if any, in seconds.
 
virtual void set_scratch (Scratch *)
 Set the scratch space.
 
bool scratch_was_set () const
 
- Public Member Functions inherited from OwnStream
 OwnStream (const OwnStream &)
 
const OwnStreamoperator= (const OwnStream &)
 
virtual void set_cout (std::ostream &) const
 
virtual void set_cerr (std::ostream &) const
 
- Public Member Functions inherited from Reference::Able
 Able (const Able &)
 
Ableoperator= (const Able &)
 
unsigned get_reference_count () const
 
- Public Member Functions inherited from Reference::HeapTracked
 HeapTracked (const HeapTracked &)
 
HeapTrackedoperator= (const HeapTracked &)
 
bool __is_on_heap () const
 

Protected Types

enum  State { Idle, Active, Quit }
 

Protected Member Functions

void thread ()
 Calls the operation method of each Operation instance.
 
- Protected Member Functions inherited from dsp::Operation
virtual bool can_operate ()
 Return false if the operation doesn't have enough data to proceed.
 
virtual void set_name (const std::string &_name)
 Set the name!
 
int timers_index (const std::string &op_name)
 Returns the index in the 'timers' array of a particular timer.
 
- Protected Member Functions inherited from Reference::Able
Handle__reference (bool active) const
 
void __dereference (bool auto_delete=true) const
 

Static Protected Member Functions

static void * operation_thread (void *)
 Operation thread calls thread method.
 

Protected Attributes

std::vector< Reference::To< Operation > > operations
 The operations performed on each call to operation.
 
ThreadContextcontext
 Used to communicate between calling thread and operation thread.
 
pthread_t id
 
State state
 
- Protected Attributes inherited from dsp::Operation
Scratchscratch
 Shared scratch space, if needed.
 
bool set_scratch_called
 
std::string name
 Operation name.
 
uint64_t discarded_weights
 Number of time sample weights encountered that are flagged invalid.
 
uint64_t total_weights
 Total number of time sample weights encountered.
 
RealTimer optime
 Stop watch records the amount of time spent performing this operation.
 
int id
 Unique instantiation id.
 
bool prepared
 Set true when preparation optimizations are completed.
 

Additional Inherited Members

- Public Types inherited from dsp::Operation
enum  Function { Producer, Procedural, Structural }
 The function of the operator. More...
 
- Static Public Member Functions inherited from Reference::Able
static size_t get_instance_count ()
 
- Static Public Member Functions inherited from Reference::HeapTracked
static void * operator new (size_t size, void *ptr=0)
 
static void operator delete (void *location, void *ptr)
 
static void operator delete (void *location)
 
static size_t get_heap_queue_size ()
 
- Static Public Attributes inherited from dsp::Operation
static bool record_time = false
 Global flag enables stopwatch to record the time spent operating. More...
 
static bool report_time = true
 Global flag enables report of time spent in operation on descruction. More...
 
static bool verbose = false
 Global verbosity flag.
 
static int operation_status = 0
 Operations can set this to non-zero in operation() if they fail.
 
static bool check_state = true
 Operations should perform internal consistency checks.
 
static int instantiation_count = 0
 Counts how many Operation instantiations there have been Used for setting the unique instantiation ID. More...
 

Detailed Description

Executes one or more Operations in sequence in a separate thread.

The Operations are performed in the order that they are added


The documentation for this class was generated from the following files:

Generated using doxygen 1.8.17