Hurricane VLSI Database


List of all members | Public Member Functions | Static Public Member Functions
Hurricane::Path Class Reference

Path description (API) More...

Public Member Functions

 Path (SharedPath *sharedPath=NULL)
 
 Path (Instance *instance)
 
 Path (Instance *headInstance, const Path &tailPath)
 
 Path (const Path &headPath, Instance *tailInstance)
 
 Path (Cell *cell, const string &pathName)
 
 Path (const Path &path)
 
 ~Path ()
 
Pathoperator= (const Path &path)
 
bool operator== (const Path &path) const
 
bool operator!= (const Path &path) const
 
bool operator< (const Path &path) const
 
InstancegetHeadInstance () const
 
Path getTailPath () const
 
Path getHeadPath () const
 
InstancegetTailInstance () const
 
string getName () const
 
CellgetOwnerCell () const
 
CellgetMasterCell () const
 
Instances getInstances () const
 
Transformation getTransformation (const Transformation &transformation=Transformation()) const
 
bool isEmpty () const
 

Static Public Member Functions

static char getNameSeparator ()
 
static void setNameSeparator (char nameSeparator)
 

Detailed Description

Path description (API)

Introduction

Pathes are objects representing an ordered sequence of instances through the hierarchy.

They are represented by a head instance which defines the path start and tail path which defines the remaining path with respect to the cell model referenced by the head instance.

terminology A non void path begins by an instance : this instance pertains to the top caller cell, named OwnerCell. On the other hand the path ends by an instance (which may be the same) : this instance refers to its model which will be named the MasterCell.

Remarks

The different constructors (appart the one which analyses the names of the path) as welle as the destructor and the different operators are very efficient because the tail pathes being shared, only pointer assignments and pointer comparisons are realized.

Constructor & Destructor Documentation

◆ Path() [1/6]

Hurricane::Path::Path ( SharedPath *  sharedPath = NULL)

Default constructor : the path is then void.

Remarks
This path has no instance and will be the tail terminal path of any other path.

◆ Path() [2/6]

Hurricane::Path::Path ( Instance instance)

Builds the path made up of this unique instance.

Caution: If the instance is null an exception is thrown.

◆ Path() [3/6]

Hurricane::Path::Path ( Instance headInstance,
const Path tailPath 
)

Builds the path with head instance <headInstance> and tail path <tailPath>.

Caution: If the instance is null, or if the tail path is not
compatible with this head instance, an exception is thrown.
Remarks
The head instance and the tail path are compatible if the tail path is void or if the owner cell of the tail path is the model cell referenced by the head instance.

◆ Path() [4/6]

Hurricane::Path::Path ( const Path headPath,
Instance tailInstance 
)

Builds the path with head path <headPath> and tail instance <tailInstance>.

Caution: If the tail instance is null, or if the head path is not
compatible with this tail instance, an exception is thrown.
Remarks
The tail instance and the head path are compatible if the owner cell of the tail instance is the master cell of the head path (which is recall it, the model cell referenced by the last instance of the head path) or if the head path is empty (then compatible with any non null instance).

◆ Path() [5/6]

Hurricane::Path::Path ( Cell cell,
const string &  pathName 
)

Builds the path representing the logic sequence of instance names described as a character string. Each instance name is separated from the preceeding one by a special delimiter (which can be defined with the function setPathNameSeparator to be defined later). The cell given in argument defines where sarts the search (at each new instance identified, we go to its model cell to pursue the search within the <pathName>).

Caution: If the cell is null or if the name doesn't correspond to an
existing hierarchical instanciation path an exception is thrown.

◆ Path() [6/6]

Hurricane::Path::Path ( const Path path)

Copy constructor.

◆ ~Path()

Hurricane::Path::~Path ( )

No description.

Member Function Documentation

◆ operator=()

Path & Hurricane::Path::operator= ( const Path path)

Assignment operator.

◆ operator==()

bool Hurricane::Path::operator== ( const Path path) const

Two pathes are equal if they have the same head instance and if their tail pathes are equal.

◆ operator!=()

bool Hurricane::Path::operator!= ( const Path path) const

Two pathes are differents either if they have different head instance or if the tail pathes differ.

◆ operator<()

bool Hurricane::Path::operator< ( const Path path) const

This comparator has no particular signification. It is just defined to be abble to use a STL set of pathes which need a comparator.

◆ getNameSeparator()

char Hurricane::Path::getNameSeparator ( )
static

Returns: the special character used as a separator between the instance names of a path. By default it is the '.' (point).

◆ getHeadInstance()

Instance * Hurricane::Path::getHeadInstance ( ) const

Returns: the head instance or NULL if the path is void.

◆ getTailPath()

Path Hurricane::Path::getTailPath ( ) const

Returns: the tail path or a void path if the path has 1 or 0 hierarchical depth.

◆ getHeadPath()

Path Hurricane::Path::getHeadPath ( ) const

Returns: the head path or a void path if the path has 1 or 0 hierarchical depth.

◆ getTailInstance()

Instance * Hurricane::Path::getTailInstance ( ) const

Returns: the tail instance or NULL if the path is void.

◆ getName()

string Hurricane::Path::getName ( ) const

Returns: a string defined by the concatenation of instance names separated by a special character (which can be set up by the function setPathNameSeparator).

Returns: the string "" when the path is void.

◆ getOwnerCell()

Cell * Hurricane::Path::getOwnerCell ( ) const

Retruns the cell owning the head instance or NULL if the path is void.

◆ getMasterCell()

Cell * Hurricane::Path::getMasterCell ( ) const

Returns: the master cell referenced by the last instance of the path or NULL if the path is void.

◆ getInstances()

Instances Hurricane::Path::getInstances ( ) const

Returns: the collection of instances defining the path.

◆ getTransformation()

Transformation Hurricane::Path::getTransformation ( const Transformation transformation = Transformation()) const

Returns: the transform resulting of the composition of all transforms associated with the different instances of the path, applied to the given <transformation>.

◆ isEmpty()

bool Hurricane::Path::isEmpty ( ) const

Returns: true if the path is void and else false.

◆ setNameSeparator()

void Hurricane::Path::setNameSeparator ( char  separator)
static

This function sets the special character used as a separator between the instance names of a path (choose it carrefully, it must not appear in any instance name).


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


Generated by doxygen 1.9.1 on Thu Aug 11 2022 Return to top of page
Hurricane VLSI Database Copyright © 2000-2020 Bull S.A. All rights reserved