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.
|
inline |
\sreturn The hierarchical level from which we start to consider objects.
|
inline |
\sreturn The hierarchical level from which we stop to consider objects.
|
inline |
\sreturn The hierarchical depth of the current Query walkthrough.
|
inline |
\sreturn The cumulative transformation of the master cell currently under exploration.
References Hurricane::Transformation::getTransformation().
|
inline |
\sreturn The area to explore, expressed in the coordinates system of the current master cell under exploration. This is the starting area with the inverse of the current transformation applied.
|
inline |
\sreturn The BasicLayer we are filtering with.
|
inline |
\sreturn The master Cell currently under exploration.
|
inline |
\sreturn The Instance currently under exploration.
|
inline |
\sreturn The instanciation path between the instance currently under inspection and the top cell.
|
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.
|
inline |
|
inline |
Change the top area to query.
|
inline |
Change the transformation applied to the top level Cell.
|
virtual |
Change the BasicLayer selector.
|
inline |
Change the filtering mask for ExtensionSlice.
|
inline |
Change the filtering mask for object types.
|
inline |
Change the starting depth level.
|
inline |
Change the stoping depth level.
|
virtual |
Perform the actual Query.
Generated by doxygen 1.9.1 on Thu Aug 11 2022 | Return to top of page |
Hurricane VLSI Database | Copyright © 2000-2020 Bull S.A. All rights reserved |