oaLPPHeader Class Reference

Inheritance diagram for oaLPPHeader:

oaBlockObject oaDesignObject oaObject


Public Methods

oaLayergetLayer () const
oaPurposegetPurpose () const
oaLayerHeadergetLayerHeader () const
oaLayerNum getLayerNum () const
oaPurposeNum getPurposeNum () const
void getShapeBBox (oaBox &bBox) const
oaCollection< oaShape, oaLPPHeader > getShapes () const
oaBoolean isBound () const

Static Public Methods

oaLPPHeader * find (const oaBlock *block, oaLayerNum layerNum, oaPurposeNum purposeNum)

Public Types

enum  { dtIndex = oacLPPHeaderDataType }

Detailed Description

The oaLPPHeader class implements persistent objects that are created and destroyed automatically on an as-needed basis. The existence of an oaLPPHeader object indicates that the layer-purpose pair it represents is currently being used by an oaShape object in the design hierarchy in the block where the oaLPPHeader resides.

During binding, LPPHeaders at lower levels of the design hierarchy are promoted up the design hierarchy. As a result, the top block of a given design will have an LPPHeader for every LPPHeader that exists in the top block of every bound, instantiated design. Designs that do not have top blocks also do not have LPPHeaders, and LPPHeader promotion will not occur across such designs.

The oaLPPHeader class can be observed by deriving from oaObserver<oaLPPHeader>.


Member Function Documentation

oaLPPHeader * oaLPPHeader::find const oaBlock *    block,
oaLayerNum    layerNum,
oaPurposeNum    purposeNum
[static]
 

This function searches the specified block looking for an LPPHeader with the specified layer number and purpose number. If the LPPHeader is found, it is returned. Otherwise, a NULL value is returned.

oaLayer * oaLPPHeader::getLayer   const
 

This function attempts to return the pointer to the technology oaLayer object that corresponds to the layer that this oaLPPHeader represents. If this lppHeader cannot be bound, a NULL value is returned.

oaLayerHeader * oaLPPHeader::getLayerHeader   const
 

This function returns the layerHeader to which this lppHeader is attached. An oaLPPHeader object is always attached to an oaLayerHeader which has the same layer as the oaLPPHeader object. If an oaLayerHeader object with the same layer does not exist when the oaLPPHeader is creates, one is created and the oaLPPHeader is attached to it.

oaLayerNum oaLPPHeader::getLayerNum   const
 

This function returns the layer associcated with this oaLPPHeader object. This is a cached value that remains valid even if the oaLPPHeader is not bound.

oaPurpose * oaLPPHeader::getPurpose   const
 

This function attempts to return the pointer to the technology oaPurpose object that corresponds to the purpose that this oaLPPHeader represents. If this lppHeader cannot be bound, a NULL value is returned.

oaPurposeNum oaLPPHeader::getPurposeNum   const
 

This function returns the purpose associated with this oaLPPHeader object. This is a cached value that remains valid even if the oaLPPHeader is not bound.

void oaLPPHeader::getShapeBBox oaBox &    bBox const
 

This function fills out 'bBox' with the merged bBox of all the oaShape objects that have the same layer and purpose that this oaLPPHeader represents.

Note that although lppHeaders will exist in the current open design for all LPPs used in the current design and in any open design in the hierarchy underneath the current design, this function does not take into account shapes inside design instances below the current hierarchy level.

Here is an example with three levels of hierarchy:

· The top design has no shapes in it. The top design contains an instance of a middle design.

· The middle design has a shape in LPP(1, 1). The middle design contains an instance of a bottom design.

· The bottom design contains a shape in LPP(2, 2).

The top design will have two lppHeaders: one for LPP(1, 1) and the other for LPP(2, 2). However, if the application iterates through the lppHeaders of the top design, lppHeader->getShapeBBox() will return an inverted bbox for each iteration since there are no shapes in the top design.

The middle design also will have two lppHeaders: one for LPP(1, 1) and the other for LPP(2, 2). If the application iterates through the lppHeaders of the middle design, the lppHeader that represents LPP(1, 1) will return a valid bbox when lppHeader->getShapeBBox() is called on that lppHeader.

The bottom design contains one lppHeader for LPP(2,2). When lppHeader->getShapeBBox() is called on that lppHeader, it will return a valid bbox.

Parameters:
bBox A reference to an oaBox object to be populated

oaCollection oaLPPHeader::getShapes   const
 

This function returns a collection of shapes in this LPPHeader.

oaBoolean oaLPPHeader::isBound   const
 

This function returns a boolean indicating whether or not this lppHeader is bound to its corresponding oaLayer and oaPurpose objects in the technology database. Note that the binding only happens if both the layer and purpose are bound.


Member Enumeration Documentation

anonymous enum
 

Enumeration values:
dtIndex 


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

Return to top of page