oaRecursionObserver Class Reference

Inheritance diagram for oaRecursionObserver:

oaBaseObserver


Public Methods

 oaRecursionObserver (oaUInt4 priorityIn, oaBoolean enabledIn=true)
virtual ~oaRecursionObserver ()
virtual void onDetect (const oaDesign *design, const oaDesignArray &bottomUpList)
virtual void onBind (const oaRefHeader *header, const oaDesign *master, const oaDesignArray &bottomUpList)

Detailed Description

The oaRecursionObserver class is a base template class for recursion detection observers. It supports onDetect and onBind event notifications.

See oaObserver for information on using OpenAccess observer template classes to derive and instantiate observers in an application.


Constructor & Destructor Documentation

oaRecursionObserver::oaRecursionObserver oaUInt4    priorityIn,
oaBoolean    enabledIn = true
 

This is the default constructor for the oaRecursionObserver class. It adds this observer to the list of recursion observers. priorityIn is used to determine where the observer should be inserted. The observers are ordered by the priority from lowest to highest.

Parameters:
priorityIn priorityIn priority of this observer relative to other oaRecursionObserver observers
enabledIn Determines whether this observer is called when an observed event occurs

oaRecursionObserver::~oaRecursionObserver   [virtual]
 

This is the destructor for the oaRecursionObserver class. It removes this observer from the recursion observer list.


Member Function Documentation

void oaRecursionObserver::onBind const oaRefHeader *    header,
const oaDesign *    master,
const oaDesignArray &    bottomUpList
[virtual]
 

This function is called when a recursive reference is detected during the binding of block refHeaders. Specifically, when a design master has a recursive reference to the design that contains the refHeader, this notification is issued and the refHeader is left unbound. The intent of this notification isn't to repair the data but to report the detection of the recursion.

Parameters:
header A pointer to the refHeader that will be left unbound due to the recursion. The refHeader may be an instHeader of a viaHeader. An example of what could be reported is the lib/cell/view name of the instHeader's master or the viaDef name of the viaHeader.
master A pointer to the design master that has the recursive reference.
bottomUpList An array of design pointers that represent the list of designs that form the recursive loop.

void oaRecursionObserver::onDetect const oaDesign *    design,
const oaDesignArray &    bottomUpList
[virtual]
 

This function is called when a recursive reference is detected as the call to oaDesign::hasRecursion processes a design hierarchy. The notification is sent the design that the recursion was detected in and a bottom-up list of designs that form the recursive loop. The intent of this notification isn't to repair the data but to report the detection of the recursion.

Parameters:
design A pointer to the design where the recursion was detected.
bottomUpList An array of design pointers that represents the list of designs that form the recursive loop.


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

Return to top of page