oaObserver<oaTech> Class Template Reference

Inheritance diagram for oaObserver<oaTech>:

oaBaseObserver


Public Methods

 oaObserver (oaUInt4 priorityIn)
virtual ~oaObserver ()
virtual void onCreate (oaTech *tech)
virtual void onFirstOpen (oaTech *tech)
virtual void onPurge (oaTech *tech)
virtual void onPreReopen (oaTech *tech, oaChar newMode)
virtual void onPostReopen (oaTech *tech, oaChar oldMode)
virtual void onTruncate (oaTech *tech)
virtual void onPreSave (oaTech *tech)
virtual void onPostSave (oaTech *tech, oaBoolean succeeded)
virtual void onPreSaveAs (oaTech *tech)
virtual void onPostSaveAs (oaTech *tech, oaBoolean succeeded)
virtual void onPreModify (oaTech *tech, oaTechModTypeEnum modType)
virtual void onPostModify (oaTech *tech, oaTechModTypeEnum modType)
virtual void onConflict (oaTech *mostDerivedTech, oaTechConflictTypeEnum conflictType, oaObjectArray conflictingObjs)
virtual void onUnboundRef (oaTech *tech, oaTechHeader *header)
virtual void onClearanceMeasureConflict (oaTechArray conflictingTechs)
virtual void onDefaultManufacturingGridConflict (oaTechArray conflictingTechs)
virtual void onGateGroundedConflict (oaTechArray conflictingTechs)
virtual void onDBUPerUUConflict (oaTechArray conflictingTechs, oaViewType *viewType)
virtual void onUserUnitsConflict (oaTechArray conflictingTechs, oaViewType *viewType)
virtual void onPreOpenRefs (oaTech *tech)
virtual void onPostOpenRefs (oaTech *tech)
virtual void onPreAttach (oaLib *lib, const oaScalarName &attachLibName)
virtual void onPostAttach (oaLib *lib, const oaScalarName &attachLibName)
virtual void onPreDetach (oaLib *lib)
virtual void onPostDetach (oaLib *lib)
 oaObserver (oaUInt4 priorityIn, oaBoolean enabledIn)
virtual void onProcessFamilyConflict (const oaTechArray &conflictedTechs)
virtual void onExcludedLayerConflict (oaTech *mostDerivedTech, const oaPhysicalLayer *excludingLayer, const oaLayer *excludedLayer)

Detailed Description

template<>
class oaObserver<oaTech>

This base template class can be used to derive observers for oaTech objects. It supports onCreate, onFirstOpen, onPreModify, onPostModify, onPurge, onPreSave, onPostSave, onPreSaveAs, onPostSaveAs, onPreReopen, onPostReopen, onTruncate, onConflict, onUnboundRef, onClearanceMeasureConflict, onDefaultManufacturingGridConflict, onGateGroundedConflict, onDBUPerUUConflict, onUserUnitsConflict, onPreOpenRefs, and onPostOpenRefs event notifications.

See oaObserver for information on using Open Access observer template classes to derive and instantiate observers in an application.


Constructor & Destructor Documentation

oaObserver<oaTech>::oaObserver oaUInt4    priorityIn
 

This is the oaObserver<oaTech> constructor. If multiple observers exist for a given oaTech notification event, observers with a lower priorityIn value are called before those with a higher value.

Parameters:
priorityIn priority of this observer relative to other oaTech observers

oaObserver<oaTech>::~oaObserver   [virtual]
 

This is the destructor for the oaObserver<oaTech> class. This function destroys this oaObserver<oaTech> object, deactivating and deleting this observer from the Tech observer list, and freeing all resources associated with this observer.

oaObserver<oaTech>::oaObserver oaUInt4    priorityIn,
oaBoolean    enabledIn
 


Member Function Documentation

void oaObserver<oaTech>::onClearanceMeasureConflict oaTechArray    conflictingTechs [virtual]
 

This function is called when the ClearanceMeasure attribute has conflicting (non-equal) values in a graph of technology databases.

This can occur when a tech database that is part of a graph of referenced techs is edited out of context and then reintroduced into the graph.

The application's derived class should implement this function to receive notification when a tech database has an ClearanceMeasure attribute whose value conflicts with another ClearanceMeasure attribute in a different tech in the graph of tech databases.

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

Parameters:
conflictingTechs Array of technology databases in which the attributes conflict. The first element in the array is the most derived tech in the graph.

void oaObserver<oaTech>::onConflict oaTech *    mostDerivedTech,
oaTechConflictTypeEnum    conflictType,
oaObjectArray    conflictingObjs
[virtual]
 

This function is called when there are conflicting technology objects in a graph of technology databases. This can occur when a tech database that is part of a graph of referenced techs is edited out of context and then reintroduced into the graph through reopening the graph.

The application's derived class should implement this function to receive notification when there is a conflicting technology object in the graph of tech databases.

Note: It is the application's responsibility to resolve the observed conflict. The observed conflict is resolved when all except one object in the conflictingObjs array are deleted.

Refer to Resolving Conflicts (Due to Out-of-Context Edits) in the Using Technology Databases section of the Programmers Guide for more information.

Parameters:
mostDerivedTech The tech that is at the top of the tech graph with the observed conflicts
conflictType The type of conflict
conflictingObjs An array of objects in a group of techs that conflict with each other

void oaObserver<oaTech>::onCreate oaTech *    tech [virtual]
 

This function is called after an oaTech object is created. The application's derived observer class should implement this function to receive notification when an oaTech object is created.

Parameters:
tech pointer to the created oaTech object

void oaObserver<oaTech>::onDBUPerUUConflict oaTechArray    conflictingTechs,
oaViewType *    viewType
[virtual]
 

This function is called when the DBUPerUU attribute has conflicting (non-equal) values in a graph of technology databases.

This can occur when a tech database that is part of a graph of referenced techs is edited out of context and then reintroduced into the graph.

The application's derived class should implement this function to receive notification when a tech database has a DBUPerUU attribute whose value conflicts with another DBUPerUU attribute in a different tech in the graph of tech databases.

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

Parameters:
conflictingTechs Array of technology databases in which the attributes conflict. The first element in the array is the most derived tech in the graph.
viewType Pointer to an oaViewType associated with the attribute.

void oaObserver<oaTech>::onDefaultManufacturingGridConflict oaTechArray    conflictingTechs [virtual]
 

This function is called when the DefaultManufacturingGrid attribute has conflicting (non-equal) values in a graph of technology databases.

This can occur when a tech database that is part of a graph of referenced techs is edited out of context and then reintroduced into the graph.

The application's derived class should implement this function to receive notification when a tech database has a DefaultManufacturingGrid attribute whose value conflicts with another DefaultManufacturingGrid attribute in a different tech in the graph of tech databases.

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

Parameters:
conflictingTechs Array of technology databases in which the attributes conflict. The first element in the array is the most derived tech in the graph.

void oaObserver<oaTech>::onExcludedLayerConflict oaTech *    mostDerivedTech,
const oaPhysicalLayer *    excludingLayer,
const oaLayer *    excludedLayer
[virtual]
 

This observer notification is triggered when an excluded layer is detected in the ITDB graph, which is rooted at the mostDerivedTech.

Parameters:
mostDerivedTech The tech that is at the top of the tech graph with the observed conflicts.
excludingLayer Pointer to the layer on which the excludedLayer is set.
excludedLayer Pointer to the excludedLayer.

void oaObserver<oaTech>::onFirstOpen oaTech *    tech [virtual]
 

This function is called when an oaTech object is first opened. The application's derived class should implement this function to receive notification when an oaTech object has been opened.

Parameters:
tech A pointer to the newly-opened oaTech object

void oaObserver<oaTech>::onGateGroundedConflict oaTechArray    conflictingTechs [virtual]
 

This function is called when the GateGrounded attribute has conflicting (non-equal) values in a graph of technology databases.

This can occur when a tech database that is part of a graph of referenced techs is edited out of context and then reintroduced into the graph.

The application's derived class should implement this function to receive notification when a tech database has a GateGrounded attribute whose value conflicts with another GateGrounded attribute in a different tech in the graph of tech databases.

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

Parameters:
conflictingTechs Array of technology databases in which the attributes conflict. The first element in the array is the most derived tech in the graph.

void oaObserver<oaTech>::onPostAttach oaLib *    lib,
const oaScalarName &    attachLibName
[virtual]
 

This function is called after before a technology library attachment is made using oaTech::attach.

Parameters:
lib Pointer to the library being attached.
attachLibName Name of the library to attach to.

void oaObserver<oaTech>::onPostDetach oaLib *    lib [virtual]
 

This function is called just after a library attachment is removed using oaTech::detach.

Parameters:
lib Pointer to the library being detached.

void oaObserver<oaTech>::onPostModify oaTech *    tech,
oaTechModTypeEnum    modType
[virtual]
 

This function is called after an oaTech object has been modified. The application's derived class should implement this function to receive notification when an oaTech object has been modified.

Parameters:
tech A pointer to the modified oaTech object
modType The type of modification that was made

void oaObserver<oaTech>::onPostOpenRefs oaTech *    tech [virtual]
 

This function is called after references are bound for an incremental technology database. These notifications occur after a technology database that has references is opened, and also after oaTech::setRefs() is performed on a technology database.

The application's derived class should implement this function to receive notification after the binding and opening of referenced databases.

Note: There is a notion here of a recursive descent. For example, when you have a technology database graph, A->B->C, if you open A, and B and C are not opened, you get the following notifications:

  1. onPreOpenRefs(A)
  2. onPreOpenRefs(B)
  3. onPostOpenRefs(B)
  4. onPostOpenRefs(A)

Parameters:
tech Pointer to the oaTech object that has references.

void oaObserver<oaTech>::onPostReopen oaTech *    tech,
oaChar    oldMode
[virtual]
 

This function is called just after an oaTech object is reopened using a new access mode. The application's derived class should implement this function to receive notification when an oaTech object has been reopened in a new access mode.

Parameters:
tech A pointer to the oaTech with the mode change
oldMode The mode with which the oaTech was previously opened

void oaObserver<oaTech>::onPostSave oaTech *    tech,
oaBoolean    succeeded
[virtual]
 

This function is called just after an attempt to save an oaTech object to disk. The application's derived class should implement this function to receive notification when a save on an oaTech has been attempted.

Parameters:
tech a pointer to the saved oaTech
succeeded a boolean that indicates whether the save was successful

void oaObserver<oaTech>::onPostSaveAs oaTech *    tech,
oaBoolean    succeeded
[virtual]
 

This function is called after an attempt has been made to save an oaTech to disk in a user-specified library (through an oaTech::saveAs call). The application's derived class should implement this function to receive notification when an attempt has been made to save an oaTech object to disk in a user-specified library.

Parameters:
tech a pointer to the oaTech on which the saveAs() call was made
succeeded a oaBoolean that indicates whether the save was successful

void oaObserver<oaTech>::onPreAttach oaLib *    lib,
const oaScalarName &    attachLibName
[virtual]
 

This function is called just before a technology library attachment is made using oaTech::attach.

Parameters:
lib Pointer to the library being attached.
attachLibName Name of the library to attach to.

void oaObserver<oaTech>::onPreDetach oaLib *    lib [virtual]
 

This function is called just before a library attachment is removed using oaTech::detach.

Parameters:
lib Pointer to the library being detached.

void oaObserver<oaTech>::onPreModify oaTech *    tech,
oaTechModTypeEnum    modType
[virtual]
 

This function is called before an oaTech object is modified. The application's derived class should implement this function to receive notification when an oaTech object is about to be modified.

Parameters:
tech A pointer to the oaTech object to be modified
modType The type of modification to be made

void oaObserver<oaTech>::onPreOpenRefs oaTech *    tech [virtual]
 

This function is called before references are bound for an incremental technology database. These notifications occur when a technology database that has references is opened, and also when oaTech::setRefs() is performed on a technology database. The reference is opened and the referenced databases are bound. Referenced databases may themselves be opened in order to complete the binding.

The application's derived class should implement this function to receive notification prior to the binding and opening of referenced databases.

Note: There is a notion here of a recursive descent. For example, when you have a technology database graph, A->B->C, if you open A, and B and C are not opened, you get the following notifications:

  1. onPreOpenRefs(A)
  2. onPreOpenRefs(B)
  3. onPostOpenRefs(B)
  4. onPostOpenRefs(A)

Parameters:
tech Pointer to the oaTech object that has references.

void oaObserver<oaTech>::onPreReopen oaTech *    tech,
oaChar    newMode
[virtual]
 

This function is called before an oaTech object is reopened using a different access mode. The application's derived class should implement this function to receive notification when an oaTech object is about to be reopened.

Parameters:
tech A pointer to the oaTech about to be reopened
newMode The new mode in which the oaTech will be reopened

void oaObserver<oaTech>::onPreSave oaTech *    tech [virtual]
 

This function is called just before an oaTech object is saved to disk. The application's derived class should implement this function to receive notification when an oaTech object is about to be saved.

Parameters:
tech A pointer to the design to be saved

void oaObserver<oaTech>::onPreSaveAs oaTech *    tech [virtual]
 

This function is called just before a design is saved to disk in a user-specified library (through an oaTech::saveAs call). The application's derived class should implement this function to receive notification when an oaTech object is about to be saved in a user-specified library.

Parameters:
tech A pointer to the oaTech about to be saved

void oaObserver<oaTech>::onProcessFamilyConflict const oaTechArray &    conflictedTechs [virtual]
 

This function is called when the ProcessFamily attribute has conflicting (non-equal) values in a graph of technology databases.

For the ProcessFamily attribute, note that the empty string (“”), is interpreted to mean that the attribute value is unset. An unset attribute does not conflict with other attribute values.

A ProcessFamily conflict can occur when a tech database that is part of a graph of referenced techs is edited out of context and then reintroduced into the graph.

The application's derived class should implement this function to receive notification when a tech database has a ProcessFamily attribute whose value conflicts with another ProcessFamily attribute in a different tech in the graph of tech databases.

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

Parameters:
conflictedTechs An array of technology databases in which the attributes conflict. The first element in the array is the most derived tech in the graph.

void oaObserver<oaTech>::onPurge oaTech *    tech [virtual]
 

This function is called when an oaTech object is about to be purged from memory. The application's derived class should implement this function to receive notification when an oaTech object is about to be purged.

Parameters:
tech A pointer to the oaTech about to be purged

void oaObserver<oaTech>::onTruncate oaTech *    tech [virtual]
 

This function is called just before an oaTech is truncated (for example, after all contents are removed). The application's derived class should implement this function to receive notification when an oaTech object is about to be truncated.

Parameters:
tech A pointer to the oaTech about to be truncated

void oaObserver<oaTech>::onUnboundRef oaTech *    tech,
oaTechHeader *    header
[virtual]
 

This function is called when an unbound reference to a technology database in the graph of referenced tech databases is detected when a technology database graph is opened using oaTech::open(). (This can occur when a referenced tech database is unavailable.)

The application's derived class should implement this function to receive notification when there is an unbound reference to a tech database.

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

Parameters:
tech Tech currently being opened
header Unbound header specifying the tech database that is not available

void oaObserver<oaTech>::onUserUnitsConflict oaTechArray    conflictingTechs,
oaViewType *    viewType
[virtual]
 

This function is called when the UserUnits attribute has conflicting (non-equal) values in a graph of technology databases.

This can occur when a tech database that is part of a graph of referenced techs is edited out of context and then reintroduced into the graph.

The application's derived class should implement this function to receive notification when a tech database has a UserUnits attribute whose value conflicts with another UserUnits attribute in a different tech in the graph of tech databases.

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

Parameters:
conflictingTechs Array of technology databases in which the attributes conflict. The first element in the array is the most derived tech in the graph.
viewType Pointer to an oaViewType associated with the attribute.


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

Return to top of page