oaTech Class Reference

Inheritance diagram for oaTech:

oaTechObject oaObject


Public Methods

void close ()
void purge ()
void save ()
void save (oaSaveRecoverType type)
void saveAs (const oaScalarName &libName)
void reopen (oaChar mode)
void revert ()
void getLibName (oaScalarName &libName) const
void getLibName (const oaNameSpace &ns, oaString &out) const
oaLibgetLib () const
oaTime getCreateTime () const
oaTime getReadInTime () const
oaTime getLastSavedTime () const
oaTimeStamp getTimeStamp (oaTechDataType type) const
oaTimeStamp getTimeStamp (oaAppObjectDef *def) const
void enableTimeStamps (oaBoolean value=true)
oaChar getMode () const
oaUInt4 getRefCount () const
oaBoolean isModified () const
oaBoolean isRecovered () const
oaUInt4 getDBUPerUU (const oaViewType *viewType) const
oaUInt4 getDBUPerUU (const oaViewType *viewType, oaBoolean local) const
oaUserUnitsType getUserUnits (const oaViewType *viewType) const
oaUserUnitsType getUserUnits (const oaViewType *viewType, oaBoolean local) const
oaClearanceMeasure getClearanceMeasure () const
oaClearanceMeasure getClearanceMeasure (oaBoolean local) const
oaDist getDefaultManufacturingGrid () const
oaDist getDefaultManufacturingGrid (oaBoolean local) const
oaBoolean isGateGrounded () const
oaBoolean isGateGrounded (oaBoolean local) const
void getTechHeaders (oaTechHeaderArray &refHeaders, oaBoolean local=false) const
oaBoolean hasUnboundRefs () const
void setDBUPerUU (const oaViewType *viewType, oaUInt4 value)
void setUserUnits (const oaViewType *viewType, oaUserUnitsType value)
void setClearanceMeasure (oaClearanceMeasure measure)
void setDefaultManufacturingGrid (oaDist grid)
void setGateGrounded (oaBoolean gateGrounded)
void unsetDBUPerUU (const oaViewType *viewType)
void unsetUserUnits (const oaViewType *viewType)
void unsetClearanceMeasure ()
void unsetDefaultManufacturingGrid ()
void unsetGateGrounded ()
oaBoolean isDBUPerUUSet (const oaViewType *viewType) const
oaBoolean isUserUnitsSet (const oaViewType *viewType) const
oaBoolean isClearanceMeasureSet () const
oaBoolean isDefaultManufacturingGridSet () const
oaBoolean isGateGroundedSet () const
void setRefs (const oaTechArray &refs)
void unsetRefs ()
void setProcessFamily (const oaString &processFamily)
void unsetProcessFamily ()
void getProcessFamily (oaString &processFamily, oaBoolean local=false) const
oaBoolean hasProcessFamily (oaBoolean local=false) const
oaBoolean validate () const
oaInt4 uuToDBU (const oaViewType *viewType, oaDouble value)
oaUInt4 uuToDBUDistance (const oaViewType *viewType, oaDouble value)
oaUInt8 uuToDBUArea (const oaViewType *viewType, oaDouble value)
oaDouble dbuToUU (const oaViewType *viewType, oaInt4 value)
oaDouble dbuToUUDistance (const oaViewType *viewType, oaUInt4 value)
oaDouble dbuToUUArea (const oaViewType *viewType, oaUInt8 value)
void enableUndo (oaBoolean value, oaUndoModelEnum undoModel)
void redo ()
void undo ()
oaBoolean isUndoEnabled () const
oaBoolean isInUndo () const
void setCp (oaUInt4 checkPointID=UINT_MAX)
void unsetCp ()
oaUInt4 getNumUndoCpRecs () const
oaUInt4 getCpID () const
oaUInt4 getNumUndoRecsOnCp () const
oaUndoModelEnum getUndoModel () const
oaUInt8 calcVMSize () const
void minimizeVM ()
oaBoolean hasDefaultConstraintGroup () const
oaConstraintGroupgetDefaultConstraintGroup () const
oaConstraintGroupgetFoundryRules () const
void getFeatures (oaUInt4 &dataModelRev, oaFeatureArray &features)
oaCollection< oaAnalysisLib, oaTech > getAnalysisLibs () const
oaCollection< oaAnalysisLib, oaTech > getAnalysisLibs (oaUInt4 filterFlags) const
oaCollection< oaLayer, oaTech > getLayers () const
oaCollection< oaLayer, oaTech > getLayers (oaUInt4 filterFlags) const
oaCollection< oaOpPoint, oaTech > getOpPoints () const
oaCollection< oaOpPoint, oaTech > getOpPoints (oaUInt4 filterFlags) const
oaCollection< oaPurpose, oaTech > getPurposes () const
oaCollection< oaPurpose, oaTech > getPurposes (oaUInt4 filterFlags) const
oaCollection< oaSiteDef, oaTech > getSiteDefs () const
oaCollection< oaSiteDef, oaTech > getSiteDefs (oaUInt4 filterFlags) const
oaCollection< oaValue, oaTech > getValues () const
oaCollection< oaValue, oaTech > getValues (oaUInt4 filterFlags) const
oaCollection< oaViaDef, oaTech > getViaDefs () const
oaCollection< oaViaDef, oaTech > getViaDefs (oaUInt4 filterFlags) const
oaCollection< oaViaSpec, oaTech > getViaSpecs () const
oaCollection< oaViaSpec, oaTech > getViaSpecs (oaUInt4 filterFlags) const
oaCollection< oaViaVariant, oaTech > getViaVariants (oaUInt4 filterFlags=oacViaVariantIterAll) const
oaCollection< oaViaVariantHeader, oaTech > getViaVariantHeaders (oaUInt4 filterFlags=oacViaVariantHeaderIterAll) const
oaCollection< oaTechLayerHeader, oaTech > getLayerHeaders () const
oaCollection< oaTechViaDefHeader, oaTech > getViaDefHeaders () const
oaCollection< oaConstraint, oaTech > getConstraints (const oaConstraintDef *def=NULL) const
oaCollection< oaConstraint, oaTech > getConstraints (const oaConstraintDef *def, oaUInt4 filterFlags) const
oaCollection< oaConstraintGroup, oaTech > getConstraintGroups () const
oaCollection< oaConstraintGroup, oaTech > getConstraintGroups (oaUInt4 filterFlags) const
oaCollection< oaConstraintGroup, oaTech > getConstraintGroups (const oaConstraintGroupDef *def, oaUInt4 filterFlags=oacTechConstraintGroupIterAll) const
oaCollection< oaConstraintParam, oaTech > getConstraintParams () const
oaCollection< oaConstraintParam, oaTech > getConstraintParams (oaUInt4 filterFlags) const
oaCollection< oaConstraintGroupHeader, oaTech > getConstraintGroupHeaders () const
oaCollection< oaDerivedLayerParam, oaTech > getDerivedLayerParams (oaUInt4 filterFlags=oacTechDerivedLayerParamIterAll) const
oaCollection< oaAppObjectDef, oaTech > getAppObjectDefs () const
oaCollection< oaAppObject, oaTech > getAppObjects (const oaAppObjectDef *def) const
oaCollection< oaAppDef, oaTech > getAppDefsByDataType (oaTechDataType dataType) const
oaCollection< oaGroup, oaTech > getGroups () const
oaCollection< oaGroup, oaTech > getGroups (oaGroupDef *def) const
oaCollection< oaGroup, oaTech > getGroupsByName (const oaString &name) const
oaCollection< oaTechHeader, oaTech > getUsedIn () const

Static Public Methods

oaTech * create (const oaScalarName &libName)
oaTech * create (oaLib *lib)
oaTech * open (const oaScalarName &libName, oaChar mode= 'r')
oaTech * open (oaLib *lib, oaChar mode= 'r')
oaTech * recover (const oaScalarName &libName, oaSaveRecoverType type)
oaTech * find (const oaScalarName &libName)
oaTech * find (const oaLib *lib)
void destroy (const oaScalarName &libName)
void destroy (oaLib *lib)
void destroy (const oaScalarName &libName, oaSaveRecoverType type)
oaBoolean exists (const oaScalarName &libName, oaBoolean inherited=true)
oaBoolean exists (oaLib *lib, oaBoolean inherited=true)
oaBoolean exists (const oaScalarName &libName, oaSaveRecoverType type)
oaBoolean exists (oaLib *lib, oaSaveRecoverType type)
oaUInt4 getDefaultDBUPerUU (const oaViewType *viewType)
oaUserUnitsType getDefaultUserUnits (const oaViewType *viewType)
oaDist getDefaultDefaultManufacturingGrid ()
oaClearanceMeasure getDefaultClearanceMeasure ()
oaBoolean getDefaultIsGateGrounded ()
void attach (oaLib *lib, const oaScalarName &attachLibName)
void detach (oaLib *lib)
oaBoolean hasAttachment (const oaLib *lib)
void getAttachment (const oaLib *lib, oaScalarName &attachLibName)
oaUInt4 getRevNumber ()
oaCollection< oaTech, oaTech > getOpenTechs ()

Public Types

enum  { dtIndex = oacTechDataType }

Detailed Description

The oaTech class implements a technology database (oaTech), which contains process information.

A library (oaLib) typically contains a single technology database, and all the designs in the library use that technology database. Alternatively, a user can define an attachment from one library to the technology database in another library. In this case, all the designs in the library use the attached technology database. Whether in the same library or in a different library, the main technology database associated with a design is known as its primary technology database.

Any technology database can contain references to other technology databases. A reference is a mechanism that allows a technology database to inherit information from one or more technology databases. This approach is known as using incremental technology databases.

A referenced technology database can itself reference other technology databases to form a chain, known as a graph of technology databases. All the technology information in a graph is available to the design library. When a design is opened, the primary technology database is opened, and if there are any references, the graph of technology databases is opened as well. For more information, refer to Incremental Technology Databases in the Using Technology Databases section of the Programmers Guide.

When a technology database contained within a library is opened, it is associated with the library and remains the technology database for that library until the database is purged or the library is closed. When a technology database is associated with a library through attachment, an application can remove the association (oaTech::detach) and re-associate the library to another technology database in a different library (oaTech::attach).

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

Attached oaTech Databases

A user can use oaTech::attach to associate a library with a technology database in a different library. In addition, the associations can be made through any number of libraries (using multiple applications of oaTech::attach) as long as the intermediate libraries do not contain technology databases themselves and the final target library does contain a technology database.

Note: To support backward data compatibility, the previous mechanism for attaching technology libraries is still supported. Namely, a string property called techLibName in a library’s oaLibDMData database still specifies the name of the target library. The oaTech::attach function creates the techLibName property when it is called. In order to construct the name of the library, the techLibName string is interpreted in the oaNativeNS namespace.


Member Function Documentation

void oaTech::attach oaLib *    lib,
const oaScalarName &    attachLibName
[static]
 

This function creates a technology attachment between the specified library lib and the library with the name attachLibName. If there is an existing attachment, it is first removed.

The oacAttachLibraryHasLocalTech error is thrown if a technology database exists locally in the library lib. The oacDMDataCannotGetWriteAccess error is thrown if the library dmData database in the library lib cannot be opened for editing. Note that the library dmData database is needed because this function creates a string property called techLibName in the dmData that specifies the name of the associated technology library.

Parameters:
lib Pointer to the technology library to attach.
attachLibName Name of the library to attach to.
Exceptions:
oacAttachLibraryHasLocalTech 
oacDMDataCannotGetWriteAccess 

oaUInt8 oaTech::calcVMSize   const
 

This function calculates and returns the amount of virtual memory this tech database is currently using.

void oaTech::close  
 

This function decrements the reference count of this tech database by one. If the count reaches zero, this tech database is purged from memory.

oaTech * oaTech::create oaLib *    lib [static]
 

This function creates the tech database for the specified library. An exception is thrown if the tech database already exists or if the specified library uses an attached tech database in another library.

Parameters:
lib The library for which to create the tech database.
Returns:
A pointer to the new oaTech database
Exceptions:
oacTechAlreadyExists 
oacTechLibNotFound 
oacCannotFindInheritedTechLib 
oacTechAttachedTechLibDetected 

oaTech * oaTech::create const oaScalarName &    libName [static]
 

This function creates the tech database for the specified library. An exception is thrown if the tech database already exists or if the specified library uses an attached tech database in another library.

Parameters:
libName The name of the library for which to create the tech database.
Returns:
A pointer to the new tech database
Exceptions:
oacLibNotFound 
oacTechAlreadyExists 
oacTechLibNotFound 
oacCannotFindInheritedTechLib 
oacTechAttachedTechLibDetected 

oaDouble oaTech::dbuToUU const oaViewType *    viewType,
oaInt4    value
 

This function converts the database units into user units for the specified viewType.

Note: Although users can construct their own oaViewTypes, valid viewTypes for this function are restricted to the set of reserved viewTypes, namely, an oaReservedViewType object constructed with one of the following reserved view type enumerated constants: oacMaskLayout, oacSchematic, oacSchematicSymbol, oacNetlist, or oacHierDesign.

The developer can call oaViewType::get(oaReservedViewType) to construct and return a pointer to an a oaViewType object using one of the valid reserved viewType enumerated constants (for example, oaViewType::get(oacMaskLayout) or oaViewType::get(oaReservedViewType(oacMaskLayout)).

Parameters:
viewType A pointer to an oaViewType that corresponds to the specified type oaReservedViewType. It needs to be one of the reserved design viewTypes: maskLayout, schematic, schematicSymbol, netlist, or oaHierDesign.
value The value in database units to convert to user units.
Exceptions:
oacInvalidTechViewType 

oaDouble oaTech::dbuToUUArea const oaViewType *    viewType,
oaUInt8    value
 

This function converts the database unit area to user unit area for the specified viewType.

Note: Although users can construct their own oaViewTypes, valid viewTypes for this function are restricted to the set of reserved viewTypes, namely, an oaReservedViewType object constructed with one of the following reserved view type enumerated constants: oacMaskLayout, oacSchematic, oacSchematicSymbol, oacNetlist, or oacHierDesign.

The developer can call oaViewType::get(oaReservedViewType) to construct and return a pointer to an a oaViewType object using one of the valid reserved viewType enumerated constants (for example, oaViewType::get(oacMaskLayout) or oaViewType::get(oaReservedViewType(oacMaskLayout)).

Parameters:
viewType A pointer to an oaViewType that corresponds to the specified type oaReservedViewType. It needs to be one of the reserved design viewTypes: maskLayout, schematic, schematicSymbol, netlist, or oaHierDesign.
value The area in database units to convert to user units.
Exceptions:
oacInvalidTechViewType 

oaDouble oaTech::dbuToUUDistance const oaViewType *    viewType,
oaUInt4    value
 

This function converts the database unit distance to user unit distance for the specified viewType.

Note: Although users can construct their own oaViewTypes, valid viewTypes for this function are restricted to the set of reserved viewTypes, namely, an oaReservedViewType object constructed with one of the following reserved view type enumerated constants: oacMaskLayout, oacSchematic, oacSchematicSymbol, oacNetlist, or oacHierDesign.

The developer can call oaViewType::get(oaReservedViewType) to construct and return a pointer to an a oaViewType object using one of the valid reserved viewType enumerated constants (for example, oaViewType::get(oacMaskLayout) or oaViewType::get(oaReservedViewType(oacMaskLayout)).

Parameters:
viewType A pointer to an oaViewType that corresponds to the specified type oaReservedViewType. It needs to be one of the reserved design viewTypes: maskLayout, schematic, schematicSymbol, netlist, or oaHierDesign.
value The distance in database units to convert to user units.
Exceptions:
oacInvalidTechViewType 

void oaTech::destroy const oaScalarName &    libName,
oaSaveRecoverType    type
[static]
 

This function attempts to remove the specified oaSaveRecoverType file from disk. It throws an exception if this file cannot be found on disk.

Parameters:
libName The name of the library
type Either oacAutoSaveType or oacCriticalSaveType
Exceptions:
oacTechLibNotFound 

void oaTech::destroy oaLib *    lib [static]
 

This function attempts to remove the tech database associated with the library specified by lib.

The tech database for the library will be removed from disk. If no tech database exists, but the library uses an attached tech database specified with the "techLibName" property, then the attachment property will be removed. It is not an error to remove the tech database even if other libraries use this tech as an attached tech. An exception is thrown if the tech database is open.

See the oaTech class description for more information about attached tech databases.

Parameters:
lib A pointer to the library containing the oaTech database to destroy.
Exceptions:
oacDestroyTechOpen 

void oaTech::destroy const oaScalarName &    libName [static]
 

This function attempts to remove the tech database associated with the library specified by libName.

The tech database for the library will be removed from disk. If no tech database exists, but the library uses an attached tech database specified with the "techLibName" property, then the attachment property will be removed. It is not an error to remove the oaTech database even if other libraries use this tech database as an attached tech. An exception is thrown if the tech database is open.

See the oaTech class description for more information about attached tech databases.

Parameters:
libName The library containing the oaTech database to destroy.
Exceptions:
oacTechLibNotFound 
oacDestroyTechOpen 
oacDestroyWithAttachProperty 

void oaTech::detach oaLib *    lib [static]
 

This function removes the technology attachment from the specified library lib.

The oacDetachNoAttachment error is thrown if the library does not have a technology attachment to another library. The oacDMDataCannotGetWriteAccess error is thrown if the library dmData database cannot be opened for edit. Note that the library dmData database is needed because the technology attachment information is stored there.

Parameters:
lib Pointer to the technology library to detach.
Exceptions:
oacDetachNoAttachment 
oacDMDataCannotGetWriteAccess 

void oaTech::enableTimeStamps oaBoolean    value = true
 

This function enables or disables the update of timeStamps on this oaTech database. TimeStamps are enabled by default.

Parameters:
value If true, enable timeStamps; If false, disable timeStamps.

void oaTech::enableUndo oaBoolean    value,
oaUndoModelEnum    undoModel
 

This function enables or disables undo for this in-memory image of the technology database. If enabled, all changes made to this tech are logged so that undo() can restore the tech to earlier states. If disabled, undo records are not created, and changes are not logged. This function requires the caller to specify a particular model for undo (oaUndoModelEnum value).

When enabling undo, the undoModel argument is required. If disabling undo, the undoModel argument is omitted. When undo is disabled, the current undo log and undo records are discarded.

OpenAccess supports two undo models:

  • postCheckpoint model, in which checkpoints are set after an action
  • preCheckpoint model, in which checkpoints are set before an action

If postCheckpoint is specified, a call to undo must immediately follow a checkpoint or an exception is thrown. See Undo and Redo Use Models in OpenAccess for more information.

Parameters:
value A value of true enables undo, a value of false disables undo
undoModel Specifies the postCheckpoint or preCheckpoint model for enabling undo or is not specified for disabling undo
Exceptions:
oacTechCannotChangeUndoModel 

oaBoolean oaTech::exists oaLib *    lib,
oaSaveRecoverType    type
[static]
 

This function returns a boolean that indicates whether the specified oaSaveRecover file exists for the tech in the specified library.

Parameters:
lib The library to check
type The oaSaveRecover type to match, which is either oacAutoSaveType or oacCriticalSaveType

oaBoolean oaTech::exists const oaScalarName &    libName,
oaSaveRecoverType    type
[static]
 

This function returns a boolean that indicates whether the specified oaSaveRecover file exists for the tech in the specified library.

Parameters:
libName The name of the library to check
type The oaSaveRecover type to match, which is either oacAutoSaveType or oacCriticalSaveType

oaBoolean oaTech::exists oaLib *    lib,
oaBoolean    inherited = true
[static]
 

This function returns true if the tech database is open for the specified library or if a non-zero size tech database for the specified library exists on disk. It returns false otherwise.

If the tech is not currently open and if inherited is true (default), this function uses the library's "techLibName" string property to resolve the target library (see the oaTech class description for further information). If inherited is false, the property is ignored and the lookup is done using the specified library only.

An oacCannotFindInheritedTechLib exception is thrown if inherited is true and a "techLibName" string property in the target library resolution chain specifies the name of a non-existent library.

Parameters:
lib A pointer to the library to check.
inherited If true, look at the "techLibName" property string value (interpreted in the oaNativeNS) to resolve the target library.
Exceptions:
oacCannotFindInheritedTechLib 

oaBoolean oaTech::exists const oaScalarName &    libName,
oaBoolean    inherited = true
[static]
 

This function returns true if the tech database is open for the specified library or if a non-zero size tech database for the specified library exists on disk. It returns false otherwise.

If the tech is not currently open and if inherited is true (default), this function uses the library's "techLibName" string property to resolve the target library (see the oaTech class description for further information). If inherited is false, the property is ignored and the lookup is done using the specified library only.

An oacCannotFindInheritedTechLib exception is thrown if inherited is true and a "techLibName" string property in the target library resolution chain specifies the name of a non-existent library.

Parameters:
libName The name of the library to check.
inherited If true, look at the library's "techLibName" property string value (interpreted in the oaNativeNS) to resolve the target library.
Exceptions:
oacCannotFindInheritedTechLib 

oaTech * oaTech::find const oaLib *    lib [static]
 

This function attempts to find an open tech database for the specified library.

If the library contains a tech database, and that database is not open, the function returns NULL.

If there is no local tech database, and the library uses an attached tech database specified with the "techLibName" property instead, this function recursively attempts to resolve the target library and find the open tech database for the resolved target library. (see the oaTech class description for further information).

If successful, the function returns a pointer to the tech database. Otherwise, NULL is returned.

An oacCannotFindInheritedTechLib exception is thrown if a "techLibName" string property in the target library resolution chain specifies the name of a non-existent library.

Parameters:
lib A pointer to the library whose oaTech database is to be found.
Exceptions:
oacCannotFindInheritedTechLib 

oaTech * oaTech::find const oaScalarName &    libName [static]
 

This function attempts to find an open tech database for the specified library name.

If the library contains a tech database, and that database is not open, the function will return NULL.

If there is no local tech database, if the library uses an attached tech database specified with the "techLibName" property, this function will recursively attempt to resolve the target library and find the open tech database for the resolved target library (see the oaTech class description for further information).

If successful, the function returns a pointer to the tech database. Otherwise, NULL is returned.

An oacCannotFindInheritedTechLib exception is thrown if a "techLibName" string property in the target library resolution chain specifies the name of a non-existent library.

Parameters:
libName Name of the library whose oaTech database is to be found.
Exceptions:
oacCannotFindInheritedTechLib 

oaCollection< oaAnalysisLib, oaTech > oaTech::getAnalysisLibs oaUInt4    filterFlags const
 

This function returns a collection of analysis libraries.

Parameters:
filterFlags Determines the extent of the returned collection of analysis libraries:
  • oacAnalysisLibIterAll: The collection contains all analysis libraries defined in this and all referenced tech databases
  • oacAnalysisLibIterLocal: The collection contains the analysis libraries defined locally in this tech database
Refer to Incremental Technology Databases in the Using Technology Databases section of the Programmers Guide for more information about referenced tech databases.

oaCollection oaTech::getAnalysisLibs   const
 

This function returns a collection of analysis libraries contained in the graph of tech databases rooted at this oaTech.

To return a collection of analysis libraries in the current tech only, refer to the getAnalysisLibs function that takes the filterFlags argument.

oaCollection< oaAppDef, oaTech > oaTech::getAppDefsByDataType oaTechDataType    dataType const
 

This function returns a collection of appDefs of the specified data type used in this tech database.

Parameters:
dataType The type code for the specified data table.

oaAppObjectDefCollection oaTech::getAppObjectDefs   const
 

This function returns a collection of appObjectDefs used in this tech database.

oaCollection oaTech::getAppObjects const oaAppObjectDef *    def const
 

This function returns a collection of any oaAppObject with the specified extension that exists in this tech database.

Parameters:
def The extension to include in the oaAppObject collection.

void oaTech::getAttachment const oaLib *    lib,
oaScalarName &    attachLibName
[static]
 

This function gets the name of the library that the specified library lib has a technology attachment to and returns it in attachLibName. It is an error if lib does not have a technology attachment to another library.

Parameters:
lib Pointer to the technology library.
attachLibName Retrieved library name.
Exceptions:
oacGetAttachmentNoAttachment 

oaClearanceMeasure oaTech::getClearanceMeasure oaBoolean    local const
 

This function returns the clearance measure enum value in use. The local argument specifies whether, if true, to look only in this technology database or, if false, to search this technology database and all of its referenced technology databases for the effective clearance measure.

Parameters:
local If true, look only in this technology database; If false, search this technology database and all its referenced technology databases.

oaClearanceMeasure oaTech::getClearanceMeasure   const
 

This function returns the clearance measurement enum value used for this technology database and all of its referenced technology databases.

oaCollection< oaConstraintGroupHeader, oaTech > oaTech::getConstraintGroupHeaders   const
 

This function returns a collection of constraint group headers used by this tech database. Note that the collection can include oaConstraintGroupHeaders with the same name (for default or foundry constraint groups).

oaCollection< oaConstraintGroup, oaTech > oaTech::getConstraintGroups const oaConstraintGroupDef *    def,
oaUInt4    filterFlags = oacTechConstraintGroupIterAll
const
 

This function returns a collection of constraint groups that are associated with the specified constraintGroupDef.

Parameters:
def pointer to an oaConstraintGroupDef.
filterFlags Determines the extent of the returned collection of constraint groups:
  • oacTechConstraintGroupIterAll (the default): The collection contains all constraint groups defined in this and all referenced tech databases.
  • oacTechConstraintGroupIterLocal: The collection contains the constraint groups defined locally in this tech database.
Refer to Incremental Technology Databases in the Using Technology Databases section of the Programmers Guide for more information about referenced tech databases.

oaCollection< oaConstraintGroup, oaTech > oaTech::getConstraintGroups oaUInt4    filterFlags const
 

This function returns a collection of constraint groups.

Parameters:
filterFlags Determines the extent of the returned collection of constraint groups:
  • oacTechConstraintGroupIterAll: The collection contains all constraint groups defined in this and all referenced tech databases.
  • oacTechConstraintGroupIterLocal: The collection contains the constraint groups defined locally in this tech database.
Refer to Incremental Technology Databases in the Using Technology Databases section of the Programmers Guide for more information about referenced tech databases.

oaCollection< oaConstraintGroup, oaTech > oaTech::getConstraintGroups   const
 

This function returns a collection of constraint groups in this and all referenced tech databases.

To return a collection of constraint groups in the current tech only, refer to the getConstraintGroups function that takes the filterFlags argument.

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

oaCollection< oaConstraintParam, oaTech > oaTech::getConstraintParams oaUInt4    filterFlags const
 

This function returns a collection of constraint parameters.

Parameters:
filterFlags Determines the extent of the returned collection of constraint parameters:
  • oacTechConstraintParamIterAll: The collection contains all constraint parameters defined in this and all referenced tech databases.
  • oacTechConstraintParamIterLocal: The collection contains the constraint parameters defined locally in this tech database.
Refer to Incremental Technology Databases in the Using Technology Databases section of the Programmers Guide for more information about referenced tech databases.

oaCollection< oaConstraintParam, oaTech > oaTech::getConstraintParams   const
 

This function returns a collection of constraint parameters in this and all referenced tech databases.

To return a collection of constraint parameters in the current tech only, refer to the getConstraintParams function that takes the filterFlags argument.

oaCollection< oaConstraint, oaTech > oaTech::getConstraints const oaConstraintDef *    def,
oaUInt4    filterFlags
const
 

This function returns a collection of constraints that match the given constraint definition.

Parameters:
def Constraint definition to match. When NULL is specified, the collection contains all constraints.
filterFlags Determines the extent of the returned collection of constraints:
  • oacConstraintIterAll: The collection contains all constraints defined in this and all referenced tech databases.
  • oacConstraintIterLocal: The collection contains the constraints defined locally in this tech database.
Refer to Incremental Technology Databases in the Using Technology Databases section of the Programmers Guide for more information about referenced tech databases.

oaCollection< oaConstraint, oaTech > oaTech::getConstraints const oaConstraintDef *    def = NULL const
 

This function returns a collection of constraints with the specified definition in this and any referenced tech databases.

If no definition is specified, all the constraints are returned.

To return a collection of constraints in the current tech only, refer to the getConstraints function that takes the filterFlags argument.

Parameters:
def Optional constraint definition to search for.

oaUInt4 oaTech::getCpID   const
 

This function returns the ID of the last checkpoint set in this tech. If the ID is not set on that checkpoint, this function returns UINT_MAX.

oaTime oaTech::getCreateTime   const
 

This function returns the time at which this tech database was created.

oaUInt4 oaTech::getDBUPerUU const oaViewType *    viewType,
oaBoolean    local
const
 

This function returns the database-units per user-unit for the specified view type. The local argument specifies whether, if true, to look only in this technology database or, if false, to search this technology database and all its referenced technology databases for the effective database-units per user-unit.

Parameters:
viewType A pointer to an oaViewType that corresponds to the specified type oaReservedViewType. It needs to be one of the reserved design viewTypes: maskLayout, schematic, schematicSymbol, netlist, or oaHierDesign.
local If true, look only in this technology database; If false, search this technology database and all its referenced technology databases.
Exceptions:
oacInvalidTechViewType 

oaUInt4 oaTech::getDBUPerUU const oaViewType *    viewType const
 

This function returns the database-units per user-unit for the specified viewType used for this technology database and all of its referenced technology databases. Both this value and the user-units type must be used to calculate the real distance meant by lengths and coordinates stored in an OpenAccess database.

The viewTypes allowed in this call are the subset of oaReservedViewType values that are used as viewTypes for an oaDesign. These are: oacMaskLayout, oacSchematic, oacSchematicSymbol, oacNetlist, or oacHierDesign.

The caller can construct the viewType inline with this function call as in: tech->getDBUPerUU(oaViewType::get(oacMaskLayout))

Parameters:
viewType A pointer to an oaViewType that corresponds to the specified type oaReservedViewType. It needs to be one of the reserved design viewTypes: maskLayout, schematic, schematicSymbol, netlist, or oaHierDesign.
Exceptions:
oacInvalidTechViewType 

oaClearanceMeasure oaTech::getDefaultClearanceMeasure   [static]
 

This function returns the default clearance measure enum value.

oaConstraintGroup * oaTech::getDefaultConstraintGroup   const
 

This function returns the default constraint group for this technology. If no constraints have been set on the default constraint group, a new constraint group is created and returned.

oaUInt4 oaTech::getDefaultDBUPerUU const oaViewType *    viewType [static]
 

This function returns the default database-units per user-unit for the specified viewType. These are the static values that will be returned by getDBUPerUU() when no call to setDBUPerUU has been made for a given viewType.

The viewTypes allowed in this call are the subset of oaReservedViewType values that are used as viewTypes for an oaDesign. These are: oacMaskLayout, oacSchematic, oacSchematicSymbol, oacNetlist, or oacHierDesign.

The caller can construct the viewType inline with this function call as in: tech->getDefaultDBUPerUU(oaViewType::get(oacMaskLayout))

Parameters:
viewType A pointer to an oaViewType that corresponds to the specified type oaReservedViewType. It needs to be one of the reserved design viewTypes: maskLayout, schematic, schematicSymbol, netlist, or oaHierDesign.
Exceptions:
oacInvalidTechViewType 

oaDist oaTech::getDefaultDefaultManufacturingGrid   [static]
 

This function returns the default value for the default manufacturing grid.

Returns:
An oaDist, which is an oaUInt4 that represents the non-negative distance, along one axis, between two oaCoord values.

oaBoolean oaTech::getDefaultIsGateGrounded   [static]
 

This function returns the default boolean value indicating whether or not the gates are considered grounded.

oaDist oaTech::getDefaultManufacturingGrid oaBoolean    local const
 

This function returns the manufacturing grid that applies to all physical layers unless it has been overridden at the physical layer level. The local argument specifies whether, if true, to look only in this technology database or, if false, to search this technology database and all of its referenced technology databases for the effective manufacturing grid.

Parameters:
local If true, look only in this technology database; If false, search this technology database and all its referenced technology databases.
Returns:
An oaDist, which is an oaUInt4 that represents the non-negative distance, along one axis, between two oaCoord values.

oaUInt4 oaTech::getDefaultManufacturingGrid   const
 

This function returns the manufacturing grid that applies to all physical layers unless it has been overridden at the physical layer level.

oaUserUnitsType oaTech::getDefaultUserUnits const oaViewType *    viewType [static]
 

This function returns the requested user-unit information from the tech database for the specified viewType.

Note: Although users can construct their own oaViewTypes, valid viewTypes for this function are restricted to the set of reserved viewTypes, namely, an oaReservedViewType object constructed with one of the following reserved view type enumerated constants: oacMaskLayout, oacSchematic, oacSchematicSymbol, oacNetlist, or oacHierDesign.

The developer can call oaViewType::get(oaReservedViewType) to construct and return a pointer to an a oaViewType object using one of the valid reserved viewType enumerated constants (for example, oaViewType::get(oacMaskLayout) or oaViewType::get(oaReservedViewType(oacMaskLayout)).

Parameters:
viewType A pointer to an oaViewType that corresponds to the specified type oaReservedViewType. It needs to be one of the reserved design viewTypes: maskLayout, schematic, schematicSymbol, netlist, or oaHierDesign.
Exceptions:
oacInvalidTechViewType 

oaCollection< oaDerivedLayerParam, oaTech > oaTech::getDerivedLayerParams oaUInt4    filterFlags = oacTechDerivedLayerParamIterAll const
 

This function returns a collection of derivedLayer parameters.

Parameters:
filterFlags Determines the extent of the returned collection of derivedLayer parameters:
  • oacTechDerivedLayerParmIterAll: The collection contains all derivedLayer parameters defined in this and all referenced oaTech databases.
  • oacTechDerivedLayerParamIterLocal: The collection contains the derivedLayer parameters defined locally in this oaTech database.

void oaTech::getFeatures oaUInt4 &    dataModelRev,
oaFeatureArray &    features
 

This function returns the data model revision number for the database, as well as an array of the features currently in the database. The application can iterate through the array to get the ID for each feature present. Each feature ID corresponds to an oaFeatureIDEnum value.

Parameters:
dataModelRev returned data model revision
features returned feature array

oaConstraintGroup * oaTech::getFoundryRules   const
 

This function returns the constraint group that represents the foundry rules for this technology.

oaCollection< oaGroup, oaTech > oaTech::getGroups oaGroupDef *    def const
 

This function returns a collection of groups in this tech database with the specified group definition.

Parameters:
def Input group definition.

oaCollection oaTech::getGroups   const
 

This function returns the complete set of groups in this tech database.

oaCollection oaTech::getGroupsByName const oaString &    name const
 

This function returns a collection of group names for the specified extension in this tech database.

Parameters:
name The extension to include in the collection.

oaTime oaTech::getLastSavedTime   const
 

This function returns the time at which this tech database was last modified.

oaCollection< oaTechLayerHeader, oaTech > oaTech::getLayerHeaders   const
 

This function returns a collection of layerHeaders in this tech database.

oaCollection< oaLayer, oaTech > oaTech::getLayers oaUInt4    filterFlags const
 

This function returns a collection of layers. The filterFlags value defines the extent of the collection.

Parameters:
filterFlags Defines the extent of the returned collection of layers:
  • oacLayerIterAll: The collection contains all layers defined in this and all referenced tech databases.
  • oacLayerIterLocal: The collection contains the layers defined locally in this tech database.
Refer to Incremental Technology Databases in the Using Technology Databases section of the Programmers Guide for more information about referenced tech databases.

oaCollection oaTech::getLayers   const
 

This function returns a collection of layers this and all referenced tech databases.

To return a collection of layers in the current tech only, refer to the getLayers function that takes the filterFlags argument.

oaLib * oaTech::getLib   const
 

This function returns a pointer to the library object containing this tech database.

void oaTech::getLibName const oaNameSpace &    ns,
oaString &    out
const
 

This function returns the name of the library associated with this tech database.

Parameters:
ns The name space to check for the library name.
out The name of the library used by this oaTech database.

void oaTech::getLibName oaScalarName &    libName const
 

This function returns the name of the library associated with this tech database.

Parameters:
libName Name of the library associated with this oaTech database.

oaChar oaTech::getMode   const
 

This function returns the mode of the currently open tech database.

oaUInt4 oaTech::getNumUndoCpRecs   const
 

This function returns the number of undo records on the most recent checkpoint saved for this tech.

oaUInt4 oaTech::getNumUndoRecsOnCp   const
 

This function returns the number of undo records that will be removed if an undo command is issued. The value returned depends on the undo model in use. If the undo model is oacUndoModelPostCheckpoint, the function returns the number of undo records before the last checkpoint. If the undo model is oacUndoModelPreCheckpoint, the function returns the number of undo records after the last checkpoint.

For more information about undo models, refer to Undo and Redo Use Models in OpenAccess in the Programmers Guide.

oaCollection oaTech::getOpenTechs   [static]
 

This function returns a collection of currently open tech databases.

oaCollection< oaOpPoint, oaTech > oaTech::getOpPoints oaUInt4    filterFlags const
 

This function returns a collection of operating points. The filterFlags value defines the extent of the collection.

Parameters:
filterFlags Determines the extent of the returned collection of operating points:
  • oacOpPointIterAll: The collection contains all operating points defined in this and all referenced tech databases .
  • oacOpPointIterLocal: The collection contains the operating points defined locally in this tech database.
Refer to Incremental Technology Databases in the Using Technology Databases section of the Programmers Guide for more information about referenced tech databases.

oaCollection oaTech::getOpPoints   const
 

This function returns a collection of operating points in this and all referenced tech databases.

To return a collection of operating points in the current tech only, refer to the getOpPoints function that takes the filterFlags argument.

void oaTech::getProcessFamily oaString &    processFamily,
oaBoolean    local = false
const
 

This function retrieves the processFamily attribute and returns it in the processFamily string. If the processFamily attribute is unset, the empty string is returned.

Parameters:
processFamily Returned string containing the processFamily.
local If true, look only in this technology database; If false, search this technology database and all its referenced technology databases.

oaCollection< oaPurpose, oaTech > oaTech::getPurposes oaUInt4    filterFlags const
 

This function returns a collection of purposes.

Parameters:
filterFlags Determines the extent of the returned collection of purposes:
  • oacPurposeIterAll: The collection contains all purposes defined in this and all referenced tech databases.
  • oacPurposeIterLocal: The collection contains the purposes defined locally in this tech database.
Refer to Incremental Technology Databases in the Using Technology Databases section of the Programmers Guide for more information about referenced tech databases.

oaCollection oaTech::getPurposes   const
 

This function returns a collection of purposes in this and all referenced tech databases.

To return a collection of purposes in the current tech only, refer to the getPurposes function that takes the filterFlags argument.

oaTime oaTech::getReadInTime   const
 

This function returns the time this tech database was read.

oaUInt4 oaTech::getRefCount   const
 

This function returns the number of times this tech database was opened without closing. This number includes both internal and external openings.

oaUInt4 oaTech::getRevNumber   [static]
 

This function returns the revision number for the tech database.

oaCollection< oaSiteDef, oaTech > oaTech::getSiteDefs oaUInt4    filterFlags const
 

This function returns a collection of siteDefs.

Parameters:
filterFlags Determines the extent of the returned collection of siteDefs:
  • oacSiteDefIterAll: The collection contains all siteDefs defined in this and all referenced tech databases.
  • oacSiteDefIterLocal: The collection contains the siteDefs defined locally in this tech database.
Refer to Incremental Technology Databases in the Using Technology Databases section of the Programmers Guide for more information about referenced tech databases.

oaCollection oaTech::getSiteDefs   const
 

This function returns a collection of siteDefs in this and all referenced tech databases.

To return a collection of siteDefs in the current tech only, refer to the getSiteDefs function that takes the filterFlags argument.

void oaTech::getTechHeaders oaTechHeaderArray &    refHeaders,
oaBoolean    local = false
const
 

This function returns an ordered list of tech database headers that are referenced by this tech database. If there are no references, an empty array 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:
refHeaders Array containing the set of oaTech database headers.
local Specifies the extent of the search for referenced oaTech databases. If local is true, the tech headers referenced directly from this tech in the order in which the references were set are returned. If local is false, the complete graph of tech databases rooted at this tech is returned in the refHeaders array. The order of the tech headers reflects a depth-first traversal of the tech graph. Note that this graph may not be complete if there are missing tech databases in the list.

oaTimeStamp oaTech::getTimeStamp oaAppObjectDef *    def const
 

This function returns the timeStamp value for the specified application object.

Parameters:
def The application object to check.

oaTimeStamp oaTech::getTimeStamp oaTechDataType    type const
 

This function returns the timeStamp value for the specified technology datatype.

Parameters:
type The technology datatype to check.

oaUndoModelEnum oaTech::getUndoModel   const
 

This function returns the undo model specified when calling enableUndo(). If this function is called and undo is not enabled, the default value of oacUndoModelNotSpecified is returned.

oaCollection< oaTechHeader, oaTech > oaTech::getUsedIn   const
 

This function returns a collection of techHeaders in other open tech databases that contain references to this tech database.

oaUserUnitsType oaTech::getUserUnits const oaViewType *    viewType,
oaBoolean    local
const
 

This function returns the user-unit information for the specified viewType. The local argument specifies whether, if true, to look only in this technology database or, if false, to search this technology database and all of its referenced technology databases for the effective user-unit.

Parameters:
viewType A pointer to an oaViewType that corresponds to the specified type oaReservedViewType. It needs to be one of the reserved design viewTypes: maskLayout, schematic, schematicSymbol, netlist, or oaHierDesign.
local If true, look only in this technology database; If false, search this technology database and all its referenced technology databases.
Exceptions:
oacInvalidTechViewType 

oaUserUnitsType oaTech::getUserUnits const oaViewType *    viewType const
 

This function returns the user-unit information for the specified viewType used for this technology database and all of its referenced technology databases.

Note: Although users can construct their own oaViewTypes, valid viewTypes for this function are restricted to the set of reserved viewTypes, namely, an oaReservedViewType object constructed with one of the following reserved view type enumerated constants: oacMaskLayout, oacSchematic, oacSchematicSymbol, oacNetlist, or oacHierDesign.

The developer can call oaViewType::get(oaReservedViewType) to construct and return a pointer to an a oaViewType object using one of the valid reserved viewType enumerated constants (for example, oaViewType::get(oacMaskLayout) or oaViewType::get(oaReservedViewType(oacMaskLayout)).

Parameters:
viewType A pointer to an oaViewType that corresponds to the specified type oaReservedViewType. It needs to be one of the reserved design viewTypes: maskLayout, schematic, schematicSymbol, netlist, or oaHierDesign.
Exceptions:
oacInvalidTechViewType 

oaCollection< oaValue, oaTech > oaTech::getValues oaUInt4    filterFlags const
 

This function returns a collection of values.

Parameters:
filterFlags Determines the extent of the returned collection of values:
  • oacTechValueIterAll: The collection contains all values defined in this and all referenced tech databases.
  • oacTechValueIterLocal: The collection contains the values defined locally in this tech database.
Refer to Incremental Technology Databases in the Using Technology Databases section of the Programmers Guide for more information about referenced tech databases.

oaCollection< oaValue, oaTech > oaTech::getValues   const
 

This function returns a collection of values in this and all referenced tech databases.

To return a collection of values in the current tech only, refer to the getValues function that takes the filterFlags argument.

oaCollection< oaTechViaDefHeader, oaTech > oaTech::getViaDefHeaders   const
 

This function returns a collection of viaDefHeaders in this tech database.

oaCollection< oaViaDef, oaTech > oaTech::getViaDefs oaUInt4    filterFlags const
 

This function returns a collection of viaDefs.

Parameters:
filterFlags Determines the extent of the returned collection of viaDefs:
  • oacViaDefIterAll: The collection contains all viaDefs defined in this and all referenced tech databases.
  • oacViaDefIterLocal: The collection contains the viaDefs defined locally in this tech database.
Refer to Incremental Technology Databases in the Using Technology Databases section of the Programmers Guide for more information about referenced tech databases.

oaCollection oaTech::getViaDefs   const
 

This function returns a collection of viaDefs in this and all referenced tech databases.

To return a collection of viaDefs in the current tech only, refer to the getViaDefs function that takes the filterFlags argument.

oaCollection< oaViaSpec, oaTech > oaTech::getViaSpecs oaUInt4    filterFlags const
 

This function returns a collection of viaSpecs.

Parameters:
filterFlags Determines the extent of the returned collection of viaSpecs:
  • oacViaSpecIterAll: The collection contains all viaSpecs defined in this and all referenced tech databases.
  • oacViaSpecIterLocal: The collection contains the viaSpecs defined locally in this tech database.
Refer to Incremental Technology Databases in the Using Technology Databases section of the Programmers Guide for more information about referenced tech databases.

oaCollection oaTech::getViaSpecs   const
 

This function returns a collection of via specs in this and all referenced tech databases.

To return a collection of via specs in the current tech only, refer to the getViaSpecs function that takes the filterFlags argument.

oaCollection< oaViaVariantHeader, oaTech > oaTech::getViaVariantHeaders oaUInt4    filterFlags = oacViaVariantHeaderIterAll const
 

This function returns a collection of viaVariantHeaders.

Parameters:
filterFlags Specifies what the collection contains. The bit flags are defined as follows:
  • oacViaVariantHeaderIterAll: The collection contains all oaViaVariantHeaders defined in this and all referenced technology databases.
  • oacViaVariantHeaderIterLocal: The collection contains the oaViaVariantHeaders defined locally in this technology database.

oaCollection< oaViaVariant, oaTech > oaTech::getViaVariants oaUInt4    filterFlags = oacViaVariantIterAll const
 

This function returns a collection of oaViaVariants.

Parameters:
filterFlags Specifies what the collection contains. The bit flags are defined as follows:
  • oacViaVariantIterAll: The returned collection contains all oaViaVariants defined in this and all referenced technology databases.
  • oacViaVariantIterLocal: The returned collection contains the oaViaVariants defined locally in this technology database.

oaBoolean oaTech::hasAttachment const oaLib *    lib [static]
 

This function returns true if the technology library lib has a technology attachment to another library.

Parameters:
lib Pointer to the technology library.

oaBoolean oaTech::hasDefaultConstraintGroup   const
 

This function returns a boolean indicating whether or not there is a default constraint group for this tech database.

oaBoolean oaTech::hasProcessFamily oaBoolean    local = false const
 

This function checks this database for a processFamily attribute if local is true, or if local is false, checks all databases in the graph of techs for a processFamily attribute. The function returns true if the processFamily attribute is set and returns false if the attribute is not set.

Parameters:
local If true, search for the processFamily attribute only in this technology database; If false, search this technology database and all its referenced technology databases.

oaBoolean oaTech::hasUnboundRefs   const
 

This function returns true if this database has unbound tech database references (or if it has no tech database references). Otherwise, false is returned.

The existence of an unbound tech database reference affects the search order when looking up technology objects in incremental tech databases. For more information about the search order, refer to Referencing Technology Databases in the Programmers Guide.

oaBoolean oaTech::isClearanceMeasureSet   const
 

This function returns true if the clearance measure attribute is explicitly set in the technology database; false is returned otherwise.

oaBoolean oaTech::isDBUPerUUSet const oaViewType *    viewType const
 

This function returns true if the DBUPerUU attribute for the specified viewType is explicitly set in the technology database; false is returned otherwise.

Parameters:
viewType A pointer to an oaViewType that corresponds to the specified type oaReservedViewType. It needs to be one of the reserved design viewTypes: maskLayout, schematic, schematicSymbol, netlist, or oaHierDesign.
Exceptions:
oacInvalidTechViewType 

oaBoolean oaTech::isDefaultManufacturingGridSet   const
 

This function returns true if the default manufacturing grid attribute is explicitly set in the technology database; false is returned otherwise.

oaBoolean oaTech::isGateGrounded oaBoolean    local const
 

This function returns a boolean indicating whether or not the gates are considered grounded. The local argument specifies whether, if true, to look only in this technology database or, if false, to search this technology database and all of its referenced technology databases for the effective boolean value.

Parameters:
local If true, look only in this technology database; If false, search this technology database and all its referenced technology databases.

oaBoolean oaTech::isGateGrounded   const
 

This function returns a boolean value indicating whether or not the gates are considered grounded in this tech database.

oaBoolean oaTech::isGateGroundedSet   const
 

This function returns true if the gates-are-considered-grounded attribute is explicitly set in the technology database; false is returned otherwise.

oaBoolean oaTech::isInUndo   const
 

This function determines whether this technology database in memory is currently in an undo or redo operation.

Returns:
true if this tech is in an undo or redo operation; false if the tech is not in an undo or redo operation.

oaBoolean oaTech::isModified   const
 

This function returns a boolean value that indicates if this tech database has been modified but not saved.

oaBoolean oaTech::isRecovered   const
 

This function returns a boolean that indicates whether this tech was recovered from a critical save or an auto save database file. For information about how to use a recover type database to restore a design, see the Programmers Guide article OpenAccess Libraries and Design Management.

oaBoolean oaTech::isUndoEnabled   const
 

This function determines whether undo is enabled for this technology database in memory.

Returns:
true if undo is enabled; false if undo is not enabled

oaBoolean oaTech::isUserUnitsSet const oaViewType *    viewType const
 

This function returns true if the user-unit attribute for the specified viewType is explicitly set in the technology database; false is returned otherwise.

Parameters:
viewType A pointer to an oaViewType that corresponds to the specified type oaReservedViewType. It needs to be one of the reserved design viewTypes: maskLayout, schematic, schematicSymbol, netlist, or oaHierDesign.
Exceptions:
oacInvalidTechViewType 

void oaTech::minimizeVM  
 

This function minimizes the amount of virtual memory this tech is currently using. It releases dynamically allocated data structures that can be rebuilt as needed.

Applications can call this function after creating a tech or making significant edits to an existing tech, before starting a phase of processing that interacts with the tech in different ways.

This function should be called sparingly, as it can have a substantial impact on the performance of subsequent operations.

oaTech * oaTech::open oaLib *    lib,
oaChar    mode = 'r'
[static]
 

This function opens the tech database for the specified library with the specified access mode. Note that the open functions do not create tech databases, they simply open them.

The tech to be opened might reference other techs in a graph. If so, OpenAccess attempts to open the referenced techs as well. If one of the referenced techs was edited out of context, conflicting technology objects might be encountered. It is an error if opening a tech:

  • Introduces a technology object with the same name as another technology object in the graph.
  • Introduces a technology attribute with the same name as another technology attribute in the graph that has a different value for the attribute.
  • Introduces a constraint group with the same name as another constraint group in the graph.

OpenAccess issues onConflict observer notifications and issues exceptions for conflicting objects in different techs in the graph. It also issues onProcessFamilyConflict and onExcludedLayerConflict for processFamily attribute conflicts or excluded layer conflicts.

For more information about referenced tech databases, refer to Incremental Technology Databases in the Using Technology Databases section of the Programmers Guide.

Parameters:
lib A pointer to the library whose oaTech database is to be opened.
mode The mode in which to open the database.
If there is no local tech database in the library, and the library uses an attached tech database specified with the "techLibName" property (as explained in the class description), this function will recursively attempt to resolve the target library and open the tech database for the resolved target library. An oacCannotFindInheritedTechLib exception is thrown if a "techLibName" string property in the target library resolution chain specifies the name of a non-existent library.

Returns:
A pointer to the opened tech database
Exceptions:
oacOpenOnTechBeingPurged Attempt to open a technology database that is being purged
oacCannotFindLibraryTech Tech database for the specified library is not found
oacTechFileDoesNotExist 
oacCannotFindInheritedTechLib 
oacDataNotCompatibleOnOpen The design contains new features that are not understood by this version of OpenAccess and cannot be opened
oacDataNotCompatibleOnOpenInAppendMode The design contains new features that are not understood by this version of OpenAccess and cannot be opened in append mode
oacCannotRepairCorruptedAppData 

oaTech * oaTech::open const oaScalarName &    libName,
oaChar    mode = 'r'
[static]
 

This function opens the tech database for the specified library with the specified access mode. Note that the open functions do not create tech databases, they simply open them.

The tech to be opened might reference other techs in a graph. If so, OpenAccess attempts to open the referenced techs as well. Refer to Incremental Technology Databases in the Using Technology Databases section of the Programmers Guide for more information.

If one of the referenced techs was edited out of context, conflicting technology objects might be encountered when opening the tech. It is an error if opening a tech:

  • Introduces a technology object with the same name as another technology object in the graph.
  • Introduces a technology attribute with the same name as another technology attribute in the graph that has a different value for the attribute.
  • Introduces a constraint group with the same name as another constraint group in the graph.

OpenAccess issues observer notifications and exceptions for conflicting objects in different techs in the graph. It also issues onProcessFamilyConflict and onExcludedLayerConflict for processFamily attribute conflicts or excluded layer conflicts. Refer to Conflicts in Incremental Technology Databases in the Using Technology Databases section of the Programmers Guide for more information.

Parameters:
libName The name of the library whose oaTech database is to be opened.
mode The mode in which to open the design.
If there is no local tech database in the library, and the library uses an attached tech database specified with the "techLibName" property (as explained in the oaTech class description), this function will recursively attempt to resolve the target library and open the tech database for the resolved target library. An oacCannotFindInheritedTechLib exception is thrown if a "techLibName" string property in the target library resolution chain specifies the name of a non-existent library.

Returns:
A pointer to the opened tech database
Exceptions:
oacTechLibNotFound 
oacOpenOnTechBeingPurged 
oacCannotFindLibraryTech 
oacTechFileDoesNotExist 
oacCannotFindInheritedTechLib 
oacDataNotCompatibleOnOpen The design contains new features that are not understood by this version of OpenAccess and cannot be opened
oacDataNotCompatibleOnOpenInAppendMode The design contains new features that are not understood by this version of OpenAccess and cannot be opened in append mode
oacCannotRepairCorruptedAppData 

void oaTech::purge  
 

This function closes this tech database, removing it from memory regardless of its reference count.

oaTech * oaTech::recover const oaScalarName &    libName,
oaSaveRecoverType    type
[static]
 

This function attempts to recover the tech with the specified saveRecover type in the specified library. If successful, the tech is returned.

Parameters:
libName The name of the library
type Either oacAutoSaveType or oacCriticalSaveType
Exceptions:
oacTechLibNotFound 

void oaTech::redo  
 

This function restores the state of the in-memory image of the technology database to its state before the last undo. The records are stored using either a pre-checkpoint or post-checkpoint model. This call reverses the changes only if undo is enabled, undo() was called for this tech, and no changes occurred since the last undo(). The redo operation starts from the most recent record and restores the one transaction defined by both the checkpoint and the undo model. Refer to the Undo and Redo Use Models article for additional information.

If there is an enabled observer on the action that is completed as a result of the redo operation, that observer is called. In addition, there are observers for the redo operation itself. Refer to oaTechUndoObserver for more information.

See also:
undo()
Exceptions:
oacTechUndoNotEnabled 

void oaTech::reopen oaChar    mode
 

This function reopens this tech database using the specified access mode. You can reset or truncate the contents of the tech database depending on the new access mode. This function does not affect the reference count of the tech database.

Parameters:
mode The mode in which to open the design.
Exceptions:
oacOpenOnTechBeingPurged 
oacDataNotCompatibleOnOpenInAppendMode The design contains new features that are not understood by this version of OpenAccess and cannot be opened in append mode
oacDataNotCompatibleOnOpenInEditableMode The design contains new features that are not understood by this version of OpenAccess and cannot be opened in 'a'ppend or 'A'ppend mode
oacCannotDowngradeDatabase The database was opened in ‘A’ mode and cannot be reopened in 'a' mode

void oaTech::revert  
 

This function reloads the contents of this tech database from disk. If the tech database is open in write mode, it is simply truncated. This function does not affect the access mode of the tech database.

void oaTech::save oaSaveRecoverType    type
 

This function saves the oaSaveRecoverType file to disk.

Parameters:
type Either oacAutoSaveType or oacCriticalSaveType
Exceptions:
oacSaveReadOnlyTech 

void oaTech::save  
 

This function saves the tech database to disk. The tech remains open and all of its in-memory data remains valid.

Exceptions:
oacSaveReadOnlyTech 
oacDataNotCompatibleOnSave Design contains incompatible data and cannot be saved

void oaTech::saveAs const oaScalarName &    libName
 

This function saves the tech database to the disk in the tech file associated with the specified library name. The tech remains open and all of its in-memory data remains valid.

Parameters:
libName The name of the library in which to save the oaTech database.
Exceptions:
oacTechLibNotFound 
oacDataNotCompatibleOnSave Design contains incompatible data and cannot be saved

void oaTech::setClearanceMeasure oaClearanceMeasure    measure
 

This function sets the clearance measurement value for this technology database.

Parameters:
measure The clearance measurement value.
Exceptions:
oacConflictingClearanceMeasureInTech The ClearanceMeasure tech attribute cannot be set as indicated because it would introduce conflicts in the specified tech graph

void oaTech::setCp oaUInt4    checkPointID = UINT_MAX
 

This function sets an undo checkpoint for the in-memory image of this technology database. A checkpoint marks a state of the tech. If undo is enabled, each call to undo() restores the tech to the state marked by the previous checkpoint. The checkpoint has a user-specified ID, which can be used to assist in keeping track of checkpoints. If not specified, a unique value of checkPointID is automatically assigned to the checkpoint by OpenAccess.

Parameters:
checkPointID The specified checkpoint ID
Exceptions:
oacTechUndoNotEnabled 

void oaTech::setDBUPerUU const oaViewType *    viewType,
oaUInt4    value
 

This function sets the database-units per user-unit information in the technology database for the specified viewType.

The viewTypes allowed in this call are the subset of oaReservedViewType values that are used as viewTypes for an oaDesign. These are: oacMaskLayout, oacSchematic, oacSchematicSymbol, oacNetlist, or oacHierDesign.

The caller can construct the viewType inline with this function call as in: tech->setDBUPerUU(oaViewType::get(oacMaskLayout), 2000)

Note: Significant flow issues result when you combine layouts that use different DBUPerUU settings in a project resulting in a single mask. To avoid any issues, use a single DBUPerUU setting that is a function of the manufacturing grid for the given technology, as outlined in the following table.

Manufacturing Grid Typically Used at DBperUUs that Work (mathematically) Recommended
0.1 micron (100 nm) 1 micron and above 100, 200, 1000, or 2000 1000
0.05 micron (50 nm) 0.5 micron and above 200, 1000, or 2000 1000
0.01 micron (10 nm) 250 nm and above 200, 1000, or 2000 1000
0.005 micron (5 nm) 90 nm and above 2000 2000
0.0025 micron (2.5 nm) Experimental 800,1600,4000 2000*
0.002 micron (2 nm) Experimental 1000,2000 2000
0.001 micron (1 nm) Not yet needed 2000 2000

Parameters:
viewType Pointer to an oaViewType for the type of design to set the value for.
value The number of database-units that represent a distance of 1 user-unit.
Exceptions:
oacInvalidDBUPerUU 
oacConflictingDBUPerUUInTech 
oacInvalidTechViewType 

void oaTech::setDefaultManufacturingGrid oaDist    grid
 

This function sets the manufacturing grid that applies to all physical layers unless it has been overridden at the physical layer level.

Parameters:
grid The new value for the default manufacturing grid. An oaDist is an oaUInt4 that represents the non-negative distance, along one axis, between two oaCoord values.
Exceptions:
oacConflictingDefaultManufacturingGridInTech 

void oaTech::setGateGrounded oaBoolean    gateGrounded
 

This function sets the gateGrounded attribute in this technology database.

Parameters:
gateGrounded Boolean that specifies whether or not the gates are considered grounded.
Exceptions:
oacConflictingGateGroundedInTech The GateGrounded tech attribute cannot be set as indicated because it would introduce conflicts in the specified tech graph

void oaTech::setProcessFamily const oaString &    processFamily
 

This function sets the processFamily attribute for this technology database. When called, this function replaces the current processFamily attribute unless doing so causes an error. It is an error if a tech, in any technology database graph that this tech is part of, has a different processFamily attribute already set. Setting the processFamily to its current value does not produce an error. If you call this function with an empty string, the processFamily attribute is unset.

Parameters:
processFamily The string value for the process family attribute.
Exceptions:
oacConflictingProcessFamilyInTech 

void oaTech::setRefs const oaTechArray &    refs
 

This function sets the tech database references for this tech. A reference is a mechanism that allows this tech database to inherit information from other techs. The set of referenced tech databases is known as the graph of techs. This function removes any previously existing references (as a result, some oaTechLayerHeaders and oaTechViaDefHeaders may become and remain unbound).

An oacTechSetRefsConflicts exception is thrown if this function:

  • Introduces a technology object with the same name (or other key attribute) as another technology object in the graph.
  • Introduces a technology attribute with the same name as another technology attribute in the graph that has a different value for the attribute.
  • Introduces a constraint group with the same name as another constraint group in the graph.

An oacTechCannotSetDuplicateRefs exception is thrown if this function attempts to set duplicate tech database references on a tech database.

An oacTechSetRefsCircularReference exception is thrown if an attempt is made to set a reference on this database so that its graph chain refers back to this tech db (if techA->techB->techC and this function attempts to set techC->techA).

OpenAccess issues onConflict observer notifications and issues exceptions for the above errors. OpenAccess also issues onProcessFamilyConflict and onExcludedLayerConflict observer notifications for processFamily attribute conflicts or excluded layer conflicts.

When setRefs() is used, pre and post-modify observers are called from oaObserver<oaTech> using the oacSetRefsTechModType.

For more information about setting references, refer to Incremental Technology Databases in the Using Technology Databases section of the Programmers Guide.

Parameters:
refs An array of oaTech pointers to reference.
Exceptions:
oacTechSetRefsConflicts This exception is thrown if any conflict is discovered in the graph of tech databases.
oacTechCannotSetDuplicateRefs This exception is throw if there is a duplicate database reference in the refs array. For example, if the ref array contains (techB, techB).
oacTechSetRefsCircularReference This exception is thrown if an attempt is made to set a reference on this database so that its graph chain refers back to this tech db (if techA->techB->techC and this function attempts to set techC->techA).
oacTechSetRefsCannotOpenAllRefGraphs This exception is thrown if all technology databases in the graph are not open and setRefs fails to open any of them. All technology databases in the graph must be open for setRefs to proceed.
oacSetRefsTechOpen This exception is thrown if this technology database is being opened.

void oaTech::setUserUnits const oaViewType *    viewType,
oaUserUnitsType    value
 

This function sets the user-unit information in the technology database for the specified viewType.

Note: Although users can construct their own oaViewTypes, valid viewTypes for this function are restricted to the set of reserved viewTypes, namely, an oaReservedViewType object constructed with one of the following reserved view type enumerated constants: oacMaskLayout, oacSchematic, oacSchematicSymbol, oacNetlist, or oacHierDesign.

The developer can call oaViewType::get(oaReservedViewType) to construct and return a pointer to an a oaViewType object using one of the valid reserved viewType enumerated constants (for example, oaViewType::get(oacMaskLayout) or oaViewType::get(oaReservedViewType(oacMaskLayout)).

Parameters:
viewType A pointer to an oaViewType that corresponds to the specified type oaReservedViewType. It needs to be one of the reserved design viewTypes: maskLayout, schematic, schematicSymbol, netlist, or oaHierDesign.
value The user-unit value to set.
Exceptions:
oacConflictingUserUnitsInTech 
oacInvalidTechViewType 

void oaTech::undo  
 

This function reverts the changes made to the in-memory image of this technology database. Undo records are stored using either a pre-checkpoint or post-checkpoint model. This function steps back one checkpoint to the most recent checkpoint and reverses the changes saved in the undo records. The undo operation starts from the most recent record and reverses the one transaction defined by both the checkpoint and the undo model. Refer to the Undo and Redo Use Models article for additional information.

If there is an enabled observer on the action that is completed as a result of the undo operation, that observer is called. In addition, there are observers for the undo operation itself. Refer to oaTechUndoObserver for more information.

Note that only changes to managed objects in the oaTech are reversed. Utility objects that contain pointers to a managed object are not affected.

See also:
redo()
Exceptions:
oacTechUndoNotEnabled 
oacTechCannotUndoWithoutCpInPostModel 

void oaTech::unsetClearanceMeasure  
 

This function reverts the clearance measure attribute back to its unset state in the technology database.

Exceptions:
oacUnsetClearanceMeasureNotSet 

void oaTech::unsetCp  
 

This function removes the last checkpoint in this tech assuming that there are no undo records after the last checkpoint. Otherwise, an exception is thrown. See oaTech::getNumUndoCpRecs() for getting the number of undo records after the checkpoint.

Exceptions:
oacTechUndoNotEnabled 
oacTechCannotUnsetNonEmptyCp 

void oaTech::unsetDBUPerUU const oaViewType *    viewType
 

This function reverts the database-units per user-unit attribute for the specified viewType back to its unset state in the technology database.

Parameters:
viewType A pointer to an oaViewType that corresponds to the specified type oaReservedViewType. It needs to be one of the reserved design viewTypes: maskLayout, schematic, schematicSymbol, netlist, or oaHierDesign.
Exceptions:
oacUnsetDBUPerUUNotSet 
oacInvalidTechViewType 

void oaTech::unsetDefaultManufacturingGrid  
 

This function reverts the default manufacturing grid attribute back to its unset state in the technology database.

Exceptions:
oacUnsetDefaultManufacturingGridNotSet 

void oaTech::unsetGateGrounded  
 

This function reverts the gates-are-considered-grounded attribute back to its unset state in the technology database.

Exceptions:
oacUnsetGateGroundedNotSet 

void oaTech::unsetProcessFamily  
 

This function unsets the processFamily attribute to the empty string for this technology database.

void oaTech::unsetRefs  
 

This function removes all references to other tech databases. No operation is performed if this tech database has no references. For more information about tech database references, refer to Incremental Technology Databases in the Using Technology Databases section of the Programmers Guide.

Removing existing oaTech database references might cause some oaTechLayerHeaders and oaTechViaDefHeaders to become unbound and remain that way.

Exceptions:
oacUnsetRefsTechOpen This exception is thrown if this technology database is being opened.

void oaTech::unsetUserUnits const oaViewType *    viewType
 

This function reverts the user-unit attribute for the specified viewType back to its unset state in the technology database.

Parameters:
viewType A pointer to an oaViewType that corresponds to the specified type oaReservedViewType. It needs to be one of the reserved design viewTypes: maskLayout, schematic, schematicSymbol, netlist, or oaHierDesign.
Exceptions:
oacUnsetUserUnitsNotSet 
oacInvalidTechViewType 

oaInt4 oaTech::uuToDBU const oaViewType *    viewType,
oaDouble    value
 

This function converts the user units into database units for the specified viewType.

The viewTypes allowed in this call are the subset of oaReservedViewType values that are used as viewTypes for an oaDesign. These are: oacMaskLayout, oacSchematic, oacSchematicSymbol, oacNetlist, or oacHierDesign.

The caller can construct the viewType inline with this function call as in: tech->uuToDBU(oaViewType::get(oacMaskLayout), 22.6)

Parameters:
viewType A pointer to an oaViewType that corresponds to the specified type oaReservedViewType. It needs to be one of the reserved design viewTypes: maskLayout, schematic, schematicSymbol, netlist, or oaHierDesign.
value The value in user units to convert to database units.
Exceptions:
oacInvalidTechViewType 

oaUInt8 oaTech::uuToDBUArea const oaViewType *    viewType,
oaDouble    value
 

This function converts the area in square user units to an area in square database units for the specified viewType.

The viewTypes allowed in this call are the subset of oaReservedViewType values that are used as viewTypes for an oaDesign. These are: oacMaskLayout, oacSchematic, oacSchematicSymbol, oacNetlist, or oacHierDesign.

The caller can construct the viewType inline with this function call as in: tech->uuToDBUArea(oaViewType::get(oacMaskLayout), 184.0)

Parameters:
viewType A pointer to an oaViewType that corresponds to the specified type oaReservedViewType. It needs to be one of the reserved design viewTypes: maskLayout, schematic, schematicSymbol, netlist, or oaHierDesign.
value The area in user units to convert to database units.
Exceptions:
oacInvalidTechViewType 

oaUInt4 oaTech::uuToDBUDistance const oaViewType *    viewType,
oaDouble    value
 

This function converts the user-unit distance to database-unit distance for the specified viewType.

The viewTypes allowed in this call are the subset of oaReservedViewType values that are used as viewTypes for an oaDesign. These are: oacMaskLayout, oacSchematic, oacSchematicSymbol, oacNetlist, or oacHierDesign.

The caller can construct the viewType inline with this function call as in: tech->uuToDBU(oaViewType::get(oacMaskLayout), 22.6)

Parameters:
viewType A pointer to an oaViewType that corresponds to the specified type oaReservedViewType. It needs to be one of the reserved design viewTypes: maskLayout, schematic, schematicSymbol, netlist, or oaHierDesign.
value The distance in user units to convert to database units.
Exceptions:
oacInvalidTechViewType 

oaBoolean oaTech::validate   const
 

This function returns false if there are multiple objects with the same attributes or conflicting parameter values in the technology database graph rooted at this tech database. It returns true otherwise. OpenAccess issues onConflict observer notifications for conflicting objects in different techs in the graph. It also issues onProcessFamilyConflict and onExcludedLayerConflict for processFamily attribute conflicts or excluded layer conflicts.

For more information, refer to Incremental Technology Databases in the Using Technology Databases section of the Programmers Guide.


Member Enumeration Documentation

anonymous enum
 

Enumeration values:
dtIndex 


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

Return to top of page