# Hurricane Documentation

# Hurricane VLSI Database

Path.h
1 // ****************************************************************************************************
2 // File: ./hurricane/Path.h
3 // Authors: R. Escassut
4 // Copyright (c) BULL S.A. 2000-2018, All Rights Reserved
5 //
6 // This file is part of Hurricane.
7 //
8 // Hurricane is free software: you can redistribute it and/or modify it under the terms of the GNU
9 // Lesser General Public License as published by the Free Software Foundation, either version 3 of the
10 // License, or (at your option) any later version.
11 //
12 // Hurricane is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
13 // the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Lesser GNU
14 // General Public License for more details.
15 //
16 // You should have received a copy of the Lesser GNU General Public License along with Hurricane. If
17 // not, see <http://www.gnu.org/licenses/>.
18 // ****************************************************************************************************
19
20 #ifndef HURRICANE_PATH
21 #define HURRICANE_PATH
22
23 #include "hurricane/Instances.h"
24 #include "hurricane/Transformation.h"
25
26 namespace Hurricane {
27
28 class Cell;
29 class SharedPath;
30
31
32
33 // ****************************************************************************************************
34 // Path declaration
35 // ****************************************************************************************************
36
37 class Path {
38 // *******
39
40 // Attributes
41 // **********
42
43 private: SharedPath* _sharedPath;
44
45 // Constructors
46 // ************
47
48 public: Path(SharedPath* sharedPath = NULL);
49 public: Path(Instance* instance);
50 public: Path(Instance* headInstance, const Path& tailPath);
51 public: Path(const Path& headPath, Instance* tailInstance);
52 public: Path(Cell* cell, const string& pathName);
53 public: Path(const Path& headPath, const Path& tailPath);
54 public: Path(const Path& path);
55
56 // Destructor
57 // **********
58
59 public: ~Path();
60
61 // Operators
62 // *********
63
64 public: Path& operator=(const Path& path);
65
66 public: bool operator==(const Path& path) const;
67 public: bool operator!=(const Path& path) const;
68
69 public: bool operator<(const Path& path) const; // for stl set -> less predicate
70
71 // Accessors
72 // *********
73
74 public: static char getNameSeparator();
75
76 public: Instance* getHeadInstance() const;
77 public: Path getTailPath() const;
78 public: Path getHeadPath() const;
79 public: Instance* getTailInstance() const;
80 public: string getName() const;
81 public: Cell* getOwnerCell() const;
82 public: Cell* getMasterCell() const;
83 public: Instances getInstances() const;
84 public: Transformation getTransformation(const Transformation& transformation = Transformation()) const;
85
86 // Predicates
87 // **********
88
89 public: bool isEmpty() const;
90
91 // Updators
92 // ********
93
94 public: void makeEmpty();
95 public: static void setNameSeparator(char nameSeparator);
96
97 // Others
98 // ******
99
100 public: string getCompactString() const;
101 public: string getJsonString(unsigned long flags) const;
102 public: string _getTypeName() const { return _TName("Occurrence"); };
103 public: string _getString() const;
104 public: Record* _getRecord() const;
105
106 public: SharedPath* _getSharedPath() const {return _sharedPath;};
107
108 };
109
110
111
112 } // End of Hurricane namespace.
113
114
115 INSPECTOR_PR_SUPPORT(Hurricane::Path);
116
117
118 #endif // HURRICANE_PATH
119
120
121 // ****************************************************************************************************
122 // Copyright (c) BULL S.A. 2000-2018, All Rights Reserved
123 // ****************************************************************************************************
Hurricane::Path
Path description (API)
Definition: Path.h:37
Hurricane::Path::getNameSeparator
static char getNameSeparator()
Hurricane::Path::getHeadPath
Path getHeadPath() const
Hurricane::Path::operator=
Path & operator=(const Path &path)
Hurricane::Path::getTailPath
Path getTailPath() const
Hurricane::Path::operator<
bool operator<(const Path &path) const
Hurricane::Path::Path
Path(SharedPath *sharedPath=NULL)
Hurricane::Path::getHeadInstance
Instance * getHeadInstance() const
Hurricane::Path::getTransformation
Transformation getTransformation(const Transformation &transformation=Transformation()) const
Hurricane::Path::operator==
bool operator==(const Path &path) const
Hurricane::Cell
The model (API).
Definition: Cell.h:66
Hurricane::Path::isEmpty
bool isEmpty() const
Hurricane::Transformation
Transformation description (API)
Definition: Transformation.h:32
Hurricane::GenericCollection
Generic Collection auto-pointer.
Definition: Collection.h:28
Hurricane::Path::operator!=
bool operator!=(const Path &path) const
Hurricane::Instance
Instance description (API)
Definition: Instance.h:37
Hurricane::Path::getMasterCell
Cell * getMasterCell() const
Hurricane::Path::getName
string getName() const
Hurricane::Path::getOwnerCell
Cell * getOwnerCell() const
Hurricane
The namespace dedicated to Hurricane.
Definition: Generalities.dox:5
Hurricane::Path::getTailInstance
Instance * getTailInstance() const
Hurricane::Path::setNameSeparator
static void setNameSeparator(char nameSeparator)
Hurricane::Path::getInstances
Instances getInstances() const
Hurricane::Path::~Path
~Path()