oaNode Class Reference

Inheritance diagram for oaNode:

oaDesignObject oaObject oaGroundedNode


Public Methods

void destroy ()
void setName (const oaString &name)
void setLayerNum (oaLayerNum layer)
void setLocation (const oaPoint &location)
oaBoolean hasId () const
oaBoolean hasLayerNum () const
oaBoolean hasLocation () const
oaParasiticNetworkgetParasiticNetwork () const
oaUInt4 getId () const
void getName (oaString &name) const
oaLayerNum getLayerNum () const
void getLocation (oaPoint &location) const
void addConn (oaDesignObject *conn)
void removeConn (oaDesignObject *conn)
void addToSubNetwork (oaSubNetwork *subNetwork)
void removeFromSubNetwork (oaSubNetwork *subNetwork)
oaCollection< oaDevice, oaNode > getFromDevices () const
oaCollection< oaDevice, oaNode > getToDevices () const
oaCollection< oaSubNetwork, oaNode > getSubNetworks () const
oaCollection< oaDesignObject, oaNode > getConns () const

Static Public Methods

oaNode * create (oaParasiticNetwork *network)
oaNode * create (oaParasiticNetwork *network, oaUInt4 id)
oaNode * find (const oaParasiticNetwork *network, oaUInt4 id)
oaNode * find (const oaParasiticNetwork *network, const oaString &name)
oaBoolean isValidName (const oaParasiticNetwork *network, const oaString &name)
oaUInt4 getUniqueId (oaParasiticNetwork *network)

Public Types

enum  { dtIndex = oacNodeDataType }
enum  { domain = oacNoDomain }

Detailed Description

The oaNode class represents nodes contained within an oaParasiticNetwork. Nodes connect devices, terms and instTerms. They can also describe the physical location of a point within the routing topology, which is useful when a long wire is broken into a series of distributed parasitic elements. In that case, the layer and origin represent the position of the node along the wire. Capacitance between a node and an implicit ground can be represented using the oaGroundedNode derived class.

Nodes are managed objects, but they can be loaded from disk into memory (and unloaded from memory back to disk) on request as part of the parasitic network to which they belong. A pointer to a node becomes invalid after the parasitic network to which it belongs has been unloaded.

Nodes can have an integer ID that is chosen by the client that creates them. The ID is usually optional, but IDs are required for nodes that are to be connected to a coupling capacitor between two different networks. IDs are also required for nodes that are the endpoint of a device in a lower-level parasitic network partition. When specified, IDs must be unique across all of the nodes within the same parasitic network. The getUniqueId() function can be used to obtain consecutive unique IDs.

Nodes can also have an optional name string chosen by the client that creates them. This is primarily useful for small custom designs, as assigning a separate name to every node in large digital designs is prohibitively expensive. Node names must be unique within the same parasitic network.

Undo, properties, and groups are not supported for oaNode. Extensions on oaNode (and interPointer extensions that refer to an oaNode) are only accessible while the oaNode is loaded.

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


Member Function Documentation

void oaNode::addConn oaDesignObject *    conn
 

This function adds a connection to this node. The conn object must be a bitTerm or an instTerm. For a ParasiticNetwork that is on an oaNet the object must be an oaBitTerm or oaInstTerm. For a parasiticNetwork on an occNet, the object must be an oaOccBitTerm or oaOccInstTerm.

When a terminal is represented by more than one node, it is particularly important for the node to have a layer and location. This enables applications that stitch parasitics across hierarchical boundaries to properly match the node for the terminal with the node for the instTerm.

Note: This function throws an oacInvalidNodeConnNet exception if the node and the conn are not on the same or equivalent nets in the block domain. A similar check is not performed in the occurrence domain.

Parameters:
conn The connection to be added to this node
Exceptions:
oacInvalidNodeConnType 
oacInvalidNodeConnNet 

void oaNode::addToSubNetwork oaSubNetwork *    subNetwork
 

This function adds this node to the specified subNetwork.

Parameters:
subNetwork The sub-network to which the node will be added
Exceptions:
oacSubNetworkNodeNotSameDesign 
oacSubNetworkNodeNotSameNetwork 

oaNode * oaNode::create oaParasiticNetwork *    network,
oaUInt4    id
[static]
 

This function creates a node belonging to the specified parasitic network. An explicit unique node ID 'id' is required to be specified. An exception will be thrown if the 'id' is the reserved oacInvalidNodeID value or if a node with the specified 'id' value already exists. The hasId() function will return true for nodes created with these functions and the getId() function will return the user-specified node id.

Parameters:
network The parasitic network to which the created node will belong
id A unique ID to be associated with the node
Exceptions:
oacNodeIdExists 
oacInvalidNodeIdSpecified 

Reimplemented in oaGroundedNode.

oaNode * oaNode::create oaParasiticNetwork *    network [static]
 

This function creates a node belonging to the specified parasitic network. The node created does not have an ID associated with it. The hasId() function will return false for these nodes and the getId() function will return an oacInvalidNodeID value.

Parameters:
network The parasitic network to which the created node will belong

Reimplemented in oaGroundedNode.

void oaNode::destroy  
 

This function destroys this node, removing it from the database.

oaNode * oaNode::find const oaParasiticNetwork *    network,
const oaString &    name
[static]
 

This function finds and returns the node with the specified name within network.

Parameters:
network The parasitic network to search for the node
name The name of the node to look for

oaNode * oaNode::find const oaParasiticNetwork *    network,
oaUInt4    id
[static]
 

This function finds and returns the node with the specified id within network.

Parameters:
network The parasitic network to search for the node
id The unique ID of the node to look for

oaCollection oaNode::getConns   const
 

This function returns a collection containing the connections to this node.

oaCollection oaNode::getFromDevices   const
 

This function returns a collection containing the devices whose from endpoint is connected to this node.

oaUInt4 oaNode::getId   const
 

This function returns the optional ID if one was assigned to the node when it was created.

oaLayerNum oaNode::getLayerNum   const
 

This function returns the layer number for this node. If the layer number has never been set (the hasLayerNum() function returns false), the value returned by this function is undefined.

void oaNode::getLocation oaPoint &    location const
 

This function returns the location of this node. If no location has been set, the returned point is at (0, 0).

Parameters:
location A reference to an oaPoint object to be populated with the node's location

void oaNode::getName oaString &    name const
 

This function returns the name of this node. If no name has been set, the returned string is empty.

Parameters:
name A reference to an oaString object to be populated with the node's name

oaParasiticNetwork * oaNode::getParasiticNetwork   const
 

This function returns the parasiticNetwork to which this node belongs.

oaCollection oaNode::getSubNetworks   const
 

This function returns a collection of the subNetworks to which this node belongs.

oaCollection oaNode::getToDevices   const
 

This function returns a collection containing the devices whose to endpoint is connected to this node.

oaUInt4 oaNode::getUniqueId oaParasiticNetwork *    network [static]
 

This function returns a unique ID for a node in network.

Parameters:
network The parasitic network to determine the potential unique ID for this node

oaBoolean oaNode::hasId   const
 

This function returns a boolean indicating whether or not this node has a user-specified ID associated with it.

oaBoolean oaNode::hasLayerNum   const
 

This function returns a boolean value that indicates if a layer number has been set for this node.

oaBoolean oaNode::hasLocation   const
 

This function returns a boolean value that indicates if a location has been set for this node.

oaBoolean oaNode::isValidName const oaParasiticNetwork *    network,
const oaString &    name
[static]
 

This function returns a boolean value that indicates if the specified name is valid for a new oaNode object within the specified parasitic network.

Parameters:
network The parasitic network in whose domain the name is to be validated
name A reference to an oaString object holding the name to be validated

void oaNode::removeConn oaDesignObject *    conn
 

This function removes a connection from this node. The conn object must be a terminal or instTerm (oaTerm, oaInstTerm, oaOccTerm or oaOccInstTerm) that was previously connected to the node.

Parameters:
conn The connection to be removed from the node
Exceptions:
oacInvalidNodeConnType 

void oaNode::removeFromSubNetwork oaSubNetwork *    subNetwork
 

This function removes this node from the specified subNetwork.

Parameters:
subNetwork The sub-network from which this node is to be removed

void oaNode::setLayerNum oaLayerNum    layer
 

This function sets the layer number of this node.

Parameters:
layer The layer number to be associated with this node

void oaNode::setLocation const oaPoint &    location
 

This function sets the location of this node.

Parameters:
location A reference to an oaPoint object that holds the new location for this node

void oaNode::setName const oaString &    name
 

This function sets the name of this node.

Parameters:
name A reference to an oaString object that holds the new name for this node
Exceptions:
oacNodeNameExists 


Member Enumeration Documentation

anonymous enum
 

Enumeration values:
dtIndex 

anonymous enum
 

Enumeration values:
domain 


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

Return to top of page