oaDerivedLayer Class Reference

Inheritance diagram for oaDerivedLayer:

oaLayer oaTechObject oaObject


Public Methods

oaLayergetLayer1 () const
oaLayergetLayer2 () const
oaLayerNum getLayer1Num () const
oaLayerNum getLayer2Num () const
oaLayerOp getOperation () const
oaDerivedLayerDefgetDef () const
void getParams (oaDerivedLayerParamArray &params) const
oaBoolean hasParams () const
void setParams (const oaDerivedLayerParamArray &params)

Static Public Methods

oaDerivedLayer * create (oaLayer *layer1, oaLayer *layer2, oaLayerOp operation, const oaString &name, oaLayerNum number)
oaDerivedLayer * create (oaTech *tech, oaLayer *layer1, oaLayer *layer2, oaLayerOp operation, const oaString &name, oaLayerNum number)
oaDerivedLayer * create (oaTech *tech, const oaLayer *layer, const oaDerivedLayerDef *def, const oaString &name, oaLayerNum number, const oaDerivedLayerParamArray *params=NULL)
oaDerivedLayer * create (oaTech *tech, const oaLayer *layer1, const oaLayer *layer2, const oaDerivedLayerDef *def, const oaString &name, oaLayerNum number, const oaDerivedLayerParamArray *params=NULL)
oaDerivedLayer * find (const oaTech *tech, const oaString &name)
oaDerivedLayer * find (const oaTech *tech, const oaString &name, oaBoolean local)
oaDerivedLayer * find (const oaTech *tech, oaLayerNum number)
oaDerivedLayer * find (const oaTech *tech, oaLayerNum number, oaBoolean local)
oaDerivedLayer * find (const oaTech *tech, oaLayerNum layerNum, const oaDerivedLayerDef *def, const oaDerivedLayerParamArray *params=NULL, oaBoolean local=false)
oaDerivedLayer * find (const oaTech *tech, oaLayerNum layer1Num, oaLayerNum layer2Num, const oaDerivedLayerDef *def, const oaDerivedLayerParamArray *params=NULL, oaBoolean local=false)
oaDerivedLayer * find (const oaLayer *layer1, const oaLayer *layer2, oaLayerOp operation)

Detailed Description

The oaDerivedLayer class defines a derived layer, which is formed from one or two layers and a derived layer definition (oaDerivedLayerDef). A full description of a derived layer also requires its name (oaString), its layer number (oaLayerNum), and its database (oaTech), and an optional array of parameters (oaDerivedLayerParamArray).

The derived layer definition is associated with a layer operation (oaLayerOp) and specifies the number of parent layers for the corresponding derived layer. Built-in derived layer definitions each have their own unique oaLayerOpEnum value, but all user-defined definitions have the same layer operation, oacUserDefinedLayerOp.

Important: The oaDerivedLayer class is only a repository. OpenAccess does not provide built-in layer operation functionality. The application is responsible for performing the layer manipulations and associating the results with the appropriate oaDerivedLayer.

Note that for backward compatibility, oaDerivedLayer::create member functions are still supported, and they allow creating a derived layer by directly specifying the layer operation and not specifying the database. Also, an oaDerivedLayer::find member function allows immediate searching for a derived layer by layer operation as opposed to layer definition. However, these functions are deprecated.

Some layer operations require one or more parameters, such as shrink or grow. In such cases, an oaDerivedLayerParamArray can be associated with the derived layer.

Refer to Deriving Layers and Performing Layer Operations in the Programmers Guide for information about working with derived layers.


Member Function Documentation

oaDerivedLayer * oaDerivedLayer::create oaTech *    tech,
const oaLayer *    layer1,
const oaLayer *    layer2,
const oaDerivedLayerDef *    def,
const oaString &    name,
oaLayerNum    number,
const oaDerivedLayerParamArray *    params = NULL
[static]
 

This function creates a derived layer with the specified name, number, and derivation in the specified tech. The derived layer is based on a derived layer definition. The number and name must be unique for the specified layer1 and layer2 combination.

layer1 and layer2 can be in the specified tech, or in one or two databases in the graph of referenced technology databases rooted at the specified tech. Refer to Incremental Technology Databases in the Using Technology Databases section of the Programmers Guide for more information about referenced tech databases.

Note: This function will bind any layer headers or LPPHeaders in open designs that reference the specified layer number.

Parameters:
tech The technology database in which the derived layer will be created.
layer1 The first layer for creating the derived layer.
layer2 The second layer for creating the derived layer.
def The definition for the derived layer.
name The unique name for the derived layer.
number The unique number for the derived layer.
params The parameters for the derived layer.
Exceptions:
oacLayerNumberExists 
oacLayerNameExists 
oacInvalidNumLayersForDerivedLayerDef 
oacLayerDerivationExists 

oaDerivedLayer * oaDerivedLayer::create oaTech *    tech,
const oaLayer *    layer,
const oaDerivedLayerDef *    def,
const oaString &    name,
oaLayerNum    number,
const oaDerivedLayerParamArray *    params = NULL
[static]
 

This function creates a derived layer with the specified name, number, and derivation. The derived layer is based on a derived layer definition. The function creates the derived layer in the specified tech database.

The oaLayer can be in the same technology database as the derived layer being created, or it can be in any of the referenced technology databases in the graph of databases rooted at the tech that will contain the derived layer. Refer to Incremental Technology Databases in the Using Technology Databases section of the Programmers Guide for more information about referenced tech databases.

Note: This function will bind any layer headers or LPPHeaders in open designs that reference the specified layer number.

Parameters:
tech The technology database in which the derived layer will be created.
layer The layer for creating the derived layer.
def The definition for the derived layer.
name The unique name for the derived layer.
number The unique number for the derived layer.
params The parameters for the derived layer.
Exceptions:
oacLayerNotInReferencedTech 
oacConflictingLayerNamesInTech 
oacConflictingLayerNumbersInTech 
oacLayerNumberExists 
oacLayerNameExists 
oacInvalidNumLayersForDerivedLayerDef 
oacLayerDerivationExists 
oacDerivedLayerParamAlreadyOwned 
oacDerivedLayerParamNotInSameDB 

oaDerivedLayer * oaDerivedLayer::create oaTech *    tech,
oaLayer *    layer1,
oaLayer *    layer2,
oaLayerOp    operation,
const oaString &    name,
oaLayerNum    number
[static]
 

This function is deprecated and is retained to ensure compatibility with previous versions of OpenAccess. Use the create function overload that takes an oaDerivedLayerDef argument instead of the oaLayerOp argument.

The number, name, and operation must all be unique for the specified layer1 and layer2 combination. The function creates the derived layer in the specified tech database. The databases in which either of layer1 and layer2 are residing must be referenced from the technology database in which the derived layer is to be created. Only layer operations for two layers are supported through this interface.

Note: This function will bind any layer headers or LPPHeaders in open designs that reference the specified layer number.

Refer to Incremental Technology Databases in the Using Technology Databases section of the Programmers Guide for more information about referenced tech databases.

Parameters:
tech The technology database in which the derived layer will be created.
layer1 The first layer for creating the derived layer.
layer2 The second layer for creating the derived layer.
operation The operation to use for creating this derived layer.
name The unique name of the derived layer.
number The unique number of the derived layer.
Exceptions:
oacLayerNotInReferencedTech 
oacConflictingLayerNamesInTech 
oacConflictingLayerNumbersInTech 
oacLayerNumberExists 
oacLayerDerivationExists 
oacLayerNameExists 
oacInvalidNumLayersForDerivedLayerDef 

oaDerivedLayer * oaDerivedLayer::create oaLayer *    layer1,
oaLayer *    layer2,
oaLayerOp    operation,
const oaString &    name,
oaLayerNum    number
[static]
 

This function is deprecated and is retained to ensure compatibility with previous versions of OpenAccess. Use the create function overload that takes an oaDerivedLayerDef argument instead of the oaLayerOp argument.

The number, name, and operation must all be unique for the specified layer1 and layer2 combination. Both layer1 and layer2 must be defined in the same technology database, and neither value may be NULL. The two layers must also be in the same technology database as the derivedLayer that is being created. Only layer operations for two layers are supported through this interface.

Note: This function will bind any layer headers or LPPHeaders in open designs that reference the specified layer number.

Parameters:
layer1 The first layer for creating the derived layer.
layer2 The second layer for creating the derived layer.
operation The operation to use for creating this derived layer.
name The unique name of the derived layer.
number The unique number of the derived layer.
Exceptions:
oacLayer1Layer2NotInSameTech 
oacLayerNotInReferencedTech 
oacConflictingLayerNamesInTech 
oacConflictingLayerNumbersInTech 
oacLayerDerivationExists 
oacLayerNumberExists 
oacLayerNameExists 

oaDerivedLayer * oaDerivedLayer::find const oaLayer *    layer1,
const oaLayer *    layer2,
oaLayerOp    operation
[static]
 

This function searches the technology database associated with the given layers looking for a derived layer with the specified layer derivation. For this variant of find function, the given layers must be in the same technology database, and the oaDerivedLayer lookup is local to that database.

If the derived layer is found, a pointer to the derived layer object is returned. Otherwise, NULL is returned. Only binary layer operations are supported through this interface.

Parameters:
layer1 First layer of the derivation.
layer2 Second layer of the derivation.
operation Layer operation.
Exceptions:
oacLayer1Layer2NotInSameTech 

oaDerivedLayer * oaDerivedLayer::find const oaTech *    tech,
oaLayerNum    layer1Num,
oaLayerNum    layer2Num,
const oaDerivedLayerDef *    def,
const oaDerivedLayerParamArray *    params = NULL,
oaBoolean    local = false
[static]
 

This function searches for a derived layer based on the specified layer1Num, layer2Num, and derived layer definition. The local argument specifies whether (if true) to look only in the specified technology database (if false) to look in the specified technology database and all of its referenced databases. If found, a pointer to the derived layer object is returned, otherwise NULL is returned.

Refer to Incremental Technology Databases in the Using Technology Databases section of the Programmers Guide for more information about referenced tech databases.

Parameters:
tech The technology database from which to start the search for the derived layer.
layer1Num The first layer of the derived layer to search for.
layer2Num The second layer of the derived layer to search for.
def The definition of the derived layer to search for.
params The parameters of the derived layer to search for.
local Specifies whether (if true) to look only in the specified technology database or (if false) to look in the specified technology database and all of its referenced databases.
Exceptions:
oacDerivedLayerParamNotInSameDB 

oaDerivedLayer * oaDerivedLayer::find const oaTech *    tech,
oaLayerNum    layerNum,
const oaDerivedLayerDef *    def,
const oaDerivedLayerParamArray *    params = NULL,
oaBoolean    local = false
[static]
 

This function searches for a derived layer based on the specified layerNum and derived layer definition. The local argument specifies whether (if true) to look only in the specified technology database (if false) to look in the specified technology database and all of its referenced databases. If found, a pointer to the derived layer object is returned, otherwise NULL is returned.

Refer to Incremental Technology Databases in the Using Technology Databases section of the Programmers Guide for more information about referenced tech databases.

Parameters:
tech The technology database from which to start the search for the derived layer.
layerNum The number of the derived layer to search for.
def The definition of the derived layer to search for.
params The parameters of the derived layer to search for.
local Specifies whether (if true) to look only in the specified technology database or (if false) to look in the specified technology database and all of its referenced databases.
Exceptions:
oacDerivedLayerParamNotInSameDB 

oaDerivedLayer * oaDerivedLayer::find const oaTech *    tech,
oaLayerNum    number,
oaBoolean    local
[static]
 

This function searches for a derived layer with the specified number. referenced databases looking for a derived layer with the specified number. The local argument specifies whether (if true) to look only in the specified technology database (if false) to look in the specified technology database and all of its referenced databases. If found, a pointer to the derived layer object is returned, otherwise NULL is returned.

Refer to Incremental Technology Databases in the Using Technology Databases section of the Programmers Guide for more information about referenced tech databases.

Parameters:
tech The technology database from which to start the search for the derived layer.
number The number of the derived layer to find.
local A boolean that specifies whether (if true) to look in the specified technology database or (if false) to look in the specified technology database and all of its referenced databases.

Reimplemented from oaLayer.

oaDerivedLayer * oaDerivedLayer::find const oaTech *    tech,
oaLayerNum    number
[static]
 

This function searches the specified technology database for an oaDerivedLayer object with the specified number. If the specified technology database references other technology databases, those are searched as well and the first matching derived layer is returned. To find a derived layer in the current technology database only, refer to the find function that accepts the local argument.

If found, a pointer to the derived layer object is returned. Otherwise, NULL is returned.

Refer to Incremental Technology Databases in the Using Technology Databases section of the Programmers Guide for more information about referenced tech databases.

Parameters:
tech The technology database to search.
number The number of the derived layer to find.

Reimplemented from oaLayer.

oaDerivedLayer * oaDerivedLayer::find const oaTech *    tech,
const oaString &    name,
oaBoolean    local
[static]
 

This function searches for a derived layer with the specified name. The local argument specifies whether (if true) to look only in the specified technology database (if false) to look in the specified technology database and all of its referenced databases. If found, a pointer to the derived layer object is returned, otherwise NULL is returned.

Refer to Incremental Technology Databases in the Using Technology Databases section of the Programmers Guide for more information about referenced tech databases.

Parameters:
tech The technology database from which to start the search for the derived layer.
name The name of the derived layer to find.
local A boolean that specifies whether (if true) to look in the specified technology database or (if false) to look in the specified technology database and all of its referenced databases.

Reimplemented from oaLayer.

oaDerivedLayer * oaDerivedLayer::find const oaTech *    tech,
const oaString &    name
[static]
 

This function searches the specified technology database for an oaDerivedLayer object with the specified name. If the specified technology database references other technology databases, those are searched as well and the first matching derived layer is returned. To find a derived layer in the current technology database only, refer to the find function that accepts the local argument.

If found, a pointer to the derived layer object is returned. Otherwise, NULL is returned. Refer to Incremental Technology Databases in the Using Technology Databases section of the Programmers Guide for more information about referenced tech databases.

Parameters:
tech The technology database to begin the search.
name The name of the derived layer to find.

Reimplemented from oaLayer.

const oaDerivedLayerDef * oaDerivedLayer::getDef   const
 

This function returns the derived layer def used to create this derivedLayer.

oaLayer * oaDerivedLayer::getLayer1   const
 

This function returns a pointer to layer1, from which the derived layer was created. NULL is returned if the layer comes from an unbound technology database referenced by the owning database of this derived layer.

If the layer is not bound, you can use the getLayer1Num to get the number of the layer.

Refer to Incremental Technology Databases in the Using Technology Databases section of the Programmers Guide for more information about referenced tech databases.

oaLayerNum oaDerivedLayer::getLayer1Num   const
 

This function returns the number of the layer1 from which this derived layer was created even if the tech database containing the layer is unbound.

oaLayer * oaDerivedLayer::getLayer2   const
 

This function returns a pointer to layer2, from which the derived layer was created. For unary layer operations, this returns the same layer as oaDerivedLayer::getLayer1(). NULL may be returned if the layer referenced comes from an unbound technology database referenced by the owning database of this derived layer.

If the layer is not bound, you can use the getLayer2Num to get the number of the layer.

Refer to Incremental Technology Databases in the Using Technology Databases section of the Programmers Guide for more information about referenced tech databases.

oaLayerNum oaDerivedLayer::getLayer2Num   const
 

This function returns the number of the layer2 from which this derived layer was created even if the tech database containing the layer is unbound. For unary layer operations, this returns the same layer number as getlayer1Num().

oaLayerOp * oaDerivedLayer::getOperation   const
 

This function returns the built-in layerOp used to create this derivedLayer, or it returns oacUserDefinedLayerOp for user-defined derived layer definitions.

void oaDerivedLayer::getParams oaDerivedLayerParamArray &    params const
 

This function retrieves the parameters of this derived layer.

Parameters:
params The retrieved parameter array.

oaBoolean oaDerivedLayer::hasParams   const
 

This function returns a boolean that indicates whether this derived layer has any parameters.

void oaDerivedLayer::setParams const oaDerivedLayerParamArray &    params
 

This function sets the parameters of this derived layer to the given parameter array.

Parameters:
params The array of parameters to set on this derived layer.
Exceptions:
oacDerivedLayerParamNotInSameDB 


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

Return to top of page