Query description (API). More...
Public Types | |
| enum | QueryFilter { DoMasterCells = 1 , DoTerminalCells = 2 , DoComponents = 4 , DoMarkers = 8 , DoRubbers = 16 , DoExtensionGos = 32 , DoAll } |
Public Member Functions | |
| Query () | |
| virtual | ~Query () |
| unsigned int | getStartLevel () const |
| unsigned int | getStopLevel () const |
| size_t | getDepth () const |
| const Transformation & | getTransformation () const |
| const Box & | getArea () const |
| const BasicLayer * | getBasicLayer () const |
| Cell * | getMasterCell () |
| Instance * | getInstance () |
| Path | getPath () const |
| virtual bool | hasGoCallback () const |
| virtual bool | hasMarkerCallback () const |
| virtual bool | hasRubberCallback () const |
| virtual bool | hasExtensionGoCallback () const |
| virtual bool | hasMasterCellCallback () const |
| virtual void | goCallback (Go *)=0 |
| virtual void | markerCallback (Marker *) |
| virtual void | rubberCallback (Rubber *) |
| virtual void | extensionGoCallback (Go *)=0 |
| virtual void | masterCellCallback ()=0 |
| void | setQuery (Cell *cell, const Box &area, const Transformation &transformation, const BasicLayer *basicLayer, ExtensionSlice::Mask extensionMask, Mask filter, DbU::Unit threshold=0) |
| void | setCell (Cell *cell) |
| void | setArea (const Box &area) |
| void | setTransformation (const Transformation &transformation) |
| virtual void | setBasicLayer (const BasicLayer *basicLayer) |
| void | setExtensionMask (ExtensionSlice::Mask mode) |
| void | setFilter (Mask mode) |
| void | setStartLevel (unsigned int level) |
| void | setStopLevel (unsigned int level) |
| virtual void | doQuery () |
Query description (API).
The Query is a part of the trans-hierarchical mechanism. A Query performs a walktrough over all the Occurrences of objects under a determined area, thus providing a virtual flattening service. Please note that only placed objects (i.e. inserted in a QuadTree) are took into account.
To use the Query class the user has to create derived classes and overload the various callbacks. At least the following pure virtual methods must be overloaded:
A query walkthrough is defined by the following parameters:
Set of flags to specify on which types of objects the Query must iterate.
| Enumerator | |
|---|---|
| DoMasterCells | Activate the call of the Query::masterCellCallback(). |
| DoTerminalCells | Activate the call of the Query::masterCellCallback(), but only on leaf Cell of the hierarchy. |
| DoComponents | Activate the call of the Query::goCallback(). |
| DoMarkers | Activate the call of the Query::markerCallback(). |
| DoRubbers | Activate the call of the Query::rubberCallback(). |
| DoExtensionGos | Activate the call of the Query::extensionGoCallback(). |
| DoAll | Activate all the callbacks at once. |
| Hurricane::Query::Query | ( | ) |
Default constructor. Initialisation is done through Query::setQuery().
|
virtual |
Default destructor.
References getArea(), getBasicLayer(), getDepth(), getInstance(), getMasterCell(), getPath(), getStartLevel(), getStopLevel(), and getTransformation().
|
inline |
\sreturn The hierarchical level from which we start to consider objects.
References getStartLevel().
Referenced by getStartLevel(), and ~Query().
|
inline |
\sreturn The hierarchical level from which we stop to consider objects.
References getStopLevel().
Referenced by getStopLevel(), and ~Query().
|
inline |
\sreturn The hierarchical depth of the current Query walkthrough.
References getDepth().
Referenced by getDepth(), and ~Query().
|
inline |
\sreturn The cumulative transformation of the master cell currently under exploration.
References getTransformation().
Referenced by getTransformation(), and ~Query().
|
inline |
|
inline |
\sreturn The BasicLayer we are filtering with.
References getBasicLayer().
Referenced by getBasicLayer(), and ~Query().
|
inline |
\sreturn The master Cell currently under exploration.
References getMasterCell().
Referenced by getMasterCell(), and ~Query().
|
inline |
\sreturn The Instance currently under exploration.
References getInstance().
Referenced by getInstance(), and ~Query().
|
inline |
|
virtual |
\sreturn Tells wether the Go callback is present and should be called.
|
virtual |
\sreturn Tells wether the Marker callback is present and should be called.
|
virtual |
\sreturn Tells wether the Rubber callback is present and should be called.
|
virtual |
\sreturn Tells wether the ExtensionGo callback is present and should be called.
|
virtual |
\sreturn Tells wether the master Cell callback is present and should be called.
|
pure virtual |
\sreturn The method called on each encountered Go. This is a pure virtual method which must be overloaded in derived classes.
|
virtual |
\sreturn The method called on each encountered Marker. A default implementation is provided, which does absolutely nothing.
|
virtual |
\sreturn The method called on each encountered Rubber. A default implementation is provided, which does absolutely nothing.
|
pure virtual |
\sreturn The method called on each encountered ExtensionGo. This is a pure virtual method which must be overloaded in derived classes.
|
pure virtual |
| void Hurricane::Query::setQuery | ( | Cell * | cell, |
| const Box & | area, | ||
| const Transformation & | transformation, | ||
| const BasicLayer * | basicLayer, | ||
| ExtensionSlice::Mask | extensionMask, | ||
| Mask | filter, | ||
| DbU::Unit | threshold = 0 ) |
| cell | The top Cell on which to start the Query. |
| area | The area under which objects are queried. |
| transformation | An initial transformation to apply to cell. |
| basicLayer | Consider only objects containing this BasicLayer. |
| extensionMask | Consider only ExtensionGo matching this mask. |
| filter | Consider only objects of certain types, as defined in QueryFilter. |
Initialize the basic parameters of the Query. Those parameters can be changed individually afterwards with specific mutators.
References setArea(), setCell(), and setTransformation().
|
inline |
Change the top Cell on which to perform the Query.
References setCell().
Referenced by setCell(), and setQuery().
|
inline |
|
inline |
Change the transformation applied to the top level Cell.
References setTransformation().
Referenced by setQuery(), and setTransformation().
|
virtual |
Change the BasicLayer selector.
References setExtensionMask(), setFilter(), setStartLevel(), and setStopLevel().
|
inline |
Change the filtering mask for ExtensionSlice.
References setExtensionMask().
Referenced by setBasicLayer(), and setExtensionMask().
|
inline |
Change the filtering mask for object types.
References setFilter().
Referenced by setBasicLayer(), and setFilter().
|
inline |
Change the starting depth level.
References setStartLevel().
Referenced by setBasicLayer(), and setStartLevel().
|
inline |
Change the stoping depth level.
References setStopLevel().
Referenced by setBasicLayer(), and setStopLevel().
|
virtual |
Perform the actual Query.
| Generated by doxygen 1.16.1 on | Return to top of page |
| Hurricane VLSI Database | Copyright © 2000-2020 Bull S.A. All rights reserved |