Public Member Functions

SeqCounterDriver Class Reference
[Internal Classes for sequence design (odinseq library)]

#include <seqcounter.h>

Inherits SeqDriverBase.

List of all members.

Public Member Functions

virtual bool prep_driver ()=0
virtual void update_driver (const SeqCounter *counter, const SeqObjList *seqlist, const List< SeqVector, const SeqVector *, const SeqVector & > *vectors) const =0
virtual double get_preduration () const =0
virtual double get_postduration () const =0
virtual double get_preduration_inloop () const =0
virtual double get_postduration_inloop () const =0
virtual bool create_program (programContext &context, const STD_string &loopkernel) const =0
virtual STD_string get_program_head (programContext &context, const STD_string &loopkernel, unsigned int times) const =0
virtual STD_string get_program_tail (programContext &context, const STD_string &loopkernel, unsigned int times) const =0
virtual STD_string get_program_head_unrolled (programContext &context, unsigned int index) const =0
virtual STD_string get_program_iterator (programContext &context) const =0
virtual void pre_vecprepevent (eventContext &context) const =0
virtual void post_vecprepevent (eventContext &context, int repcounter) const =0
virtual void outdate_cache () const =0
virtual bool unroll_program (const SeqCounter *counter, const SeqObjList *seqlist, const List< SeqVector, const SeqVector *, const SeqVector & > *vectors, programContext &context) const =0
virtual SeqCounterDriverclone_driver () const =0

Detailed Description

The base class for platform specific drivers of counters objects to iterate over vectors

Definition at line 38 of file seqcounter.h.


Member Function Documentation

virtual SeqCounterDriver* SeqCounterDriver::clone_driver (  )  const [pure virtual]

Return an exact copy of this driver

virtual bool SeqCounterDriver::create_program ( programContext context,
const STD_string &  loopkernel 
) const [pure virtual]

Asks driver whether a program has to be created at all for the given context and loopkernel, useful to avoid 'empty' loops in the program

virtual double SeqCounterDriver::get_postduration (  )  const [pure virtual]

Duration the loop itself takes after its kernel is iterated

virtual double SeqCounterDriver::get_postduration_inloop (  )  const [pure virtual]

Duration the loop itself takes after each iteration

virtual double SeqCounterDriver::get_preduration (  )  const [pure virtual]

Duration the loop itself takes before iteration is started

virtual double SeqCounterDriver::get_preduration_inloop (  )  const [pure virtual]

Duration the loop itself takes before each iteration

virtual STD_string SeqCounterDriver::get_program_head ( programContext context,
const STD_string &  loopkernel,
unsigned int  times 
) const [pure virtual]

Returns the head of the loop, i.e. code before the loop kernel

virtual STD_string SeqCounterDriver::get_program_head_unrolled ( programContext context,
unsigned int  index 
) const [pure virtual]

Returns the head of the loop, i.e. code before the loop kernel if the loop is unrolled

virtual STD_string SeqCounterDriver::get_program_iterator ( programContext context  )  const [pure virtual]

Returns commands to iterate vectors manually

virtual STD_string SeqCounterDriver::get_program_tail ( programContext context,
const STD_string &  loopkernel,
unsigned int  times 
) const [pure virtual]

Returns the tail of the loop, i.e. code after the loop kernel

virtual void SeqCounterDriver::outdate_cache (  )  const [pure virtual]

Will be called if any attribute of the counter was changed

virtual void SeqCounterDriver::post_vecprepevent ( eventContext context,
int  repcounter 
) const [pure virtual]

Will be called after vectors are prepped for the current iteration If repcounter>=0, the repetition display of the platform will be updated to 'repcounter'

virtual void SeqCounterDriver::pre_vecprepevent ( eventContext context  )  const [pure virtual]

Will be called before vectors are prepped for the current iteration

virtual bool SeqCounterDriver::prep_driver (  )  [pure virtual]

Will be called once during prepping the sequence

virtual bool SeqCounterDriver::unroll_program ( const SeqCounter counter,
const SeqObjList seqlist,
const List< SeqVector, const SeqVector *, const SeqVector & > *  vectors,
programContext context 
) const [pure virtual]

Asks driver whether the loop should be unrolled i.e. whether each iteration will be explicitely written to the program, seqlist can be zero

virtual void SeqCounterDriver::update_driver ( const SeqCounter counter,
const SeqObjList seqlist,
const List< SeqVector, const SeqVector *, const SeqVector & > *  vectors 
) const [pure virtual]

Function to update driver internals which is called before the driver is queried for actions, seqlist can be zero


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