diff --git a/crlcore/doc/crlcore/html/AcmSigda_8h_source.html b/crlcore/doc/crlcore/html/AcmSigda_8h_source.html index dc2673e8..8c484fa9 100644 --- a/crlcore/doc/crlcore/html/AcmSigda_8h_source.html +++ b/crlcore/doc/crlcore/html/AcmSigda_8h_source.html @@ -24,21 +24,16 @@ -->
- - - + + + + +
-
1 
-
2 // -*- C++ -*-
-
3 //
-
4 // This file is part of the Coriolis Software.
-
5 // Copyright (c) UPMC/LIP6 2010-2012, All Rights Reserved
-
6 //
-
7 // +-----------------------------------------------------------------+
-
8 // | C O R I O L I S |
-
9 // | ACM/SIGDA ISCAS 89 Benchmarks |
-
10 // | |
-
11 // | Author : Jean-Paul CHAPUT |
-
12 // | E-mail : Jean-Paul.Chaput@asim.lip6.fr |
-
13 // | =============================================================== |
-
14 // | C++ Header : "./crlcore/AcmSigda.h" |
-
15 // +-----------------------------------------------------------------+
-
16 
-
17 
-
18 #ifndef __CRL_ACM_SIGDA__
-
19 #define __CRL_ACM_SIGDA__
-
20 
-
21 #include <string>
-
22 
-
23 namespace Hurricane {
-
24  class Cell;
-
25 }
-
26 
-
27 
-
28 namespace CRL {
-
29 
-
30  using Hurricane::Cell;
-
31 
-
32 
-
33  class AcmSigda {
-
34  public:
-
35  static Cell* load ( std::string benchmark );
-
36  };
-
37 
-
38 
-
39 } // End of CRL namespace.
-
40 
-
41 
-
42 #endif // __CRL_ACM_SIGDA__
-
43 
- +
1 
2 // -*- C++ -*-
3 //
4 // This file is part of the Coriolis Software.
5 // Copyright (c) UPMC/LIP6 2010-2012, All Rights Reserved
6 //
7 // +-----------------------------------------------------------------+
8 // | C O R I O L I S |
9 // | ACM/SIGDA ISCAS 89 Benchmarks |
10 // | |
11 // | Author : Jean-Paul CHAPUT |
12 // | E-mail : Jean-Paul.Chaput@asim.lip6.fr |
13 // | =============================================================== |
14 // | C++ Header : "./crlcore/AcmSigda.h" |
15 // +-----------------------------------------------------------------+
16 
17 
18 #ifndef __CRL_ACM_SIGDA__
19 #define __CRL_ACM_SIGDA__
20 
21 #include <string>
22 
23 namespace Hurricane {
24  class Cell;
25 }
26 
27 
28 namespace CRL {
29 
30  using Hurricane::Cell;
31 
32 
33  class AcmSigda {
34  public:
35  static Cell* load ( std::string benchmark );
36  };
37 
38 
39 } // End of CRL namespace.
40 
41 
42 #endif // __CRL_ACM_SIGDA__
43 
static Cell * load(std::string benchmark)
A Parser of ACM/Sigda 89&#39; benchmarks.
Definition: AcmSigda.h:33
+ +
The namespace of Coriolis Core.
Definition: Environment.h:26


- +
Generated by doxygen 1.8.5 on Thu Mar 19 2020Generated by doxygen 1.8.14 on Mon Apr 27 2020 Return to top of page
diff --git a/crlcore/doc/crlcore/html/AllianceFramework_8h_source.html b/crlcore/doc/crlcore/html/AllianceFramework_8h_source.html index 8208e082..b8768817 100644 --- a/crlcore/doc/crlcore/html/AllianceFramework_8h_source.html +++ b/crlcore/doc/crlcore/html/AllianceFramework_8h_source.html @@ -24,21 +24,16 @@ -->
- - - + + + + +
-
1 // -*- C++ -*-
-
2 //
-
3 // This file is part of the Coriolis Software.
-
4 // Copyright (c) UPMC 2008-2018, All Rights Reserved
-
5 //
-
6 // +-----------------------------------------------------------------+
-
7 // | C O R I O L I S |
-
8 // | Alliance / Hurricane Interface |
-
9 // | |
-
10 // | Author : Jean-Paul CHAPUT |
-
11 // | E-mail : Jean-Paul.Chaput@lip6.fr |
-
12 // | =============================================================== |
-
13 // | C++ Header : "./crlcore/AllianceFramework.h" |
-
14 // +-----------------------------------------------------------------+
-
15 
-
16 
-
17 #ifndef CRL_ALLIANCE_FRAMEWORK_H
-
18 #define CRL_ALLIANCE_FRAMEWORK_H
-
19 
-
20 #include <map>
-
21 #include <limits>
-
22 #include "hurricane/Cell.h"
-
23 #include "crlcore/Environment.h"
-
24 #include "crlcore/AllianceLibrary.h"
-
25 #include "crlcore/Catalog.h"
-
26 #include "crlcore/ParsersDrivers.h"
-
27 
-
28 
-
29 namespace CRL {
-
30 
-
31  using Hurricane::Observable;
-
32  using Hurricane::BaseObserver;
- - -
35  using Hurricane::DbU;
-
36  using Hurricane::Cell;
-
37  using Hurricane::Net;
-
38  class RoutingGauge;
-
39  class CellGauge;
-
40 
-
41 
-
42  class AllianceFramework : public DBo {
-
43  typedef DBo Super;
-
44  public:
-
45  enum FunctionsFlags { NoFlags = 0
-
46  , NoPythonInit = (1<<0)
-
47  };
- -
49  , IgnoreFeeds = (1<<1)
-
50  };
-
51  enum LibraryFlags { CreateLibrary = (1<<0)
-
52  , AppendLibrary = (1<<1)
-
53  , HasCatalog = (1<<2)
-
54  };
-
55  enum NotifyFlags { AddedLibrary = (1<<0)
-
56  , RemovedLibrary = (1<<1)
-
57  , ConfigChanged = (1<<2)
-
58  };
-
59  public:
-
60  static AllianceFramework* create ( unsigned long flags=NoFlags );
-
61  virtual void _postCreate ();
-
62  virtual void _preDestroy ();
-
63  // Accessors.
-
64  static AllianceFramework* get ();
-
65  string getPrint () const;
-
66  // Predicates.
-
67  Catalog::State* isInCatalog ( const Name& );
-
68  Catalog::State* isInCatalog ( string );
-
69  inline bool isPOWER ( const char* name );
-
70  inline bool isPOWER ( const string& name );
-
71  inline bool isPOWER ( const Name& name );
-
72  inline bool isGROUND ( const char* name );
-
73  inline bool isGROUND ( const string& name );
-
74  inline bool isGROUND ( const Name& name );
-
75  inline bool isCLOCK ( const char* name );
-
76  inline bool isCLOCK ( const string& name );
-
77  inline bool isCLOCK ( const Name& name );
-
78  inline bool isBLOCKAGE ( const char* name );
-
79  inline bool isBLOCKAGE ( const string& name );
-
80  inline bool isBLOCKAGE ( const Name& name );
-
81  inline bool isBLOCKAGE ( const Net* net );
-
82  inline bool isPad ( const char* name );
-
83  inline bool isPad ( const string& name );
-
84  inline bool isPad ( const Name& name );
-
85  inline bool isPad ( const Cell* );
-
86  // Accessors.
-
87  inline Environment* getEnvironment ();
-
88  inline Catalog* getCatalog ();
-
89  inline const Name& getParentLibraryName () const;
-
90  inline Library* getParentLibrary ();
-
91  Library* getLibrary ( unsigned int index );
-
92  Library* getLibrary ( const Name& libName );
-
93  AllianceLibrary* getAllianceLibrary ( unsigned int index );
-
94  AllianceLibrary* getAllianceLibrary ( const Name& libName, unsigned int flags );
- -
96  AllianceLibrary* createLibrary ( const string& path, unsigned int flags, string libName="" );
-
97  inline const AllianceLibraries& getAllianceLibraries () const;
-
98  void saveLibrary ( Library* );
-
99  void saveLibrary ( AllianceLibrary* );
-
100  RoutingGauge* getRoutingGauge ( const Name& name="" );
-
101  CellGauge* getCellGauge ( const Name& name="" );
-
102  CellGauge* matchCellGauge ( DbU::Unit width, DbU::Unit height ) const;
-
103  CellGauge* matchCellGaugeByHeight ( DbU::Unit height ) const;
-
104  inline const Name getDefaultCGPinLayerName () const;
-
105  // Modifiers.
-
106  RoutingGauge* setRoutingGauge ( const Name& name="" );
-
107  CellGauge* setCellGauge ( const Name& name="" );
-
108  void addRoutingGauge ( RoutingGauge* );
-
109  void addCellGauge ( CellGauge* );
-
110  void addObserver ( BaseObserver* );
-
111  void removeObserver ( BaseObserver* );
-
112  void notify ( unsigned int flags );
-
113  // Cell Management.
-
114  Cell* cellLoader ( const string& rpath );
-
115  Cell* getCell ( const string& name
-
116  , unsigned int mode
-
117  , unsigned int depth=(unsigned int)-1 );
-
118  Cell* createCell ( const string& name, AllianceLibrary* library=NULL );
-
119  void saveCell ( Cell* , unsigned int mode );
-
120  void bindLibraries ();
-
121  unsigned int loadLibraryCells ( Library* );
-
122  unsigned int loadLibraryCells ( const Name& );
-
123  static size_t getInstancesCount ( Cell*, unsigned int flags );
-
124  // Hurricane Managment.
-
125  void toJson ( JsonWriter* ) const;
-
126  virtual string _getTypeName () const;
-
127  virtual Record* _getRecord () const;
-
128 
-
129  // Internals - Attributes.
-
130  protected:
-
131  static const Name _parentLibraryName;
-
132  static AllianceFramework* _singleton;
-
133  Observable _observers;
-
134  Environment _environment;
-
135  ParsersMap _parsers;
-
136  DriversMap _drivers;
-
137  Catalog _catalog;
-
138  AllianceLibraries _libraries;
-
139  Library* _parentLibrary;
-
140  map<Name,RoutingGauge*> _routingGauges;
-
141  RoutingGauge* _defaultRoutingGauge;
-
142  map<Name,CellGauge*> _cellGauges;
-
143  CellGauge* _defaultCellGauge;
-
144 
-
145  // Internals - Constructors.
- - -
148  AllianceFramework& operator= ( const AllianceFramework& );
-
149  // Internals - Destructors.
-
150  ~AllianceFramework ();
-
151  // Internals - Methods.
-
152  bool _readLocate ( const string& file, unsigned int mode, bool isLib=false );
-
153  bool _writeLocate ( const string& file, unsigned int mode, bool isLib=false );
-
154  AllianceLibrary* _createLibrary ( const string& path, bool& hasCatalog );
-
155  };
-
156 
-
157  inline bool AllianceFramework::isPOWER ( const char* name ) { return _environment.isPOWER(name); }
-
158  inline bool AllianceFramework::isPOWER ( const string& name ) { return isPOWER(name.c_str()); }
-
159  inline bool AllianceFramework::isPOWER ( const Name& name ) { return isPOWER(getString(name)); }
-
160  inline bool AllianceFramework::isGROUND ( const char* name ) { return _environment.isGROUND(name); }
-
161  inline bool AllianceFramework::isGROUND ( const string& name ) { return isGROUND(name.c_str()); }
-
162  inline bool AllianceFramework::isGROUND ( const Name& name ) { return isGROUND(getString(name)); }
-
163  inline bool AllianceFramework::isCLOCK ( const char* name ) { return _environment.isCLOCK(name); }
-
164  inline bool AllianceFramework::isCLOCK ( const string& name ) { return isCLOCK(name.c_str()); }
-
165  inline bool AllianceFramework::isCLOCK ( const Name& name ) { return isCLOCK(getString(name)); }
-
166  inline bool AllianceFramework::isBLOCKAGE ( const char* name ) { return _environment.isBLOCKAGE(name); }
-
167  inline bool AllianceFramework::isBLOCKAGE ( const string& name ) { return isBLOCKAGE(name.c_str()); }
-
168  inline bool AllianceFramework::isBLOCKAGE ( const Name& name ) { return isBLOCKAGE(getString(name)); }
-
169  inline bool AllianceFramework::isBLOCKAGE ( const Net* net ) { return isBLOCKAGE(net->getName()); }
-
170  inline bool AllianceFramework::isPad ( const char* name ) { return _environment.isPad(name); }
-
171  inline bool AllianceFramework::isPad ( const string& name ) { return isPad(name.c_str()); }
-
172  inline bool AllianceFramework::isPad ( const Name& name ) { return isPad(getString(name)); }
-
173  inline bool AllianceFramework::isPad ( const Cell* cell ) { return isPad(cell->getName()); }
-
174  inline Environment* AllianceFramework::getEnvironment () { return &_environment; }
-
175  inline Catalog* AllianceFramework::getCatalog () { return &_catalog; }
- -
177  () const { return _parentLibraryName; }
-
178  inline Library* AllianceFramework::getParentLibrary () { return _parentLibrary; }
-
179  inline const AllianceLibraries&
-
180  AllianceFramework::getAllianceLibraries () const { return _libraries; }
-
181 // TEMPORARY.
- -
183  () const { return "CALU1"; }
-
184 
-
185 
-
186  class JsonAllianceFramework : public JsonObject {
-
187  public:
-
188  static void initialize ();
-
189  JsonAllianceFramework( unsigned long );
-
190  virtual ~JsonAllianceFramework();
-
191  virtual string getTypeName () const;
-
192  virtual JsonAllianceFramework* clone ( unsigned long ) const;
-
193  virtual void toData ( JsonStack& );
-
194  private:
-
195  std::string _defaultRoutingGauge;
-
196  std::string _defaultCellGauge;
-
197  };
-
198 
-
199 
-
200 } // CRL namespace.
-
201 
-
202 
-
203 INSPECTOR_P_SUPPORT(CRL::AllianceFramework);
-
204 
-
205 #endif // CRL_ALLIANCE_FRAMEWORK_H
-
A small wrapper around Hurricane::Library.
Definition: AllianceLibrary.h:44
-
bool isPOWER(const char *name) const
+
1 // -*- C++ -*-
2 //
3 // This file is part of the Coriolis Software.
4 // Copyright (c) UPMC 2008-2018, All Rights Reserved
5 //
6 // +-----------------------------------------------------------------+
7 // | C O R I O L I S |
8 // | Alliance / Hurricane Interface |
9 // | |
10 // | Author : Jean-Paul CHAPUT |
11 // | E-mail : Jean-Paul.Chaput@lip6.fr |
12 // | =============================================================== |
13 // | C++ Header : "./crlcore/AllianceFramework.h" |
14 // +-----------------------------------------------------------------+
15 
16 
17 #ifndef CRL_ALLIANCE_FRAMEWORK_H
18 #define CRL_ALLIANCE_FRAMEWORK_H
19 
20 #include <map>
21 #include <limits>
22 #include "hurricane/Cell.h"
23 #include "crlcore/Environment.h"
24 #include "crlcore/AllianceLibrary.h"
25 #include "crlcore/Catalog.h"
26 #include "crlcore/ParsersDrivers.h"
27 
28 
29 namespace CRL {
30 
31  using Hurricane::Observable;
32  using Hurricane::BaseObserver;
35  using Hurricane::DbU;
36  using Hurricane::Cell;
37  using Hurricane::Net;
38  class RoutingGauge;
39  class CellGauge;
40 
41 
42  class AllianceFramework : public DBo {
43  typedef DBo Super;
44  public:
45  enum FunctionsFlags { NoFlags = 0
46  , NoPythonInit = (1<<0)
47  };
49  , IgnoreFeeds = (1<<1)
50  };
51  enum LibraryFlags { CreateLibrary = (1<<0)
52  , AppendLibrary = (1<<1)
53  , HasCatalog = (1<<2)
54  };
55  enum NotifyFlags { AddedLibrary = (1<<0)
56  , RemovedLibrary = (1<<1)
57  , ConfigChanged = (1<<2)
58  };
59  public:
60  static AllianceFramework* create ( unsigned long flags=NoFlags );
61  virtual void _postCreate ();
62  virtual void _preDestroy ();
63  // Accessors.
64  static AllianceFramework* get ();
65  string getPrint () const;
66  // Predicates.
67  Catalog::State* isInCatalog ( const Name& );
68  Catalog::State* isInCatalog ( string );
69  inline bool isPOWER ( const char* name );
70  inline bool isPOWER ( const string& name );
71  inline bool isPOWER ( const Name& name );
72  inline bool isGROUND ( const char* name );
73  inline bool isGROUND ( const string& name );
74  inline bool isGROUND ( const Name& name );
75  inline bool isCLOCK ( const char* name );
76  inline bool isCLOCK ( const string& name );
77  inline bool isCLOCK ( const Name& name );
78  inline bool isBLOCKAGE ( const char* name );
79  inline bool isBLOCKAGE ( const string& name );
80  inline bool isBLOCKAGE ( const Name& name );
81  inline bool isBLOCKAGE ( const Net* net );
82  inline bool isPad ( const char* name );
83  inline bool isPad ( const string& name );
84  inline bool isPad ( const Name& name );
85  inline bool isPad ( const Cell* );
86  // Accessors.
87  inline Environment* getEnvironment ();
88  inline Catalog* getCatalog ();
89  inline const Name& getParentLibraryName () const;
90  inline Library* getParentLibrary ();
91  Library* getLibrary ( unsigned int index );
92  Library* getLibrary ( const Name& libName );
93  AllianceLibrary* getAllianceLibrary ( unsigned int index );
94  AllianceLibrary* getAllianceLibrary ( const Name& libName, unsigned int flags );
95  AllianceLibrary* getAllianceLibrary ( Library* );
96  AllianceLibrary* createLibrary ( const string& path, unsigned int flags, string libName="" );
97  inline const AllianceLibraries& getAllianceLibraries () const;
98  void saveLibrary ( Library* );
99  void saveLibrary ( AllianceLibrary* );
100  RoutingGauge* getRoutingGauge ( const Name& name="" );
101  CellGauge* getCellGauge ( const Name& name="" );
102  CellGauge* matchCellGauge ( DbU::Unit width, DbU::Unit height ) const;
103  CellGauge* matchCellGaugeByHeight ( DbU::Unit height ) const;
104  inline const Name getDefaultCGPinLayerName () const;
105  // Modifiers.
106  RoutingGauge* setRoutingGauge ( const Name& name="" );
107  CellGauge* setCellGauge ( const Name& name="" );
108  void addRoutingGauge ( RoutingGauge* );
109  void addCellGauge ( CellGauge* );
110  void addObserver ( BaseObserver* );
111  void removeObserver ( BaseObserver* );
112  void notify ( unsigned int flags );
113  // Cell Management.
114  Cell* cellLoader ( const string& rpath );
115  Cell* getCell ( const string& name
116  , unsigned int mode
117  , unsigned int depth=(unsigned int)-1 );
118  Cell* createCell ( const string& name, AllianceLibrary* library=NULL );
119  void saveCell ( Cell* , unsigned int mode );
120  void bindLibraries ();
121  unsigned int loadLibraryCells ( Library* );
122  unsigned int loadLibraryCells ( const Name& );
123  static size_t getInstancesCount ( Cell*, unsigned int flags );
124  // Hurricane Managment.
125  void toJson ( JsonWriter* ) const;
126  virtual string _getTypeName () const;
127  virtual Record* _getRecord () const;
128 
129  // Internals - Attributes.
130  protected:
131  static const Name _parentLibraryName;
132  static AllianceFramework* _singleton;
133  Observable _observers;
134  Environment _environment;
135  ParsersMap _parsers;
136  DriversMap _drivers;
137  Catalog _catalog;
138  AllianceLibraries _libraries;
139  Library* _parentLibrary;
140  map<Name,RoutingGauge*> _routingGauges;
141  RoutingGauge* _defaultRoutingGauge;
142  map<Name,CellGauge*> _cellGauges;
143  CellGauge* _defaultCellGauge;
144 
145  // Internals - Constructors.
146  AllianceFramework ();
147  AllianceFramework ( const AllianceFramework& );
148  AllianceFramework& operator= ( const AllianceFramework& );
149  // Internals - Destructors.
150  ~AllianceFramework ();
151  // Internals - Methods.
152  bool _readLocate ( const string& file, unsigned int mode, bool isLib=false );
153  bool _writeLocate ( const string& file, unsigned int mode, bool isLib=false );
154  AllianceLibrary* _createLibrary ( const string& path, bool& hasCatalog );
155  };
156 
157  inline bool AllianceFramework::isPOWER ( const char* name ) { return _environment.isPOWER(name); }
158  inline bool AllianceFramework::isPOWER ( const string& name ) { return isPOWER(name.c_str()); }
159  inline bool AllianceFramework::isPOWER ( const Name& name ) { return isPOWER(getString(name)); }
160  inline bool AllianceFramework::isGROUND ( const char* name ) { return _environment.isGROUND(name); }
161  inline bool AllianceFramework::isGROUND ( const string& name ) { return isGROUND(name.c_str()); }
162  inline bool AllianceFramework::isGROUND ( const Name& name ) { return isGROUND(getString(name)); }
163  inline bool AllianceFramework::isCLOCK ( const char* name ) { return _environment.isCLOCK(name); }
164  inline bool AllianceFramework::isCLOCK ( const string& name ) { return isCLOCK(name.c_str()); }
165  inline bool AllianceFramework::isCLOCK ( const Name& name ) { return isCLOCK(getString(name)); }
166  inline bool AllianceFramework::isBLOCKAGE ( const char* name ) { return _environment.isBLOCKAGE(name); }
167  inline bool AllianceFramework::isBLOCKAGE ( const string& name ) { return isBLOCKAGE(name.c_str()); }
168  inline bool AllianceFramework::isBLOCKAGE ( const Name& name ) { return isBLOCKAGE(getString(name)); }
169  inline bool AllianceFramework::isBLOCKAGE ( const Net* net ) { return isBLOCKAGE(net->getName()); }
170  inline bool AllianceFramework::isPad ( const char* name ) { return _environment.isPad(name); }
171  inline bool AllianceFramework::isPad ( const string& name ) { return isPad(name.c_str()); }
172  inline bool AllianceFramework::isPad ( const Name& name ) { return isPad(getString(name)); }
173  inline bool AllianceFramework::isPad ( const Cell* cell ) { return isPad(cell->getName()); }
174  inline Environment* AllianceFramework::getEnvironment () { return &_environment; }
175  inline Catalog* AllianceFramework::getCatalog () { return &_catalog; }
177  () const { return _parentLibraryName; }
178  inline Library* AllianceFramework::getParentLibrary () { return _parentLibrary; }
179  inline const AllianceLibraries&
180  AllianceFramework::getAllianceLibraries () const { return _libraries; }
181 // TEMPORARY.
183  () const { return "CALU1"; }
184 
185 
186  class JsonAllianceFramework : public JsonObject {
187  public:
188  static void initialize ();
189  JsonAllianceFramework( unsigned long );
190  virtual ~JsonAllianceFramework();
191  virtual string getTypeName () const;
192  virtual JsonAllianceFramework* clone ( unsigned long ) const;
193  virtual void toData ( JsonStack& );
194  private:
195  std::string _defaultRoutingGauge;
196  std::string _defaultCellGauge;
197  };
198 
199 
200 } // CRL namespace.
201 
202 
203 INSPECTOR_P_SUPPORT(CRL::AllianceFramework);
204 
205 #endif // CRL_ALLIANCE_FRAMEWORK_H
bool isBLOCKAGE(const char *name) const
Library * getParentLibrary()
Definition: AllianceFramework.h:178
-
An entry to store the Cell State in the Catalog.
Definition: Catalog.h:77
+
bool isCLOCK(const char *name) const
A Framework to work with Alliance formats.
Definition: AllianceFramework.h:42
+
const Name getDefaultCGPinLayerName() const
Definition: AllianceFramework.h:183
+
bool isPOWER(const char *name) const
void addCellGauge(CellGauge *)
-
const Name & getParentLibraryName() const
Definition: AllianceFramework.h:177
InstancesCountFlags
Definition: AllianceFramework.h:48
-
bool isBLOCKAGE(const char *name) const
+
static size_t getInstancesCount(Cell *, unsigned int flags)
std::int64_t Unit
void saveCell(Cell *, unsigned int mode)
-
Gauge for the detailed routing.
Definition: RoutingGauge.h:48
AllianceLibrary * createLibrary(const string &path, unsigned int flags, string libName="")
LibraryFlags
Definition: AllianceFramework.h:51
-
bool isCLOCK(const char *name) const
+
bool isPad(const char *name) const
-
bool isGROUND(const char *name) const
-
const Name getDefaultCGPinLayerName() const
Definition: AllianceFramework.h:183
+
bool isGROUND(const char *name) const
Definition: AllianceFramework.h:48
Library * getLibrary(unsigned int index)
+
const Name & getParentLibraryName() const
Definition: AllianceFramework.h:177
-
Cell * getCell(const string &name, unsigned int mode, unsigned int depth=(unsigned int)-1)
void addRoutingGauge(RoutingGauge *)
-
bool isPad(const char *name) const
Definition: AllianceFramework.h:51
-
string getPrint() const
unsigned int loadLibraryCells(Library *)
Cell * createCell(const string &name, AllianceLibrary *library=NULL)
Catalog * getCatalog()
Definition: AllianceFramework.h:175
@@ -295,16 +81,18 @@
AllianceLibrary * getAllianceLibrary(unsigned int index)
Definition: AllianceFramework.h:53
Holds all the Alliance environment variables.
Definition: Environment.h:35
-
Environment * getEnvironment()
Definition: AllianceFramework.h:174
+
string getPrint() const
void saveLibrary(Library *)
+
Cell * getCell(const string &name, unsigned int mode, unsigned int depth=(unsigned int) -1)
static AllianceFramework * create(unsigned long flags=NoFlags)
+
The namespace of Coriolis Core.
Definition: Environment.h:26


- +
Generated by doxygen 1.8.5 on Thu Mar 19 2020Generated by doxygen 1.8.14 on Mon Apr 27 2020 Return to top of page
diff --git a/crlcore/doc/crlcore/html/AllianceLibrary_8h_source.html b/crlcore/doc/crlcore/html/AllianceLibrary_8h_source.html index 14892c50..b5e329cf 100644 --- a/crlcore/doc/crlcore/html/AllianceLibrary_8h_source.html +++ b/crlcore/doc/crlcore/html/AllianceLibrary_8h_source.html @@ -24,21 +24,16 @@ -->
- - - + + + + +
-
1 // -*- C++ -*-
-
2 //
-
3 // This file is part of the Coriolis Software.
-
4 // Copyright (c) UPMC 2008-2018, All Rights Reserved
-
5 //
-
6 // +-----------------------------------------------------------------+
-
7 // | C O R I O L I S |
-
8 // | Alliance / Hurricane Interface |
-
9 // | |
-
10 // | Author : Jean-Paul CHAPUT |
-
11 // | E-mail : Jean-Paul.Chaput@lip6.fr |
-
12 // | =============================================================== |
-
13 // | C++ Header : "./crlcore/AllianceLibrary.h" |
-
14 // +-----------------------------------------------------------------+
-
15 
-
16 
-
17 #ifndef CRL_ALLIANCE_LIBRARY_H
-
18 #define CRL_ALLIANCE_LIBRARY_H
-
19 
-
20 #include <string>
-
21 #include <vector>
-
22 #include "hurricane/Name.h"
-
23 #include "hurricane/Slot.h"
-
24 
-
25 namespace Hurricane {
-
26  class Library;
-
27 }
-
28 
-
29 
-
30 namespace CRL {
-
31 
-
32  using std::vector;
- - -
35  using Hurricane::Name;
-
36  using Hurricane::Library;
-
37  using Hurricane::Record;
-
38  using Hurricane::_TName;
-
39 
-
40 
-
41 // -------------------------------------------------------------------
-
42 // Class : "CRL::AllianceLibrary".
-
43 
- -
45 
-
46  public:
-
47  AllianceLibrary ();
-
48  AllianceLibrary ( const Name& path, Library* library=NULL );
-
49  AllianceLibrary& operator= ( const AllianceLibrary& directory );
-
50  AllianceLibrary& operator= ( const std::string& path );
-
51  inline const Name& getPath () const;
-
52  inline Library* getLibrary () const;
-
53  void saveCells () const;
-
54  void saveCATAL () const;
-
55  void toJson ( JsonWriter* ) const;
-
56  inline std::string _getTypeName () const;
-
57  std::string _getString () const;
-
58  Record* _getRecord () const;
-
59 
-
60  protected:
-
61  Name _path;
-
62  Library* _library;
-
63 
-
64  };
-
65 
-
66 
-
67  typedef vector<AllianceLibrary*> AllianceLibraries;
-
68 
-
69 
-
70 // Inline Functions.
-
71  inline const Name& AllianceLibrary::getPath () const { return _path; }
-
72  inline Library* AllianceLibrary::getLibrary () const { return _library; }
-
73  inline std::string AllianceLibrary::_getTypeName () const { return _TName("AllianceLibrary"); }
-
74 
-
75 
-
76 // -------------------------------------------------------------------
-
77 // Class : "JsonAllianceLibrary".
-
78 
-
79  class JsonAllianceLibrary : public JsonObject {
-
80  public:
-
81  static void initialize ();
-
82  JsonAllianceLibrary ( unsigned long flags );
-
83  virtual std::string getTypeName () const;
-
84  virtual JsonAllianceLibrary* clone ( unsigned long flags ) const;
-
85  virtual void toData ( JsonStack& );
-
86  };
-
87 
-
88 
-
89 } // CRL namespace.
-
90 
-
91 
-
92 INSPECTOR_P_SUPPORT(CRL::AllianceLibrary);
-
93 
-
94 #endif // CRL_ALLIANCE_LIBRARY_H
-
A small wrapper around Hurricane::Library.
Definition: AllianceLibrary.h:44
+
1 // -*- C++ -*-
2 //
3 // This file is part of the Coriolis Software.
4 // Copyright (c) UPMC 2008-2018, All Rights Reserved
5 //
6 // +-----------------------------------------------------------------+
7 // | C O R I O L I S |
8 // | Alliance / Hurricane Interface |
9 // | |
10 // | Author : Jean-Paul CHAPUT |
11 // | E-mail : Jean-Paul.Chaput@lip6.fr |
12 // | =============================================================== |
13 // | C++ Header : "./crlcore/AllianceLibrary.h" |
14 // +-----------------------------------------------------------------+
15 
16 
17 #ifndef CRL_ALLIANCE_LIBRARY_H
18 #define CRL_ALLIANCE_LIBRARY_H
19 
20 #include <string>
21 #include <vector>
22 #include "hurricane/Name.h"
23 #include "hurricane/Slot.h"
24 
25 namespace Hurricane {
26  class Library;
27 }
28 
29 
30 namespace CRL {
31 
32  using std::vector;
35  using Hurricane::Name;
36  using Hurricane::Library;
37  using Hurricane::Record;
38  using Hurricane::_TName;
39 
40 
41 // -------------------------------------------------------------------
42 // Class : "CRL::AllianceLibrary".
43 
45 
46  public:
47  AllianceLibrary ();
48  AllianceLibrary ( const Name& path, Library* library=NULL );
49  AllianceLibrary& operator= ( const AllianceLibrary& directory );
50  AllianceLibrary& operator= ( const std::string& path );
51  inline const Name& getPath () const;
52  inline Library* getLibrary () const;
53  void saveCells () const;
54  void saveCATAL () const;
55  void toJson ( JsonWriter* ) const;
56  inline std::string _getTypeName () const;
57  std::string _getString () const;
58  Record* _getRecord () const;
59 
60  protected:
61  Name _path;
62  Library* _library;
63 
64  };
65 
66 
67  typedef vector<AllianceLibrary*> AllianceLibraries;
68 
69 
70 // Inline Functions.
71  inline const Name& AllianceLibrary::getPath () const { return _path; }
72  inline Library* AllianceLibrary::getLibrary () const { return _library; }
73  inline std::string AllianceLibrary::_getTypeName () const { return _TName("AllianceLibrary"); }
74 
75 
76 // -------------------------------------------------------------------
77 // Class : "JsonAllianceLibrary".
78 
79  class JsonAllianceLibrary : public JsonObject {
80  public:
81  static void initialize ();
82  JsonAllianceLibrary ( unsigned long flags );
83  virtual std::string getTypeName () const;
84  virtual JsonAllianceLibrary* clone ( unsigned long flags ) const;
85  virtual void toData ( JsonStack& );
86  };
87 
88 
89 } // CRL namespace.
90 
91 
92 INSPECTOR_P_SUPPORT(CRL::AllianceLibrary);
93 
94 #endif // CRL_ALLIANCE_LIBRARY_H
A small wrapper around Hurricane::Library.
Definition: AllianceLibrary.h:44
-
Library * getLibrary() const
Definition: AllianceLibrary.h:72
-
const Name & getPath() const
Definition: AllianceLibrary.h:71
+
const Name & getPath() const
Definition: AllianceLibrary.h:71
+ +
Library * getLibrary() const
Definition: AllianceLibrary.h:72
+
The namespace of Coriolis Core.
Definition: Environment.h:26


- +
Generated by doxygen 1.8.5 on Thu Mar 19 2020Generated by doxygen 1.8.14 on Mon Apr 27 2020 Return to top of page
diff --git a/crlcore/doc/crlcore/html/Banner_8h_source.html b/crlcore/doc/crlcore/html/Banner_8h_source.html index d0d4fa24..ba2a2af6 100644 --- a/crlcore/doc/crlcore/html/Banner_8h_source.html +++ b/crlcore/doc/crlcore/html/Banner_8h_source.html @@ -24,21 +24,16 @@ -->
- - - + + + + +
-
1 // -*- C++ -*-
-
2 //
-
3 // This file is part of the Coriolis Software.
-
4 // Copyright (c) UPMC 2008-2018, All Rights Reserved
-
5 //
-
6 // +-----------------------------------------------------------------+
-
7 // | C O R I O L I S |
-
8 // | Alliance / Hurricane Interface |
-
9 // | |
-
10 // | Author : Jean-Paul CHAPUT |
-
11 // | E-mail : Jean-Paul.Chaput@asim.lip6.fr |
-
12 // | =============================================================== |
-
13 // | C++ Header : "./crlcore/Banner.h" |
-
14 // +-----------------------------------------------------------------+
-
15 
-
16 
-
17 #ifndef CRL_BANNER_H
-
18 #define CRL_BANNER_H
-
19 
-
20 #include <map>
-
21 #include <string>
-
22 #include <vector>
-
23 #include <ostream>
-
24 #include <sstream>
-
25 
-
26 #ifdef __CCORE_INTERNAL__
-
27 # include "hurricane/CConfig.h"
-
28 #endif
-
29 #include "crlcore/Utilities.h"
-
30 
-
31 
-
32 namespace CRL {
-
33 
-
34  using std::string;
-
35  using std::map;
-
36  using std::vector;
-
37  using std::ostream;
-
38  using std::ostringstream;
-
39 
-
40 
-
41 // -------------------------------------------------------------------
-
42 // Class : "CRL::BannerFont".
-
43 
-
44 
-
45  class BannerFont {
-
46 
-
47  public:
-
48  // BigChar subclass.
-
49  class BigChar {
-
50  public:
-
51  // Constructor & Destructor.
-
52  BigChar ( char c, int height, const char* lines[], const BannerFont* font );
-
53  ~BigChar ();
-
54  // Methods.
-
55  inline int getHeight () const;
-
56  inline const BannerFont* getFont () const;
-
57  string _getPrint () const;
-
58  const char* operator[] ( int line ) const;
-
59 
-
60  private:
-
61  // Internal: Attributes.
-
62  char _character;
-
63  int _height;
-
64  const char** _lines;
-
65  const BannerFont* _font;
-
66 
-
67  // Internal: Constructors.
-
68  BigChar& operator= ( const BigChar& );
-
69  BigChar ( const BigChar& );
-
70  };
-
71 
-
72  // Static Methods.
-
73  static const BannerFont* getBannerFont ( const string& name );
-
74  // Constructor & Destructor.
-
75  inline BannerFont ( const string& name );
-
76  // Methods.
-
77  inline void addChar ( char character, int height, const char *lines[] );
-
78  inline int getHeight () const;
-
79  inline const BigChar& operator[] ( char character ) const;
-
80 
-
81  private:
-
82  // Internal: FontMap subclass.
-
83  class FontMap : public map<const string,const BannerFont*> {
-
84  public:
-
85  FontMap ();
-
86  ~FontMap ();
-
87  const BannerFont* operator[] ( const string& name ) const;
-
88  };
-
89 
-
90  // Internal: Types.
-
91  typedef map<char,BigChar*> CharMap;
-
92 
-
93  // Internal: Static Attributes.
-
94  static FontMap _fontMap;
-
95  // Internal: Attributes.
-
96  CharMap _table;
-
97  string _name;
-
98  int _height;
-
99 
-
100  // Internal: Constructors.
-
101  BannerFont ( const BannerFont& );
-
102  ~BannerFont ();
-
103  inline BannerFont& operator= ( const BannerFont& );
-
104 
-
105  };
-
106 
-
107 
-
108 
-
109 
-
110 // -------------------------------------------------------------------
-
111 // Class : "CRL::Banner".
-
112 
-
113 
-
114  class Banner {
-
115  public:
-
116  // Constructor & Destructor.
-
117  Banner ( string name=""
-
118  , string version=""
-
119  , string purpose=""
-
120  , string date=""
-
121  , string authors=""
-
122  , string contributors="" );
-
123  virtual ~Banner ();
-
124  // Accessors.
-
125  inline const BannerFont* getFont () const;
-
126  inline const string& getName () const;
-
127  inline const string& getVersion () const;
-
128  inline const string& getPurpose () const;
-
129  inline const string& getDate () const;
-
130  inline const string& getAuthors () const;
-
131  inline const string& getContributors () const;
-
132  inline unsigned int getScreenWidth () const;
-
133  // Modifiers.
-
134  void setFont ( BannerFont* font );
-
135  void setName ( string name );
-
136  void setVersion ( string version );
-
137  void setPurpose ( string purpose );
-
138  void setDate ( string date );
-
139  void setAuthors ( string authors );
-
140  void setContributors ( string contributors );
-
141  void setScreenWidth ( unsigned screenWidth );
-
142  // Hurricane Management.
-
143  virtual const string _getPrint () const { return ( _banner.str() ); };
-
144 
-
145  // Internal: Attributes.
-
146  private:
-
147  string _name;
-
148  string _version;
-
149  string _purpose;
-
150  string _date;
-
151  string _authors;
-
152  string _contributors;
-
153  unsigned int _screenWidth;
-
154  size_t _cartoucheWidth;
-
155  const BannerFont* _font;
-
156  string* _lines;
-
157  ostringstream _banner;
-
158 
-
159  // Internal: Constructors.
-
160  Banner ( const Banner & );
-
161  Banner& operator= ( const Banner & );
-
162  // Internal: Methods.
-
163  void _redraw ();
-
164  };
-
165 
-
166 
-
167 // Inline Functions.
-
168  inline int BannerFont::BigChar::getHeight () const { return _height; }
-
169  inline const BannerFont* BannerFont::BigChar::getFont () const { return _font; }
-
170  inline BannerFont::BannerFont ( const string& name ): _table(), _name(name) {}
-
171  inline int BannerFont::getHeight () const { return _height; }
-
172  inline const BannerFont* Banner::getFont () const { return _font; }
-
173  inline const string& Banner::getName () const { return _name; }
-
174  inline const string& Banner::getVersion () const { return _version; }
-
175  inline const string& Banner::getPurpose () const { return _purpose; }
-
176  inline const string& Banner::getDate () const { return _date; }
-
177  inline const string& Banner::getAuthors () const { return _authors; }
-
178  inline const string& Banner::getContributors () const { return _contributors; }
-
179  inline unsigned int Banner::getScreenWidth () const { return _screenWidth; }
-
180 
-
181 
-
182 } // CRL namespace.
-
183 
-
184 
-
185 // Hurricane Management.
-
186 
-
187 inline std::string getPrint ( const CRL::BannerFont::BigChar& c ) { return c._getPrint(); }
-
188 inline std::string getPrint ( const CRL::Banner& b ) { return b._getPrint(); }
-
189 inline std::ostream& operator<< ( std::ostream& o, const CRL::BannerFont::BigChar& c ) { return o << getPrint(c); }
-
190 inline std::ostream& operator<< ( std::ostream& o, const CRL::Banner& b ) { return o << getPrint(b); }
-
191 
-
192 MSTREAM_R_SUPPORT(CRL::Banner);
-
193 
-
194 
-
195 #endif // CRL_BANNER_H
-
const string & getPurpose() const
Definition: Banner.h:175
+
1 // -*- C++ -*-
2 //
3 // This file is part of the Coriolis Software.
4 // Copyright (c) UPMC 2008-2018, All Rights Reserved
5 //
6 // +-----------------------------------------------------------------+
7 // | C O R I O L I S |
8 // | Alliance / Hurricane Interface |
9 // | |
10 // | Author : Jean-Paul CHAPUT |
11 // | E-mail : Jean-Paul.Chaput@asim.lip6.fr |
12 // | =============================================================== |
13 // | C++ Header : "./crlcore/Banner.h" |
14 // +-----------------------------------------------------------------+
15 
16 
17 #ifndef CRL_BANNER_H
18 #define CRL_BANNER_H
19 
20 #include <map>
21 #include <string>
22 #include <vector>
23 #include <ostream>
24 #include <sstream>
25 
26 #ifdef __CCORE_INTERNAL__
27 # include "hurricane/CConfig.h"
28 #endif
29 #include "crlcore/Utilities.h"
30 
31 
32 namespace CRL {
33 
34  using std::string;
35  using std::map;
36  using std::vector;
37  using std::ostream;
38  using std::ostringstream;
39 
40 
41 // -------------------------------------------------------------------
42 // Class : "CRL::BannerFont".
43 
44 
45  class BannerFont {
46 
47  public:
48  // BigChar subclass.
49  class BigChar {
50  public:
51  // Constructor & Destructor.
52  BigChar ( char c, int height, const char* lines[], const BannerFont* font );
53  ~BigChar ();
54  // Methods.
55  inline int getHeight () const;
56  inline const BannerFont* getFont () const;
57  string _getPrint () const;
58  const char* operator[] ( int line ) const;
59 
60  private:
61  // Internal: Attributes.
62  char _character;
63  int _height;
64  const char** _lines;
65  const BannerFont* _font;
66 
67  // Internal: Constructors.
68  BigChar& operator= ( const BigChar& );
69  BigChar ( const BigChar& );
70  };
71 
72  // Static Methods.
73  static const BannerFont* getBannerFont ( const string& name );
74  // Constructor & Destructor.
75  inline BannerFont ( const string& name );
76  // Methods.
77  inline void addChar ( char character, int height, const char *lines[] );
78  inline int getHeight () const;
79  inline const BigChar& operator[] ( char character ) const;
80 
81  private:
82  // Internal: FontMap subclass.
83  class FontMap : public map<const string,const BannerFont*> {
84  public:
85  FontMap ();
86  ~FontMap ();
87  const BannerFont* operator[] ( const string& name ) const;
88  };
89 
90  // Internal: Types.
91  typedef map<char,BigChar*> CharMap;
92 
93  // Internal: Static Attributes.
94  static FontMap _fontMap;
95  // Internal: Attributes.
96  CharMap _table;
97  string _name;
98  int _height;
99 
100  // Internal: Constructors.
101  BannerFont ( const BannerFont& );
102  ~BannerFont ();
103  inline BannerFont& operator= ( const BannerFont& );
104 
105  };
106 
107 
108 
109 
110 // -------------------------------------------------------------------
111 // Class : "CRL::Banner".
112 
113 
114  class Banner {
115  public:
116  // Constructor & Destructor.
117  Banner ( string name=""
118  , string version=""
119  , string purpose=""
120  , string date=""
121  , string authors=""
122  , string contributors="" );
123  virtual ~Banner ();
124  // Accessors.
125  inline const BannerFont* getFont () const;
126  inline const string& getName () const;
127  inline const string& getVersion () const;
128  inline const string& getPurpose () const;
129  inline const string& getDate () const;
130  inline const string& getAuthors () const;
131  inline const string& getContributors () const;
132  inline unsigned int getScreenWidth () const;
133  // Modifiers.
134  void setFont ( BannerFont* font );
135  void setName ( string name );
136  void setVersion ( string version );
137  void setPurpose ( string purpose );
138  void setDate ( string date );
139  void setAuthors ( string authors );
140  void setContributors ( string contributors );
141  void setScreenWidth ( unsigned screenWidth );
142  // Hurricane Management.
143  virtual const string _getPrint () const { return ( _banner.str() ); };
144 
145  // Internal: Attributes.
146  private:
147  string _name;
148  string _version;
149  string _purpose;
150  string _date;
151  string _authors;
152  string _contributors;
153  unsigned int _screenWidth;
154  size_t _cartoucheWidth;
155  const BannerFont* _font;
156  string* _lines;
157  ostringstream _banner;
158 
159  // Internal: Constructors.
160  Banner ( const Banner & );
161  Banner& operator= ( const Banner & );
162  // Internal: Methods.
163  void _redraw ();
164  };
165 
166 
167 // Inline Functions.
168  inline int BannerFont::BigChar::getHeight () const { return _height; }
169  inline const BannerFont* BannerFont::BigChar::getFont () const { return _font; }
170  inline BannerFont::BannerFont ( const string& name ): _table(), _name(name) {}
171  inline int BannerFont::getHeight () const { return _height; }
172  inline const BannerFont* Banner::getFont () const { return _font; }
173  inline const string& Banner::getName () const { return _name; }
174  inline const string& Banner::getVersion () const { return _version; }
175  inline const string& Banner::getPurpose () const { return _purpose; }
176  inline const string& Banner::getDate () const { return _date; }
177  inline const string& Banner::getAuthors () const { return _authors; }
178  inline const string& Banner::getContributors () const { return _contributors; }
179  inline unsigned int Banner::getScreenWidth () const { return _screenWidth; }
180 
181 
182 } // CRL namespace.
183 
184 
185 // Hurricane Management.
186 
187 inline std::string getPrint ( const CRL::BannerFont::BigChar& c ) { return c._getPrint(); }
188 inline std::string getPrint ( const CRL::Banner& b ) { return b._getPrint(); }
189 inline std::ostream& operator<< ( std::ostream& o, const CRL::BannerFont::BigChar& c ) { return o << getPrint(c); }
190 inline std::ostream& operator<< ( std::ostream& o, const CRL::Banner& b ) { return o << getPrint(b); }
191 
192 MSTREAM_R_SUPPORT(CRL::Banner);
193 
194 
195 #endif // CRL_BANNER_H
unsigned int getScreenWidth() const
Definition: Banner.h:179
void setScreenWidth(unsigned screenWidth)
-
const string & getDate() const
Definition: Banner.h:176
-
const string & getContributors() const
Definition: Banner.h:178
+
const string & getDate() const
Definition: Banner.h:176
void setVersion(string version)
-
const string & getName() const
Definition: Banner.h:173
void setAuthors(string authors)
void setDate(string date)
+
const string & getPurpose() const
Definition: Banner.h:175
Banner(string name="", string version="", string purpose="", string date="", string authors="", string contributors="")
void setContributors(string contributors)
-
const string & getVersion() const
Definition: Banner.h:174
void setName(string name)
-
const string & getAuthors() const
Definition: Banner.h:177
-
unsigned int getScreenWidth() const
Definition: Banner.h:179
+
const string & getVersion() const
Definition: Banner.h:174
+
const string & getContributors() const
Definition: Banner.h:178
+
const string & getAuthors() const
Definition: Banner.h:177
Print Formatted Banners (on ttys).
Definition: Banner.h:114
+
const string & getName() const
Definition: Banner.h:173
+
The namespace of Coriolis Core.
Definition: Environment.h:26
void setPurpose(string purpose)


- +
Generated by doxygen 1.8.5 on Thu Mar 19 2020Generated by doxygen 1.8.14 on Mon Apr 27 2020 Return to top of page
diff --git a/crlcore/doc/crlcore/html/Catalog_8h_source.html b/crlcore/doc/crlcore/html/Catalog_8h_source.html index 941e1ec1..2dfe5d21 100644 --- a/crlcore/doc/crlcore/html/Catalog_8h_source.html +++ b/crlcore/doc/crlcore/html/Catalog_8h_source.html @@ -24,21 +24,16 @@ -->
- - - + + + + +
-
1 // -*- C++ -*-
-
2 //
-
3 // This file is part of the Coriolis Software.
-
4 // Copyright (c) UPMC 2008-2018, All Rights Reserved
-
5 //
-
6 // +-----------------------------------------------------------------+
-
7 // | C O R I O L I S |
-
8 // | Alliance / Hurricane Interface |
-
9 // | |
-
10 // | Author : Jean-Paul CHAPUT |
-
11 // | E-mail : Jean-Paul.Chaput@lip6.fr |
-
12 // | =============================================================== |
-
13 // | C++ Header : "./crlcore/Catalog.h" |
-
14 // +-----------------------------------------------------------------+
-
15 
-
16 
-
17 #ifndef CRL_CATALOG_H
-
18 #define CRL_CATALOG_H
-
19 
-
20 #include <string>
-
21 #include <map>
-
22 #include "hurricane/Name.h"
-
23 #include "hurricane/Property.h"
-
24 #include "hurricane/Slot.h"
-
25 
-
26 namespace Hurricane {
-
27  class Cell;
-
28  class Library;
-
29 }
-
30 
-
31 
-
32 namespace CRL {
-
33 
-
34 
-
35  using std::string;
-
36  using std::map;
- - -
39  using Hurricane::_TName;
-
40  using Hurricane::Name;
-
41  using Hurricane::Record;
- -
43  using Hurricane::DBo;
-
44  using Hurricane::Cell;
-
45  using Hurricane::Library;
-
46  using Hurricane::Property;
-
47 
-
48 
-
49  extern const char* MissingStateProperty;
-
50 
-
51 
-
52 // -------------------------------------------------------------------
-
53 // Class : "CRL::Catalog".
-
54 
-
55 
-
56  class Catalog {
-
57 
-
58  public:
-
59  class State;
-
60  public:
-
61  inline Catalog ();
-
62  ~Catalog ();
-
63  State* getState ( const Name& name, bool add=false );
-
64  void mergeState ( const Name& name, const State& other );
-
65  bool deleteState ( const Name& name );
-
66  void clear ();
-
67  bool loadFromFile ( const string& path, Library* library );
-
68  void saveToFile ( const string& path, Library* library );
-
69  inline map<Name,State*>* getStates ();
-
70  string _getPrint () const;
-
71  inline string _getTypeName () const;
-
72  string _getString () const;
-
73  Record* _getRecord () const;
-
74 
-
75  public:
-
76  // Sub-Class: State.
-
77  class State {
-
78  public:
-
79  // Flags Constants.
-
80  enum Flags { TerminalNetlist = 1 << 0
-
81  , Feed = 1 << 1
-
82  , Pad = 1 << 2
-
83  , GDS = 1 << 3
-
84  , Delete = 1 << 4
-
85  , Logical = 1 << 5
-
86  , Physical = 1 << 6
-
87  , InMemory = 1 << 7
-
88  , Foreign = 1 << 8
-
89  , VstUseConcat = 1 << 9
- -
91  };
-
92  // Constructors.
-
93  inline State ();
-
94  ~State ();
-
95  // Predicates.
-
96  inline bool isTerminalNetlist () const;
-
97  inline bool isFeed () const;
-
98  inline bool isPad () const;
-
99  inline bool isGds () const;
-
100  inline bool isDelete () const;
-
101  inline bool isPhysical () const;
-
102  inline bool isLogical () const;
-
103  inline bool isInMemory () const;
-
104  // Flags management.
-
105  inline unsigned int getFlags ( unsigned int mask=(unsigned int)-1 ) const;
-
106  inline bool setFlags ( unsigned int mask, bool value );
-
107  inline bool setTerminalNetlist ( bool value );
-
108  inline bool setFeed ( bool value );
-
109  inline bool setPad ( bool value );
-
110  inline bool setGds ( bool value );
-
111  inline bool setDelete ( bool value );
-
112  inline bool setPhysical ( bool value );
-
113  inline bool setLogical ( bool value );
-
114  inline bool setInMemory ( bool value );
-
115  // Accessors.
-
116  inline Cell* getCell () const;
-
117  inline Library* getLibrary () const;
-
118  inline unsigned int getDepth () const;
-
119  // Modifiers.
-
120  inline void merge ( const State& other );
-
121  Cell* setCell ( Cell* cell );
-
122  inline Library* setLibrary ( Library* library );
-
123  inline void setDepth ( unsigned int depth );
-
124  // Hurricane Management.
-
125  void toJson ( JsonWriter* w ) const;
-
126  inline string _getTypeName () const;
-
127  string _getString () const;
-
128  Record* _getRecord () const;
-
129 
-
130  private:
-
131  // Internal - Attributes.
-
132  unsigned int _flags;
-
133  unsigned int _depth;
-
134  Cell* _cell;
-
135  Library* _library;
-
136 
-
137  // Json Property.
-
138  public:
-
139  class JsonState : public JsonObject {
-
140  public:
-
141  static void initialize ();
-
142  JsonState ( unsigned long flags );
-
143  virtual string getTypeName () const;
-
144  virtual JsonState* clone ( unsigned long ) const;
-
145  virtual void toData ( JsonStack& );
-
146  };
-
147  };
-
148 
-
149  private:
-
150  // Attributes.
-
151  map<Name,State*> _states;
-
152 
-
153  private:
-
154  Catalog ( const Catalog& );
-
155  static bool readLine ( const string& s, string& name, State* state );
-
156 
-
157  };
-
158 
-
159 
-
160 // -------------------------------------------------------------------
-
161 // Class : "CRL::CatalogProperty".
-
162 
-
163  class CatalogProperty : public PrivateProperty {
-
164 
-
165  public:
-
166  static Name _name;
-
167  public:
-
168  static CatalogProperty* create ( Catalog::State* state );
-
169  static Name getPropertyName ();
-
170  virtual Name getName () const;
-
171  inline Catalog::State* getState () const;
-
172  inline void setState ( Catalog::State* state );
-
173  virtual void onReleasedBy ( DBo* owner );
-
174  virtual bool hasJson () const;
-
175  virtual void toJson ( JsonWriter* w, const DBo* ) const;
-
176  virtual string _getTypeName () const;
-
177  virtual string _getString () const;
-
178  virtual Record* _getRecord () const;
-
179 
-
180  protected:
-
181  // Attributes.
-
182  Catalog::State* _state;
-
183 
-
184  protected:
-
185  // Constructor.
-
186  inline CatalogProperty ( Catalog::State* state );
-
187  };
-
188 
-
189 
-
190 // -------------------------------------------------------------------
-
191 // Class : "CRL::JsonCatalogProperty".
-
192 
-
193  class JsonCatalogProperty : public JsonObject {
-
194  public:
-
195  static void initialize ();
-
196  JsonCatalogProperty ( unsigned long );
-
197  virtual string getTypeName () const;
-
198  virtual JsonCatalogProperty* clone ( unsigned long ) const;
-
199  virtual void toData ( JsonStack& );
-
200  };
-
201 
-
202 
-
203 // -------------------------------------------------------------------
-
204 // Inline Functions.
-
205 
-
206  inline Catalog::State::State () : _flags(0), _depth(1), _cell(NULL), _library(NULL) { }
-
207  inline bool Catalog::State::isTerminalNetlist () const { return (_flags&TerminalNetlist)?1:0; }
-
208  inline bool Catalog::State::isFeed () const { return (_flags&Feed )?1:0; }
-
209  inline bool Catalog::State::isPad () const { return (_flags&Pad )?1:0; }
-
210  inline bool Catalog::State::isGds () const { return (_flags&GDS )?1:0; }
-
211  inline bool Catalog::State::isDelete () const { return (_flags&Delete )?1:0; }
-
212  inline bool Catalog::State::isPhysical () const { return (_flags&Physical )?1:0; }
-
213  inline bool Catalog::State::isLogical () const { return (_flags&Logical )?1:0; }
-
214  inline bool Catalog::State::isInMemory () const { return (_flags&InMemory )?1:0; }
-
215  inline unsigned int Catalog::State::getFlags ( unsigned int mask ) const { return ( _flags & mask ); }
-
216  inline bool Catalog::State::setFlags ( unsigned int mask, bool value ) {
-
217  if (value) { _flags |= mask; }
-
218  else { _flags &= ~mask; }
-
219  return ((_flags&mask) ? true : false);
-
220  }
-
221  inline bool Catalog::State::setTerminalNetlist ( bool value ) { return setFlags(TerminalNetlist,value); }
-
222  inline bool Catalog::State::setFeed ( bool value ) { return setFlags(Feed ,value); }
-
223  inline bool Catalog::State::setPad ( bool value ) { return setFlags(Pad ,value); }
-
224  inline bool Catalog::State::setGds ( bool value ) { return setFlags(GDS ,value); }
-
225  inline bool Catalog::State::setDelete ( bool value ) { return setFlags(Delete ,value); }
-
226  inline bool Catalog::State::setPhysical ( bool value ) { return setFlags(Physical ,value); }
-
227  inline bool Catalog::State::setLogical ( bool value ) { return setFlags(Logical ,value); }
-
228  inline bool Catalog::State::setInMemory ( bool value ) { return setFlags(InMemory ,value); }
-
229  inline Library* Catalog::State::setLibrary ( Library* library ) { return _library = library; }
-
230  inline void Catalog::State::setDepth ( unsigned int depth ) { _depth = depth; }
-
231  inline Cell* Catalog::State::getCell () const { return _cell; }
-
232  inline Library* Catalog::State::getLibrary () const { return _library; }
-
233  inline unsigned int Catalog::State::getDepth () const { return _depth; }
-
234  inline string Catalog::State::_getTypeName () const { return _TName("Catalog::State"); }
-
235 
-
236  inline Catalog::Catalog () : _states() { }
-
237  inline map<Name,Catalog::State*>*
-
238  Catalog::getStates () { return &_states; }
-
239  inline string Catalog::_getTypeName () const { return _TName("Catalog"); }
-
240 
-
241  inline CatalogProperty::CatalogProperty ( Catalog::State* state ) : PrivateProperty(), _state(state) {}
-
242  inline Catalog::State* CatalogProperty::getState () const { return _state; }
-
243  inline void CatalogProperty::setState ( Catalog::State* state ) { _state = state; }
-
244 
-
245 
-
246 // -------------------------------------------------------------------
-
247 // Class : "CRL::CatalogExtension".
-
248 
-
249 
- -
251  public:
-
252  static Catalog::State* get ( const Cell* );
-
253  public:
-
254  static inline bool isTerminalNetlist ( const Cell* );
-
255  static inline bool isFeed ( const Cell* );
-
256  static inline bool isPad ( const Cell* );
-
257  static inline bool isGds ( const Cell* );
-
258  static inline bool isDelete ( const Cell* );
-
259  static inline bool isPhysical ( const Cell* );
-
260  static inline bool isLogical ( const Cell* );
-
261  // Flags management.
-
262  static inline unsigned int getFlags ( const Cell*, unsigned int mask=(unsigned int)-1 );
-
263  static inline bool setFlags ( const Cell*, unsigned int mask, bool value );
-
264  static inline bool setTerminalNetlist ( const Cell*, bool value );
-
265  static inline bool setFeed ( const Cell*, bool value );
-
266  static inline bool setPad ( const Cell*, bool value );
-
267  static inline bool setGds ( const Cell*, bool value );
-
268  static inline bool setDelete ( const Cell*, bool value );
-
269  static inline bool setPhysical ( const Cell*, bool value );
-
270  static inline bool setLogical ( const Cell*, bool value );
-
271  // Accessors.
-
272  static inline Library* getLibrary ( const Cell* );
-
273  static inline unsigned int getDepth ( const Cell* );
-
274  // Modifiers.
-
275  static inline Library* setLibrary ( const Cell*, Library* library );
-
276  static inline void setDepth ( const Cell*, unsigned int depth );
-
277  private:
-
278  static const Cell* _owner;
-
279  static Catalog::State* _cache;
-
280  };
-
281 
-
282 
-
283  inline bool CatalogExtension::isTerminalNetlist ( const Cell* cell )
-
284  {
-
285  Catalog::State* state = get(cell);
-
286  return (state == NULL) ? false : state->isTerminalNetlist();
-
287  }
-
288 
-
289 
-
290  inline bool CatalogExtension::isFeed ( const Cell* cell )
-
291  {
-
292  Catalog::State* state = get(cell);
-
293  return (state == NULL) ? false : state->isFeed();
-
294  }
-
295 
-
296 
-
297  inline bool CatalogExtension::isGds ( const Cell* cell )
-
298  {
-
299  Catalog::State* state = get(cell);
-
300  return (state == NULL) ? false : state->isGds();
-
301  }
-
302 
-
303 
-
304  inline bool CatalogExtension::isPad ( const Cell* cell )
-
305  {
-
306  Catalog::State* state = get(cell);
-
307  return (state == NULL) ? false : state->isPad();
-
308  }
-
309 
-
310 
-
311  inline bool CatalogExtension::isDelete ( const Cell* cell )
-
312  {
-
313  Catalog::State* state = get(cell);
-
314  return (state == NULL) ? false : state->isDelete();
-
315  }
-
316 
-
317 
-
318  inline bool CatalogExtension::isPhysical ( const Cell* cell )
-
319  {
-
320  Catalog::State* state = get(cell);
-
321  return (state == NULL) ? false : state->isPhysical();
-
322  }
-
323 
-
324 
-
325  inline bool CatalogExtension::isLogical ( const Cell* cell )
-
326  {
-
327  Catalog::State* state = get(cell);
-
328  return (state == NULL) ? false : state->isLogical();
-
329  }
-
330 
-
331 
-
332  inline unsigned int CatalogExtension::getFlags ( const Cell* cell, unsigned int mask )
-
333  {
-
334  Catalog::State* state = get(cell);
-
335  return (state == NULL) ? 0 : state->getFlags();
-
336  }
-
337 
-
338 
-
339  inline bool CatalogExtension::setFlags ( const Cell* cell, unsigned int mask, bool value )
-
340  {
-
341  Catalog::State* state = get(cell);
-
342  return (state == NULL) ? false : state->setFlags(mask,value);
-
343  }
-
344 
-
345 
-
346  inline bool CatalogExtension::setTerminalNetlist ( const Cell* cell, bool value )
-
347  {
-
348  Catalog::State* state = get(cell);
-
349  return (state == NULL) ? false : state->setTerminalNetlist(value);
-
350  }
-
351 
-
352 
-
353  inline bool CatalogExtension::setFeed ( const Cell* cell, bool value )
-
354  {
-
355  Catalog::State* state = get(cell);
-
356  return (state == NULL) ? false : state->setFeed(value);
-
357  }
-
358 
-
359 
-
360  inline bool CatalogExtension::setPad ( const Cell* cell, bool value )
-
361  {
-
362  Catalog::State* state = get(cell);
-
363  return (state == NULL) ? false : state->setPad(value);
-
364  }
-
365 
-
366 
-
367  inline bool CatalogExtension::setGds ( const Cell* cell, bool value )
-
368  {
-
369  Catalog::State* state = get(cell);
-
370  return (state == NULL) ? false : state->setGds(value);
-
371  }
-
372 
-
373 
-
374  inline bool CatalogExtension::setDelete ( const Cell* cell, bool value )
-
375  {
-
376  Catalog::State* state = get(cell);
-
377  return (state == NULL) ? false : state->setDelete(value);
-
378  }
-
379 
-
380 
-
381  inline bool CatalogExtension::setPhysical ( const Cell* cell, bool value )
-
382  {
-
383  Catalog::State* state = get(cell);
-
384  return (state == NULL) ? false : state->setPhysical(value);
-
385  }
-
386 
-
387 
-
388  inline bool CatalogExtension::setLogical ( const Cell* cell, bool value )
-
389  {
-
390  Catalog::State* state = get(cell);
-
391  return (state == NULL) ? false : state->setLogical(value);
-
392  }
-
393 
-
394 
-
395  inline Library* CatalogExtension::getLibrary ( const Cell* cell )
-
396  {
-
397  Catalog::State* state = get(cell);
-
398  return (state == NULL) ? NULL : state->getLibrary();
-
399  }
-
400 
-
401 
-
402  inline unsigned int CatalogExtension::getDepth ( const Cell* cell )
-
403  {
-
404  Catalog::State* state = get(cell);
-
405  return (state == NULL) ? 0 : state->getDepth();
-
406  }
-
407 
-
408 
-
409  inline Library* CatalogExtension::setLibrary ( const Cell* cell, Library* library )
-
410  {
-
411  Catalog::State* state = get(cell);
-
412  return (state == NULL) ? NULL : state->setLibrary(library);
-
413  }
-
414 
-
415 
-
416  inline void CatalogExtension::setDepth ( const Cell* cell, unsigned int depth )
-
417  {
-
418  Catalog::State* state = get(cell);
-
419  if ( state == NULL ) state->setDepth(depth);
-
420  }
-
421 
-
422 
-
423 } // End of CRL namespace.
-
424 
-
425 
-
426 
-
427 
-
428 // x-----------------------------------------------------------------x
-
429 // | Functions Overload for Hurricane Management |
-
430 // x-----------------------------------------------------------------x
-
431 
-
432 
-
433 inline std::string getPrint ( const CRL::Catalog &CATAL ) { return CATAL._getPrint(); }
-
434 
-
435 INSPECTOR_P_SUPPORT(CRL::Catalog);
-
436 INSPECTOR_P_SUPPORT(CRL::Catalog::State);
-
437 
-
438 
-
439 #endif // CRL_CATALOG_H
+
1 // -*- C++ -*-
2 //
3 // This file is part of the Coriolis Software.
4 // Copyright (c) UPMC 2008-2018, All Rights Reserved
5 //
6 // +-----------------------------------------------------------------+
7 // | C O R I O L I S |
8 // | Alliance / Hurricane Interface |
9 // | |
10 // | Author : Jean-Paul CHAPUT |
11 // | E-mail : Jean-Paul.Chaput@lip6.fr |
12 // | =============================================================== |
13 // | C++ Header : "./crlcore/Catalog.h" |
14 // +-----------------------------------------------------------------+
15 
16 
17 #ifndef CRL_CATALOG_H
18 #define CRL_CATALOG_H
19 
20 #include <string>
21 #include <map>
22 #include "hurricane/Name.h"
23 #include "hurricane/Property.h"
24 #include "hurricane/Slot.h"
25 
26 namespace Hurricane {
27  class Cell;
28  class Library;
29 }
30 
31 
32 namespace CRL {
33 
34 
35  using std::string;
36  using std::map;
39  using Hurricane::_TName;
40  using Hurricane::Name;
41  using Hurricane::Record;
43  using Hurricane::DBo;
44  using Hurricane::Cell;
45  using Hurricane::Library;
46  using Hurricane::Property;
47 
48 
49  extern const char* MissingStateProperty;
50 
51 
52 // -------------------------------------------------------------------
53 // Class : "CRL::Catalog".
54 
55 
56  class Catalog {
57 
58  public:
59  class State;
60  public:
61  inline Catalog ();
62  ~Catalog ();
63  State* getState ( const Name& name, bool add=false );
64  void mergeState ( const Name& name, const State& other );
65  bool deleteState ( const Name& name );
66  void clear ();
67  bool loadFromFile ( const string& path, Library* library );
68  void saveToFile ( const string& path, Library* library );
69  inline map<Name,State*>* getStates ();
70  string _getPrint () const;
71  inline string _getTypeName () const;
72  string _getString () const;
73  Record* _getRecord () const;
74 
75  public:
76  // Sub-Class: State.
77  class State {
78  public:
79  // Flags Constants.
80  enum Flags { TerminalNetlist = 1 << 0
81  , Feed = 1 << 1
82  , Pad = 1 << 2
83  , GDS = 1 << 3
84  , Delete = 1 << 4
85  , Logical = 1 << 5
86  , Physical = 1 << 6
87  , InMemory = 1 << 7
88  , Foreign = 1 << 8
89  , VstUseConcat = 1 << 9
91  };
92  // Constructors.
93  inline State ();
94  ~State ();
95  // Predicates.
96  inline bool isTerminalNetlist () const;
97  inline bool isFeed () const;
98  inline bool isPad () const;
99  inline bool isGds () const;
100  inline bool isDelete () const;
101  inline bool isPhysical () const;
102  inline bool isLogical () const;
103  inline bool isInMemory () const;
104  // Flags management.
105  inline unsigned int getFlags ( unsigned int mask=(unsigned int)-1 ) const;
106  inline bool setFlags ( unsigned int mask, bool value );
107  inline bool setTerminalNetlist ( bool value );
108  inline bool setFeed ( bool value );
109  inline bool setPad ( bool value );
110  inline bool setGds ( bool value );
111  inline bool setDelete ( bool value );
112  inline bool setPhysical ( bool value );
113  inline bool setLogical ( bool value );
114  inline bool setInMemory ( bool value );
115  // Accessors.
116  inline Cell* getCell () const;
117  inline Library* getLibrary () const;
118  inline unsigned int getDepth () const;
119  // Modifiers.
120  inline void merge ( const State& other );
121  Cell* setCell ( Cell* cell );
122  inline Library* setLibrary ( Library* library );
123  inline void setDepth ( unsigned int depth );
124  // Hurricane Management.
125  void toJson ( JsonWriter* w ) const;
126  inline string _getTypeName () const;
127  string _getString () const;
128  Record* _getRecord () const;
129 
130  private:
131  // Internal - Attributes.
132  unsigned int _flags;
133  unsigned int _depth;
134  Cell* _cell;
135  Library* _library;
136 
137  // Json Property.
138  public:
139  class JsonState : public JsonObject {
140  public:
141  static void initialize ();
142  JsonState ( unsigned long flags );
143  virtual string getTypeName () const;
144  virtual JsonState* clone ( unsigned long ) const;
145  virtual void toData ( JsonStack& );
146  };
147  };
148 
149  private:
150  // Attributes.
151  map<Name,State*> _states;
152 
153  private:
154  Catalog ( const Catalog& );
155  static bool readLine ( const string& s, string& name, State* state );
156 
157  };
158 
159 
160 // -------------------------------------------------------------------
161 // Class : "CRL::CatalogProperty".
162 
163  class CatalogProperty : public PrivateProperty {
164 
165  public:
166  static Name _name;
167  public:
168  static CatalogProperty* create ( Catalog::State* state );
169  static Name getPropertyName ();
170  virtual Name getName () const;
171  inline Catalog::State* getState () const;
172  inline void setState ( Catalog::State* state );
173  virtual void onReleasedBy ( DBo* owner );
174  virtual bool hasJson () const;
175  virtual void toJson ( JsonWriter* w, const DBo* ) const;
176  virtual string _getTypeName () const;
177  virtual string _getString () const;
178  virtual Record* _getRecord () const;
179 
180  protected:
181  // Attributes.
182  Catalog::State* _state;
183 
184  protected:
185  // Constructor.
186  inline CatalogProperty ( Catalog::State* state );
187  };
188 
189 
190 // -------------------------------------------------------------------
191 // Class : "CRL::JsonCatalogProperty".
192 
193  class JsonCatalogProperty : public JsonObject {
194  public:
195  static void initialize ();
196  JsonCatalogProperty ( unsigned long );
197  virtual string getTypeName () const;
198  virtual JsonCatalogProperty* clone ( unsigned long ) const;
199  virtual void toData ( JsonStack& );
200  };
201 
202 
203 // -------------------------------------------------------------------
204 // Inline Functions.
205 
206  inline Catalog::State::State () : _flags(0), _depth(1), _cell(NULL), _library(NULL) { }
207  inline bool Catalog::State::isTerminalNetlist () const { return (_flags&TerminalNetlist)?1:0; }
208  inline bool Catalog::State::isFeed () const { return (_flags&Feed )?1:0; }
209  inline bool Catalog::State::isPad () const { return (_flags&Pad )?1:0; }
210  inline bool Catalog::State::isGds () const { return (_flags&GDS )?1:0; }
211  inline bool Catalog::State::isDelete () const { return (_flags&Delete )?1:0; }
212  inline bool Catalog::State::isPhysical () const { return (_flags&Physical )?1:0; }
213  inline bool Catalog::State::isLogical () const { return (_flags&Logical )?1:0; }
214  inline bool Catalog::State::isInMemory () const { return (_flags&InMemory )?1:0; }
215  inline unsigned int Catalog::State::getFlags ( unsigned int mask ) const { return ( _flags & mask ); }
216  inline bool Catalog::State::setFlags ( unsigned int mask, bool value ) {
217  if (value) { _flags |= mask; }
218  else { _flags &= ~mask; }
219  return ((_flags&mask) ? true : false);
220  }
221  inline bool Catalog::State::setTerminalNetlist ( bool value ) { return setFlags(TerminalNetlist,value); }
222  inline bool Catalog::State::setFeed ( bool value ) { return setFlags(Feed ,value); }
223  inline bool Catalog::State::setPad ( bool value ) { return setFlags(Pad ,value); }
224  inline bool Catalog::State::setGds ( bool value ) { return setFlags(GDS ,value); }
225  inline bool Catalog::State::setDelete ( bool value ) { return setFlags(Delete ,value); }
226  inline bool Catalog::State::setPhysical ( bool value ) { return setFlags(Physical ,value); }
227  inline bool Catalog::State::setLogical ( bool value ) { return setFlags(Logical ,value); }
228  inline bool Catalog::State::setInMemory ( bool value ) { return setFlags(InMemory ,value); }
229  inline Library* Catalog::State::setLibrary ( Library* library ) { return _library = library; }
230  inline void Catalog::State::setDepth ( unsigned int depth ) { _depth = depth; }
231  inline Cell* Catalog::State::getCell () const { return _cell; }
232  inline Library* Catalog::State::getLibrary () const { return _library; }
233  inline unsigned int Catalog::State::getDepth () const { return _depth; }
234  inline string Catalog::State::_getTypeName () const { return _TName("Catalog::State"); }
235 
236  inline Catalog::Catalog () : _states() { }
237  inline map<Name,Catalog::State*>*
238  Catalog::getStates () { return &_states; }
239  inline string Catalog::_getTypeName () const { return _TName("Catalog"); }
240 
241  inline CatalogProperty::CatalogProperty ( Catalog::State* state ) : PrivateProperty(), _state(state) {}
242  inline Catalog::State* CatalogProperty::getState () const { return _state; }
243  inline void CatalogProperty::setState ( Catalog::State* state ) { _state = state; }
244 
245 
246 // -------------------------------------------------------------------
247 // Class : "CRL::CatalogExtension".
248 
249 
251  public:
252  static Catalog::State* get ( const Cell* );
253  public:
254  static inline bool isTerminalNetlist ( const Cell* );
255  static inline bool isFeed ( const Cell* );
256  static inline bool isPad ( const Cell* );
257  static inline bool isGds ( const Cell* );
258  static inline bool isDelete ( const Cell* );
259  static inline bool isPhysical ( const Cell* );
260  static inline bool isLogical ( const Cell* );
261  // Flags management.
262  static inline unsigned int getFlags ( const Cell*, unsigned int mask=(unsigned int)-1 );
263  static inline bool setFlags ( const Cell*, unsigned int mask, bool value );
264  static inline bool setTerminalNetlist ( const Cell*, bool value );
265  static inline bool setFeed ( const Cell*, bool value );
266  static inline bool setPad ( const Cell*, bool value );
267  static inline bool setGds ( const Cell*, bool value );
268  static inline bool setDelete ( const Cell*, bool value );
269  static inline bool setPhysical ( const Cell*, bool value );
270  static inline bool setLogical ( const Cell*, bool value );
271  // Accessors.
272  static inline Library* getLibrary ( const Cell* );
273  static inline unsigned int getDepth ( const Cell* );
274  // Modifiers.
275  static inline Library* setLibrary ( const Cell*, Library* library );
276  static inline void setDepth ( const Cell*, unsigned int depth );
277  private:
278  static const Cell* _owner;
279  static Catalog::State* _cache;
280  };
281 
282 
283  inline bool CatalogExtension::isTerminalNetlist ( const Cell* cell )
284  {
285  Catalog::State* state = get(cell);
286  return (state == NULL) ? false : state->isTerminalNetlist();
287  }
288 
289 
290  inline bool CatalogExtension::isFeed ( const Cell* cell )
291  {
292  Catalog::State* state = get(cell);
293  return (state == NULL) ? false : state->isFeed();
294  }
295 
296 
297  inline bool CatalogExtension::isGds ( const Cell* cell )
298  {
299  Catalog::State* state = get(cell);
300  return (state == NULL) ? false : state->isGds();
301  }
302 
303 
304  inline bool CatalogExtension::isPad ( const Cell* cell )
305  {
306  Catalog::State* state = get(cell);
307  return (state == NULL) ? false : state->isPad();
308  }
309 
310 
311  inline bool CatalogExtension::isDelete ( const Cell* cell )
312  {
313  Catalog::State* state = get(cell);
314  return (state == NULL) ? false : state->isDelete();
315  }
316 
317 
318  inline bool CatalogExtension::isPhysical ( const Cell* cell )
319  {
320  Catalog::State* state = get(cell);
321  return (state == NULL) ? false : state->isPhysical();
322  }
323 
324 
325  inline bool CatalogExtension::isLogical ( const Cell* cell )
326  {
327  Catalog::State* state = get(cell);
328  return (state == NULL) ? false : state->isLogical();
329  }
330 
331 
332  inline unsigned int CatalogExtension::getFlags ( const Cell* cell, unsigned int mask )
333  {
334  Catalog::State* state = get(cell);
335  return (state == NULL) ? 0 : state->getFlags();
336  }
337 
338 
339  inline bool CatalogExtension::setFlags ( const Cell* cell, unsigned int mask, bool value )
340  {
341  Catalog::State* state = get(cell);
342  return (state == NULL) ? false : state->setFlags(mask,value);
343  }
344 
345 
346  inline bool CatalogExtension::setTerminalNetlist ( const Cell* cell, bool value )
347  {
348  Catalog::State* state = get(cell);
349  return (state == NULL) ? false : state->setTerminalNetlist(value);
350  }
351 
352 
353  inline bool CatalogExtension::setFeed ( const Cell* cell, bool value )
354  {
355  Catalog::State* state = get(cell);
356  return (state == NULL) ? false : state->setFeed(value);
357  }
358 
359 
360  inline bool CatalogExtension::setPad ( const Cell* cell, bool value )
361  {
362  Catalog::State* state = get(cell);
363  return (state == NULL) ? false : state->setPad(value);
364  }
365 
366 
367  inline bool CatalogExtension::setGds ( const Cell* cell, bool value )
368  {
369  Catalog::State* state = get(cell);
370  return (state == NULL) ? false : state->setGds(value);
371  }
372 
373 
374  inline bool CatalogExtension::setDelete ( const Cell* cell, bool value )
375  {
376  Catalog::State* state = get(cell);
377  return (state == NULL) ? false : state->setDelete(value);
378  }
379 
380 
381  inline bool CatalogExtension::setPhysical ( const Cell* cell, bool value )
382  {
383  Catalog::State* state = get(cell);
384  return (state == NULL) ? false : state->setPhysical(value);
385  }
386 
387 
388  inline bool CatalogExtension::setLogical ( const Cell* cell, bool value )
389  {
390  Catalog::State* state = get(cell);
391  return (state == NULL) ? false : state->setLogical(value);
392  }
393 
394 
395  inline Library* CatalogExtension::getLibrary ( const Cell* cell )
396  {
397  Catalog::State* state = get(cell);
398  return (state == NULL) ? NULL : state->getLibrary();
399  }
400 
401 
402  inline unsigned int CatalogExtension::getDepth ( const Cell* cell )
403  {
404  Catalog::State* state = get(cell);
405  return (state == NULL) ? 0 : state->getDepth();
406  }
407 
408 
409  inline Library* CatalogExtension::setLibrary ( const Cell* cell, Library* library )
410  {
411  Catalog::State* state = get(cell);
412  return (state == NULL) ? NULL : state->setLibrary(library);
413  }
414 
415 
416  inline void CatalogExtension::setDepth ( const Cell* cell, unsigned int depth )
417  {
418  Catalog::State* state = get(cell);
419  if ( state == NULL ) state->setDepth(depth);
420  }
421 
422 
423 } // End of CRL namespace.
424 
425 
426 
427 
428 // x-----------------------------------------------------------------x
429 // | Functions Overload for Hurricane Management |
430 // x-----------------------------------------------------------------x
431 
432 
433 inline std::string getPrint ( const CRL::Catalog &CATAL ) { return CATAL._getPrint(); }
434 
435 INSPECTOR_P_SUPPORT(CRL::Catalog);
436 INSPECTOR_P_SUPPORT(CRL::Catalog::State);
437 
438 
439 #endif // CRL_CATALOG_H
unsigned int getFlags(unsigned int mask=(unsigned int) -1) const
Definition: Catalog.h:215
static bool setPad(const Cell *, bool value)
Definition: Catalog.h:360
@@ -497,24 +54,22 @@
bool setPad(bool value)
Definition: Catalog.h:223
-
Cell * getCell() const
Definition: Catalog.h:231
static bool isGds(const Cell *)
Definition: Catalog.h:297
bool setGds(bool value)
Definition: Catalog.h:224
Cell * setCell(Cell *cell)
Catalog()
Definition: Catalog.h:236
static bool isDelete(const Cell *)
Definition: Catalog.h:311
-
bool isFeed() const
Definition: Catalog.h:208
static bool isLogical(const Cell *)
Definition: Catalog.h:325
static bool setFeed(const Cell *, bool value)
Definition: Catalog.h:353
+
bool isLogical() const
Definition: Catalog.h:213
void merge(const State &other)
-
bool isPad() const
Definition: Catalog.h:209
-
unsigned int getDepth() const
Definition: Catalog.h:233
-
bool isDelete() const
Definition: Catalog.h:211
-
bool isLogical() const
Definition: Catalog.h:213
+
bool isPhysical() const
Definition: Catalog.h:212
+
bool isDelete() const
Definition: Catalog.h:211
+
static unsigned int getFlags(const Cell *, unsigned int mask=(unsigned int) -1)
Definition: Catalog.h:332
Library * setLibrary(Library *library)
Definition: Catalog.h:229
Definition: Catalog.h:86
Definition: Catalog.h:90
@@ -525,42 +80,45 @@
void mergeState(const Name &name, const State &other)
bool setFeed(bool value)
Definition: Catalog.h:222
+
Library * getLibrary() const
Definition: Catalog.h:232
Definition: Catalog.h:81
+
Cell * getCell() const
Definition: Catalog.h:231
bool setFlags(unsigned int mask, bool value)
Definition: Catalog.h:216
map< Name, State * > * getStates()
Definition: Catalog.h:238
static bool isFeed(const Cell *)
Definition: Catalog.h:290
Definition: Catalog.h:82
-
bool isGds() const
Definition: Catalog.h:210
static Library * getLibrary(const Cell *)
Definition: Catalog.h:395
-
static unsigned int getFlags(const Cell *, unsigned int mask=(unsigned int)-1)
Definition: Catalog.h:332
State * getState(const Name &name, bool add=false)
State()
Definition: Catalog.h:206
-
Library * getLibrary() const
Definition: Catalog.h:232
static bool isPad(const Cell *)
Definition: Catalog.h:304
bool loadFromFile(const string &path, Library *library)
+
bool isFeed() const
Definition: Catalog.h:208
bool setDelete(bool value)
Definition: Catalog.h:225
static Library * setLibrary(const Cell *, Library *library)
Definition: Catalog.h:409
static bool setPhysical(const Cell *, bool value)
Definition: Catalog.h:381
+
Definition: Catalog.h:85
-
unsigned int getFlags(unsigned int mask=(unsigned int)-1) const
Definition: Catalog.h:215
+
bool isPad() const
Definition: Catalog.h:209
A Registry to store Alliance Cell metadatas.
Definition: Catalog.h:56
-
bool isPhysical() const
Definition: Catalog.h:212
Definition: Catalog.h:83
static bool setDelete(const Cell *, bool value)
Definition: Catalog.h:374
Wrapper to access a Hurricane::Cell Catalog::State.
Definition: Catalog.h:250
bool setPhysical(bool value)
Definition: Catalog.h:226
+
bool isGds() const
Definition: Catalog.h:210
static bool isPhysical(const Cell *)
Definition: Catalog.h:318
static unsigned int getDepth(const Cell *)
Definition: Catalog.h:402
Flags
Definition: Catalog.h:80
+
The namespace of Coriolis Core.
Definition: Environment.h:26
+
unsigned int getDepth() const
Definition: Catalog.h:233
static bool setFlags(const Cell *, unsigned int mask, bool value)
Definition: Catalog.h:339


- +
Generated by doxygen 1.8.5 on Thu Mar 19 2020Generated by doxygen 1.8.14 on Mon Apr 27 2020 Return to top of page
diff --git a/crlcore/doc/crlcore/html/Environment_8h_source.html b/crlcore/doc/crlcore/html/Environment_8h_source.html index 9c962ffa..bf8bbff7 100644 --- a/crlcore/doc/crlcore/html/Environment_8h_source.html +++ b/crlcore/doc/crlcore/html/Environment_8h_source.html @@ -24,21 +24,16 @@ -->
- - - + + + + +
-
1 // -*- C++ -*-
-
2 //
-
3 // This file is part of the Coriolis Software.
-
4 // Copyright (c) UPMC 2008-2018, All Rights Reserved
-
5 //
-
6 // +-----------------------------------------------------------------+
-
7 // | C O R I O L I S |
-
8 // | Alliance / Hurricane Interface |
-
9 // | |
-
10 // | Author : Jean-Paul CHAPUT |
-
11 // | E-mail : Jean-Paul.Chaput@asim.lip6.fr |
-
12 // | =============================================================== |
-
13 // | C++ Header : "./crlcore/Environment.h" |
-
14 // +-----------------------------------------------------------------+
-
15 
-
16 
-
17 #ifndef CRL_ENVIRONMENT_H
-
18 #define CRL_ENVIRONMENT_H
-
19 
-
20 #include <regex.h>
-
21 #include <string>
-
22 #include "hurricane/Commons.h"
-
23 #include "crlcore/SearchPath.h"
-
24 
-
25 
-
26 namespace CRL {
-
27 
- - -
30 
-
31 
-
32 // -------------------------------------------------------------------
-
33 // Class : "Environment".
-
34 
-
35  class Environment {
-
36  public:
-
37  enum AddMode { Append=1, Prepend=2, Replace=3 };
-
38  public:
-
39  // Internal: Static Methods.
-
40  static const char* getEnv ( const char* variable, const char* defaultValue );
-
41  // Constructors & destructors.
-
42  Environment ();
-
43  ~Environment ();
-
44  // Accessors.
-
45  inline const std::string& getCORIOLIS_TOP () const;
-
46  inline const std::string& getDisplayStyle () const;
-
47  inline long getSCALE_X () const;
-
48  inline const std::string& getDISPLAY () const;
-
49  inline const std::string& getIN_LO () const;
-
50  inline const std::string& getIN_PH () const;
-
51  inline const std::string& getOUT_LO () const;
-
52  inline const std::string& getOUT_PH () const;
-
53  inline const std::string& getPOWER () const;
-
54  inline const std::string& getGROUND () const;
-
55  inline const std::string& getCLOCK () const;
-
56  inline const std::string& getBLOCKAGE () const;
-
57  inline const std::string& getPad () const;
-
58  inline const std::string& getCATALOG () const;
-
59  inline SearchPath& getLIBRARIES ();
-
60  std::string getLIBRARYPath ( size_t i );
-
61  // Predicates.
-
62  bool isPOWER ( const char* name ) const;
-
63  bool isGROUND ( const char* name ) const;
-
64  bool isCLOCK ( const char* name ) const;
-
65  bool isBLOCKAGE ( const char* name ) const;
-
66  bool isPad ( const char* name ) const;
-
67  // Modifiers.
-
68  void validate () const;
-
69  inline void setDisplayStyle ( const char* );
-
70  inline void setSCALE_X ( long value );
-
71  inline void setDISPLAY ( const char* value );
-
72  inline void setIN_LO ( const char* value );
-
73  inline void setIN_PH ( const char* value );
-
74  inline void setOUT_LO ( const char* value );
-
75  inline void setOUT_PH ( const char* value );
-
76  void setPOWER ( const char* value );
-
77  void setGROUND ( const char* value );
-
78  void setCLOCK ( const char* value );
-
79  void setBLOCKAGE ( const char* value );
-
80  void setPad ( const char* value );
-
81  inline void setCATALOG ( const char* value );
-
82  void setWORKING_LIBRARY ( const char* value );
-
83  void addSYSTEM_LIBRARY ( const char* value, const char* libName, unsigned int mode=Append );
-
84  // Methods.
-
85  std::string getPrint () const;
-
86  void toJson ( JsonWriter* ) const;
-
87  inline std::string _getTypeName () const;
-
88  std::string _getString () const;
-
89  Record* _getRecord () const;
-
90  protected:
-
91  // Internal: Attributes.
-
92  std::string _CORIOLIS_TOP;
-
93  std::string _displayStyle;
-
94  long _SCALE_X;
-
95  std::string _DISPLAY;
-
96  std::string _IN_LO;
-
97  std::string _IN_PH;
-
98  std::string _OUT_LO;
-
99  std::string _OUT_PH;
-
100  std::string _POWER;
-
101  std::string _GROUND;
-
102  std::string _CLOCK;
-
103  std::string _BLOCKAGE;
-
104  std::string _pad;
-
105  std::string _CATALOG;
-
106  SearchPath _LIBRARIES;
-
107  regex_t _PowerRegex;
-
108  regex_t _GroundRegex;
-
109  regex_t _ClockRegex;
-
110  regex_t _BlockageRegex;
-
111  regex_t _padRegex;
-
112  bool _inConstructor;
-
113  private:
-
114  void _setRegex ( regex_t* regex, const std::string& pattern, const char* name );
-
115  };
-
116 
-
117 
-
118  // Inline Member Functions.
-
119  inline const std::string& Environment::getCORIOLIS_TOP () const { return _CORIOLIS_TOP; }
-
120  inline const std::string& Environment::getDisplayStyle () const { return _displayStyle; }
-
121  inline long Environment::getSCALE_X () const { return _SCALE_X; }
-
122  inline const std::string& Environment::getIN_LO () const { return _IN_LO; }
-
123  inline const std::string& Environment::getIN_PH () const { return _IN_PH; }
-
124  inline const std::string& Environment::getOUT_LO () const { return _OUT_LO; }
-
125  inline const std::string& Environment::getOUT_PH () const { return _OUT_PH; }
-
126  inline const std::string& Environment::getPOWER () const { return _POWER; }
-
127  inline const std::string& Environment::getGROUND () const { return _GROUND; }
-
128  inline const std::string& Environment::getCLOCK () const { return _CLOCK; }
-
129  inline const std::string& Environment::getBLOCKAGE () const { return _BLOCKAGE; }
-
130  inline const std::string& Environment::getPad () const { return _pad; }
-
131  inline const std::string& Environment::getCATALOG () const { return _CATALOG; }
-
132  inline SearchPath& Environment::getLIBRARIES () { return _LIBRARIES; }
-
133 
-
134  inline void Environment::setDisplayStyle ( const char* value ) { _displayStyle = value; }
-
135  inline void Environment::setSCALE_X ( long value ) { _SCALE_X = value; }
-
136  inline void Environment::setIN_LO ( const char* value ) { _IN_LO = value; }
-
137  inline void Environment::setIN_PH ( const char* value ) { _IN_PH = value; }
-
138  inline void Environment::setOUT_LO ( const char* value ) { _OUT_LO = value; }
-
139  inline void Environment::setOUT_PH ( const char* value ) { _OUT_PH = value; }
-
140  inline void Environment::setCATALOG ( const char* value ) { _CATALOG = value; }
-
141  inline std::string Environment::_getTypeName () const { return "Environment"; }
-
142 
-
143 
-
144 // -------------------------------------------------------------------
-
145 // Class : "JsonEnvironment".
-
146 
-
147  class JsonEnvironment : public JsonObject {
-
148  public:
-
149  static void initialize ();
-
150  JsonEnvironment ( unsigned long flags );
-
151  virtual std::string getTypeName () const;
-
152  virtual JsonEnvironment* clone ( unsigned long flags ) const;
-
153  virtual void toData ( JsonStack& );
-
154  };
-
155 
-
156 
-
157 } // CRL namespace.
-
158 
-
159 
-
160 INSPECTOR_P_SUPPORT(CRL::Environment);
-
161 
-
162 
-
163 #endif // CRL_ENVIRONMENT_H
-
void setCATALOG(const char *value)
Definition: Environment.h:140
+
1 // -*- C++ -*-
2 //
3 // This file is part of the Coriolis Software.
4 // Copyright (c) UPMC 2008-2018, All Rights Reserved
5 //
6 // +-----------------------------------------------------------------+
7 // | C O R I O L I S |
8 // | Alliance / Hurricane Interface |
9 // | |
10 // | Author : Jean-Paul CHAPUT |
11 // | E-mail : Jean-Paul.Chaput@asim.lip6.fr |
12 // | =============================================================== |
13 // | C++ Header : "./crlcore/Environment.h" |
14 // +-----------------------------------------------------------------+
15 
16 
17 #ifndef CRL_ENVIRONMENT_H
18 #define CRL_ENVIRONMENT_H
19 
20 #include <regex.h>
21 #include <string>
22 #include "hurricane/Commons.h"
23 #include "crlcore/SearchPath.h"
24 
25 
26 namespace CRL {
27 
30 
31 
32 // -------------------------------------------------------------------
33 // Class : "Environment".
34 
35  class Environment {
36  public:
37  enum AddMode { Append=1, Prepend=2, Replace=3 };
38  public:
39  // Internal: Static Methods.
40  static const char* getEnv ( const char* variable, const char* defaultValue );
41  // Constructors & destructors.
42  Environment ();
43  ~Environment ();
44  // Accessors.
45  inline const std::string& getCORIOLIS_TOP () const;
46  inline const std::string& getDisplayStyle () const;
47  inline long getSCALE_X () const;
48  inline const std::string& getDISPLAY () const;
49  inline const std::string& getIN_LO () const;
50  inline const std::string& getIN_PH () const;
51  inline const std::string& getOUT_LO () const;
52  inline const std::string& getOUT_PH () const;
53  inline const std::string& getPOWER () const;
54  inline const std::string& getGROUND () const;
55  inline const std::string& getCLOCK () const;
56  inline const std::string& getBLOCKAGE () const;
57  inline const std::string& getPad () const;
58  inline const std::string& getCATALOG () const;
59  inline SearchPath& getLIBRARIES ();
60  std::string getLIBRARYPath ( size_t i );
61  // Predicates.
62  bool isPOWER ( const char* name ) const;
63  bool isGROUND ( const char* name ) const;
64  bool isCLOCK ( const char* name ) const;
65  bool isBLOCKAGE ( const char* name ) const;
66  bool isPad ( const char* name ) const;
67  // Modifiers.
68  void validate () const;
69  inline void setDisplayStyle ( const char* );
70  inline void setSCALE_X ( long value );
71  inline void setDISPLAY ( const char* value );
72  inline void setIN_LO ( const char* value );
73  inline void setIN_PH ( const char* value );
74  inline void setOUT_LO ( const char* value );
75  inline void setOUT_PH ( const char* value );
76  void setPOWER ( const char* value );
77  void setGROUND ( const char* value );
78  void setCLOCK ( const char* value );
79  void setBLOCKAGE ( const char* value );
80  void setPad ( const char* value );
81  inline void setCATALOG ( const char* value );
82  void setWORKING_LIBRARY ( const char* value );
83  void addSYSTEM_LIBRARY ( const char* value, const char* libName, unsigned int mode=Append );
84  // Methods.
85  std::string getPrint () const;
86  void toJson ( JsonWriter* ) const;
87  inline std::string _getTypeName () const;
88  std::string _getString () const;
89  Record* _getRecord () const;
90  protected:
91  // Internal: Attributes.
92  std::string _CORIOLIS_TOP;
93  std::string _displayStyle;
94  long _SCALE_X;
95  std::string _DISPLAY;
96  std::string _IN_LO;
97  std::string _IN_PH;
98  std::string _OUT_LO;
99  std::string _OUT_PH;
100  std::string _POWER;
101  std::string _GROUND;
102  std::string _CLOCK;
103  std::string _BLOCKAGE;
104  std::string _pad;
105  std::string _CATALOG;
106  SearchPath _LIBRARIES;
107  regex_t _PowerRegex;
108  regex_t _GroundRegex;
109  regex_t _ClockRegex;
110  regex_t _BlockageRegex;
111  regex_t _padRegex;
112  bool _inConstructor;
113  private:
114  void _setRegex ( regex_t* regex, const std::string& pattern, const char* name );
115  };
116 
117 
118  // Inline Member Functions.
119  inline const std::string& Environment::getCORIOLIS_TOP () const { return _CORIOLIS_TOP; }
120  inline const std::string& Environment::getDisplayStyle () const { return _displayStyle; }
121  inline long Environment::getSCALE_X () const { return _SCALE_X; }
122  inline const std::string& Environment::getIN_LO () const { return _IN_LO; }
123  inline const std::string& Environment::getIN_PH () const { return _IN_PH; }
124  inline const std::string& Environment::getOUT_LO () const { return _OUT_LO; }
125  inline const std::string& Environment::getOUT_PH () const { return _OUT_PH; }
126  inline const std::string& Environment::getPOWER () const { return _POWER; }
127  inline const std::string& Environment::getGROUND () const { return _GROUND; }
128  inline const std::string& Environment::getCLOCK () const { return _CLOCK; }
129  inline const std::string& Environment::getBLOCKAGE () const { return _BLOCKAGE; }
130  inline const std::string& Environment::getPad () const { return _pad; }
131  inline const std::string& Environment::getCATALOG () const { return _CATALOG; }
132  inline SearchPath& Environment::getLIBRARIES () { return _LIBRARIES; }
133 
134  inline void Environment::setDisplayStyle ( const char* value ) { _displayStyle = value; }
135  inline void Environment::setSCALE_X ( long value ) { _SCALE_X = value; }
136  inline void Environment::setIN_LO ( const char* value ) { _IN_LO = value; }
137  inline void Environment::setIN_PH ( const char* value ) { _IN_PH = value; }
138  inline void Environment::setOUT_LO ( const char* value ) { _OUT_LO = value; }
139  inline void Environment::setOUT_PH ( const char* value ) { _OUT_PH = value; }
140  inline void Environment::setCATALOG ( const char* value ) { _CATALOG = value; }
141  inline std::string Environment::_getTypeName () const { return "Environment"; }
142 
143 
144 // -------------------------------------------------------------------
145 // Class : "JsonEnvironment".
146 
147  class JsonEnvironment : public JsonObject {
148  public:
149  static void initialize ();
150  JsonEnvironment ( unsigned long flags );
151  virtual std::string getTypeName () const;
152  virtual JsonEnvironment* clone ( unsigned long flags ) const;
153  virtual void toData ( JsonStack& );
154  };
155 
156 
157 } // CRL namespace.
158 
159 
160 INSPECTOR_P_SUPPORT(CRL::Environment);
161 
162 
163 #endif // CRL_ENVIRONMENT_H
void setCATALOG(const char *value)
Definition: Environment.h:140
+
bool isBLOCKAGE(const char *name) const
Definition: Environment.h:37
void setSCALE_X(long value)
Definition: Environment.h:135
-
long getSCALE_X() const
Definition: Environment.h:121
void setBLOCKAGE(const char *value)
-
bool isPOWER(const char *name) const
-
const std::string & getCLOCK() const
Definition: Environment.h:128
+
bool isCLOCK(const char *name) const
+
bool isPOWER(const char *name) const
+
const std::string & getCATALOG() const
Definition: Environment.h:131
SearchPath & getLIBRARIES()
Definition: Environment.h:132
void setGROUND(const char *value)
-
std::string getPrint() const
+
const std::string & getIN_PH() const
Definition: Environment.h:123
+
const std::string & getPad() const
Definition: Environment.h:130
void setWORKING_LIBRARY(const char *value)
-
const std::string & getDisplayStyle() const
Definition: Environment.h:120
-
const std::string & getCORIOLIS_TOP() const
Definition: Environment.h:119
+
std::string getPrint() const
+
void validate() const
Definition: Environment.h:37
-
bool isBLOCKAGE(const char *name) const
-
const std::string & getOUT_PH() const
Definition: Environment.h:125
-
const std::string & getPOWER() const
Definition: Environment.h:126
Definition: Environment.h:37
void setPad(const char *value)
-
const std::string & getGROUND() const
Definition: Environment.h:127
+
const std::string & getOUT_LO() const
Definition: Environment.h:124
+
const std::string & getDISPLAY() const
void addSYSTEM_LIBRARY(const char *value, const char *libName, unsigned int mode=Append)
-
void validate() const
void setOUT_LO(const char *value)
Definition: Environment.h:138
+
const std::string & getGROUND() const
Definition: Environment.h:127
+
bool isPad(const char *name) const
+
const std::string & getOUT_PH() const
Definition: Environment.h:125
void setPOWER(const char *value)
void setIN_PH(const char *value)
Definition: Environment.h:137
-
bool isCLOCK(const char *name) const
-
bool isGROUND(const char *name) const
-
const std::string & getPad() const
Definition: Environment.h:130
-
const std::string & getDISPLAY() const
+
bool isGROUND(const char *name) const
+
const std::string & getBLOCKAGE() const
Definition: Environment.h:129
+
const std::string & getCORIOLIS_TOP() const
Definition: Environment.h:119
void setIN_LO(const char *value)
Definition: Environment.h:136
-
bool isPad(const char *name) const
+
const std::string & getPOWER() const
Definition: Environment.h:126
An ordered list of search pathes.
Definition: SearchPath.h:32
-
const std::string & getIN_LO() const
Definition: Environment.h:122
-
const std::string & getOUT_LO() const
Definition: Environment.h:124
+
const std::string & getCLOCK() const
Definition: Environment.h:128
+
long getSCALE_X() const
Definition: Environment.h:121
+
const std::string & getDisplayStyle() const
Definition: Environment.h:120
void setOUT_PH(const char *value)
Definition: Environment.h:139
-
const std::string & getIN_PH() const
Definition: Environment.h:123
+
const std::string & getIN_LO() const
Definition: Environment.h:122
AddMode
Definition: Environment.h:37
-
const std::string & getBLOCKAGE() const
Definition: Environment.h:129
Holds all the Alliance environment variables.
Definition: Environment.h:35
-
const std::string & getCATALOG() const
Definition: Environment.h:131
std::string getLIBRARYPath(size_t i)
void setCLOCK(const char *value)
void setDisplayStyle(const char *)
Definition: Environment.h:134
+
The namespace of Coriolis Core.
Definition: Environment.h:26
void setDISPLAY(const char *value)


- +
Generated by doxygen 1.8.5 on Thu Mar 19 2020Generated by doxygen 1.8.14 on Mon Apr 27 2020 Return to top of page
diff --git a/crlcore/doc/crlcore/html/GraphicToolEngine_8h_source.html b/crlcore/doc/crlcore/html/GraphicToolEngine_8h_source.html index 8fd98a68..457edebb 100644 --- a/crlcore/doc/crlcore/html/GraphicToolEngine_8h_source.html +++ b/crlcore/doc/crlcore/html/GraphicToolEngine_8h_source.html @@ -24,21 +24,16 @@ -->
- - - + + + + +
-
1 // -*- C++ -*-
-
2 //
-
3 // This file is part of the Coriolis Software.
-
4 // Copyright (c) UPMC/LIP6 2008-2018, All Rights Reserved
-
5 //
-
6 // +-----------------------------------------------------------------+
-
7 // | C O R I O L I S |
-
8 // | Alliance / Hurricane Interface |
-
9 // | |
-
10 // | Author : Jean-Paul Chaput |
-
11 // | E-mail : Jean-Paul.Chaput@lip6.fr |
-
12 // | =============================================================== |
-
13 // | C++ Header : "./crlcore/GraphicToolEngine.h" |
-
14 // +-----------------------------------------------------------------+
-
15 
-
16 
-
17 #ifndef CRL_GRAPHIC_TOOL_H
-
18 #define CRL_GRAPHIC_TOOL_H
-
19 
-
20 #include <string>
-
21 #include <map>
-
22 #include <functional>
-
23 #include <QObject>
-
24 
-
25 class QMenu;
-
26 
-
27 #include "hurricane/Error.h"
-
28 #include "hurricane/viewer/CellWidget.h"
-
29 #include "hurricane/viewer/ExceptionWidget.h"
-
30 
-
31 
-
32 namespace Hurricane {
-
33  class Name;
-
34  class Cell;
-
35  class CellViewer;
-
36 }
-
37 
-
38 
-
39 namespace CRL {
-
40 
-
41  using std::string;
-
42  using std::map;
-
43  using Hurricane::Error;
- -
45  using Hurricane::Name;
-
46  using Hurricane::Cell;
- - -
49  using Hurricane::ExceptionWidget;
-
50 
-
51 
-
52 // -------------------------------------------------------------------
-
53 // Class : "CRL::GraphicTool".
-
54 
-
55  class GraphicTool : public QObject {
-
56  Q_OBJECT;
-
57 
-
58  public:
-
59  class DrawGoFunctions {
-
60  private:
-
61  CellWidget::InitExtensionGo_t* _init;
-
62  CellWidget::DrawExtensionGo_t* _draw;
-
63  public:
-
64  inline DrawGoFunctions ( CellWidget::InitExtensionGo_t*
-
65  , CellWidget::DrawExtensionGo_t*
-
66  );
-
67  inline CellWidget::DrawExtensionGo_t* getDraw () const;
-
68  inline CellWidget::InitExtensionGo_t* getInit () const;
-
69  };
-
70  public:
-
71  typedef map<Name,DrawGoFunctions> DrawGoMap;
-
72  public:
-
73  void addDrawGo ( const Name&
-
74  , CellWidget::InitExtensionGo_t*
-
75  , CellWidget::DrawExtensionGo_t*
-
76  );
-
77  DrawGoFunctions* getDrawGo ( const Name& );
-
78  inline const DrawGoMap& getDrawGos () const;
-
79  virtual void addToMenu ( CellViewer* ) = 0;
-
80  virtual const Name& getName () const = 0;
-
81  virtual size_t release () = 0;
-
82  protected:
-
83  map<Name,DrawGoFunctions> _drawGoMap;
-
84  protected:
-
85  GraphicTool ();
-
86  virtual ~GraphicTool ();
-
87  protected:
-
88  };
-
89 
-
90 
-
91 // Inline Functions.
-
92  inline GraphicTool::DrawGoFunctions::DrawGoFunctions ( CellWidget::InitExtensionGo_t* init
-
93  , CellWidget::DrawExtensionGo_t* draw
-
94  )
-
95  : _init(init)
-
96  , _draw(draw)
-
97  { }
-
98 
-
99  inline CellWidget::DrawExtensionGo_t* GraphicTool::DrawGoFunctions::getDraw () const
-
100  { return _draw; }
-
101 
-
102  inline CellWidget::InitExtensionGo_t* GraphicTool::DrawGoFunctions::getInit () const
-
103  { return _init; }
-
104 
-
105  inline const GraphicTool::DrawGoMap& GraphicTool::getDrawGos () const
-
106  { return _drawGoMap; }
-
107 
-
108 
-
109 } // CRL namespace.
-
110 
-
111 #endif // CRL_GRAPHIC_TOOL_H
- +
1 // -*- C++ -*-
2 //
3 // This file is part of the Coriolis Software.
4 // Copyright (c) UPMC/LIP6 2008-2018, All Rights Reserved
5 //
6 // +-----------------------------------------------------------------+
7 // | C O R I O L I S |
8 // | Alliance / Hurricane Interface |
9 // | |
10 // | Author : Jean-Paul Chaput |
11 // | E-mail : Jean-Paul.Chaput@lip6.fr |
12 // | =============================================================== |
13 // | C++ Header : "./crlcore/GraphicToolEngine.h" |
14 // +-----------------------------------------------------------------+
15 
16 
17 #ifndef CRL_GRAPHIC_TOOL_H
18 #define CRL_GRAPHIC_TOOL_H
19 
20 #include <string>
21 #include <map>
22 #include <functional>
23 #include <QObject>
24 
25 class QMenu;
26 
27 #include "hurricane/Error.h"
28 #include "hurricane/viewer/CellWidget.h"
29 #include "hurricane/viewer/ExceptionWidget.h"
30 
31 
32 namespace Hurricane {
33  class Name;
34  class Cell;
35  class CellViewer;
36 }
37 
38 
39 namespace CRL {
40 
41  using std::string;
42  using std::map;
43  using Hurricane::Error;
45  using Hurricane::Name;
46  using Hurricane::Cell;
49  using Hurricane::ExceptionWidget;
50 
51 
52 // -------------------------------------------------------------------
53 // Class : "CRL::GraphicTool".
54 
55  class GraphicTool : public QObject {
56  Q_OBJECT;
57 
58  public:
59  class DrawGoFunctions {
60  private:
61  CellWidget::InitExtensionGo_t* _init;
62  CellWidget::DrawExtensionGo_t* _draw;
63  public:
64  inline DrawGoFunctions ( CellWidget::InitExtensionGo_t*
65  , CellWidget::DrawExtensionGo_t*
66  );
67  inline CellWidget::DrawExtensionGo_t* getDraw () const;
68  inline CellWidget::InitExtensionGo_t* getInit () const;
69  };
70  public:
71  typedef map<Name,DrawGoFunctions> DrawGoMap;
72  public:
73  void addDrawGo ( const Name&
74  , CellWidget::InitExtensionGo_t*
75  , CellWidget::DrawExtensionGo_t*
76  );
77  DrawGoFunctions* getDrawGo ( const Name& );
78  inline const DrawGoMap& getDrawGos () const;
79  virtual void addToMenu ( CellViewer* ) = 0;
80  virtual const Name& getName () const = 0;
81  virtual size_t release () = 0;
82  protected:
83  map<Name,DrawGoFunctions> _drawGoMap;
84  protected:
85  GraphicTool ();
86  virtual ~GraphicTool ();
87  protected:
88  };
89 
90 
91 // Inline Functions.
92  inline GraphicTool::DrawGoFunctions::DrawGoFunctions ( CellWidget::InitExtensionGo_t* init
93  , CellWidget::DrawExtensionGo_t* draw
94  )
95  : _init(init)
96  , _draw(draw)
97  { }
98 
99  inline CellWidget::DrawExtensionGo_t* GraphicTool::DrawGoFunctions::getDraw () const
100  { return _draw; }
101 
102  inline CellWidget::InitExtensionGo_t* GraphicTool::DrawGoFunctions::getInit () const
103  { return _init; }
104 
105  inline const GraphicTool::DrawGoMap& GraphicTool::getDrawGos () const
106  { return _drawGoMap; }
107 
108 
109 } // CRL namespace.
110 
111 #endif // CRL_GRAPHIC_TOOL_H
Base Class to Hook ToolEngines into the CellViewer.
Definition: GraphicToolEngine.h:55
@@ -168,13 +52,15 @@
virtual const Name & getName() const =0
virtual void addToMenu(CellViewer *)=0
+ +
The namespace of Coriolis Core.
Definition: Environment.h:26


- +
Generated by doxygen 1.8.5 on Thu Mar 19 2020Generated by doxygen 1.8.14 on Mon Apr 27 2020 Return to top of page
diff --git a/crlcore/doc/crlcore/html/RoutingGauge_8h_source.html b/crlcore/doc/crlcore/html/RoutingGauge_8h_source.html index 5330d9f0..c2cc3360 100644 --- a/crlcore/doc/crlcore/html/RoutingGauge_8h_source.html +++ b/crlcore/doc/crlcore/html/RoutingGauge_8h_source.html @@ -24,21 +24,16 @@ -->
- - - + + + + +
-
1 // -*- C++ -*-
-
2 //
-
3 // This file is part of the Coriolis Software.
-
4 // Copyright (c) UPMC 2008-2018, All Rights Reserved
-
5 //
-
6 // +-----------------------------------------------------------------+
-
7 // | C O R I O L I S |
-
8 // | Alliance / Hurricane Interface |
-
9 // | |
-
10 // | Author : Jean-Paul CHAPUT |
-
11 // | E-mail : Jean-Paul.Chaput@lip6.fr |
-
12 // | =============================================================== |
-
13 // | C++ Header : "./crlcore/RoutingGauge.h" |
-
14 // +-----------------------------------------------------------------+
-
15 
-
16 
-
17 #ifndef CRL_ROUTING_GAUGE_H
-
18 #define CRL_ROUTING_GAUGE_H
-
19 
-
20 #include <string>
-
21 #include <vector>
-
22 #include "hurricane/Name.h"
-
23 #include "hurricane/Slot.h"
-
24 
-
25 namespace Hurricane {
-
26  class Layer;
-
27  class Technology;
-
28 }
-
29 
-
30 #include "crlcore/RoutingLayerGauge.h"
-
31 
-
32 namespace CRL {
-
33 
-
34  using std::string;
-
35  using std::vector;
- - - -
39  using Hurricane::Name;
-
40  using Hurricane::Record;
-
41  using Hurricane::Layer;
- -
43 
-
44 
-
45 // -------------------------------------------------------------------
-
46 // Class : "RoutingGauge".
-
47 
-
48  class RoutingGauge {
-
49 
-
50  public:
-
51  // Constants.
-
52  static const size_t nlayerdepth;
-
53  // Constructors & Destructors.
-
54  static RoutingGauge* create ( const char* name );
-
55  virtual void destroy ();
-
56  // Predicates.
-
57  inline bool isSymbolic () const;
-
58  inline bool isTwoMetals () const;
-
59  inline bool isHV () const;
-
60  inline bool isVH () const;
-
61  // Accessors.
-
62  RoutingGauge* getClone () const;
-
63  inline const Name getName () const;
-
64  inline Technology* getTechnology () const;
-
65  inline size_t getDepth () const;
-
66  inline DbU::Unit getHorizontalPitch () const;
-
67  inline DbU::Unit getVerticalPitch () const;
-
68  RoutingLayerGauge* getHorizontalGauge () const;
-
69  RoutingLayerGauge* getVerticalGauge () const;
-
70  RoutingLayerGauge* getLayerGauge ( const Layer* ) const;
-
71  size_t getViaDepth ( const Layer* ) const;
-
72  size_t getLayerDepth ( const Layer* ) const;
-
73  unsigned int getLayerType ( const Layer* ) const;
-
74  unsigned int getLayerDirection ( const Layer* ) const;
-
75  DbU::Unit getPitch ( const Layer* ) const;
-
76  DbU::Unit getOffset ( const Layer* ) const;
-
77  DbU::Unit getWireWidth ( const Layer* ) const;
-
78  DbU::Unit getViaWidth ( const Layer* ) const;
-
79  RoutingLayerGauge* getLayerGauge ( size_t depth ) const;
-
80  inline unsigned int getLayerDirection ( size_t depth ) const;
-
81  inline unsigned int getLayerType ( size_t depth ) const;
-
82  inline DbU::Unit getLayerPitch ( size_t depth ) const;
-
83  inline DbU::Unit getLayerOffset ( size_t depth ) const;
-
84  inline DbU::Unit getLayerWireWidth ( size_t depth ) const;
-
85  inline DbU::Unit getViaWidth ( size_t depth ) const;
-
86  const Layer* getRoutingLayer ( size_t depth ) const;
-
87  Layer* getContactLayer ( size_t depth ) const;
-
88  const vector<RoutingLayerGauge*>&
-
89  getLayerGauges () const;
-
90  // Methods.
-
91  void addLayerGauge ( RoutingLayerGauge* layerGauge );
-
92  void checkConnexity () const;
-
93  inline void setSymbolic ( bool );
-
94  // Hurricane Managment.
-
95  void toJson ( JsonWriter* ) const;
-
96  virtual Record* _getRecord ( Record* record=NULL ) const;
-
97  virtual string _getString () const;
-
98  virtual string _getTypeName () const;
-
99 
-
100  protected:
-
101  // Internal - Attributes.
-
102  Name _name;
-
103  vector<RoutingLayerGauge*> _layerGauges;
-
104  vector<Layer*> _viaLayers;
-
105  Technology* _technology;
-
106  bool _isSymbolic;
-
107 
-
108  // Internal - Constructors & Destructors.
-
109  RoutingGauge ( const char* name );
-
110  RoutingGauge ( const RoutingGauge& );
-
111  virtual ~RoutingGauge ();
-
112  virtual void _preDestroy ();
-
113  RoutingGauge& operator= ( const RoutingGauge& );
-
114  };
-
115 
-
116 
-
117  inline bool RoutingGauge::isSymbolic () const { return _isSymbolic; }
-
118  inline bool RoutingGauge::isTwoMetals () const { return (getDepth() < 3); }
-
119  inline bool RoutingGauge::isHV () const { return not isTwoMetals() and (getLayerGauge(1)->isHorizontal()); }
-
120  inline bool RoutingGauge::isVH () const { return not isTwoMetals() and (getLayerGauge(1)->isVertical()); }
-
121  inline const Name RoutingGauge::getName () const { return _name; }
-
122  inline size_t RoutingGauge::getDepth () const { return _layerGauges.size(); }
-
123  inline Technology* RoutingGauge::getTechnology () const { return _technology; }
-
124  inline DbU::Unit RoutingGauge::getHorizontalPitch () const { return getHorizontalGauge()->getPitch(); }
-
125  inline DbU::Unit RoutingGauge::getVerticalPitch () const { return getVerticalGauge ()->getPitch(); }
-
126  inline unsigned int RoutingGauge::getLayerType ( size_t depth ) const { return getLayerGauge(depth)->getType(); }
-
127  inline unsigned int RoutingGauge::getLayerDirection ( size_t depth ) const { return getLayerGauge(depth)->getDirection(); }
-
128  inline DbU::Unit RoutingGauge::getLayerPitch ( size_t depth ) const { return getLayerGauge(depth)->getPitch(); }
-
129  inline DbU::Unit RoutingGauge::getLayerOffset ( size_t depth ) const { return getLayerGauge(depth)->getOffset(); }
-
130  inline DbU::Unit RoutingGauge::getLayerWireWidth ( size_t depth ) const { return getLayerGauge(depth)->getWireWidth(); }
-
131  inline DbU::Unit RoutingGauge::getViaWidth ( size_t depth ) const { return getLayerGauge(depth)->getViaWidth(); }
-
132  inline void RoutingGauge::setSymbolic ( bool state ) { _isSymbolic=state; }
-
133 
-
134 
-
135 // -------------------------------------------------------------------
-
136 // Class : "JsonRoutingGauge".
-
137 
-
138  class JsonRoutingGauge : public JsonObject {
-
139  public:
-
140  static void initialize ();
-
141  JsonRoutingGauge ( unsigned long flags );
-
142  virtual string getTypeName () const;
-
143  virtual JsonRoutingGauge* clone ( unsigned long flags ) const;
-
144  virtual void toData ( JsonStack& );
-
145  };
-
146 
-
147 
-
148 } // CRL namespace.
-
149 
-
150 INSPECTOR_P_SUPPORT(CRL::RoutingGauge);
-
151 
-
152 #endif
-
Technology * getTechnology() const
Definition: RoutingGauge.h:123
-
DbU::Unit getOffset() const
Definition: RoutingLayerGauge.h:177
-
const Layer * getRoutingLayer(size_t depth) const
+
1 // -*- C++ -*-
2 //
3 // This file is part of the Coriolis Software.
4 // Copyright (c) UPMC 2008-2018, All Rights Reserved
5 //
6 // +-----------------------------------------------------------------+
7 // | C O R I O L I S |
8 // | Alliance / Hurricane Interface |
9 // | |
10 // | Author : Jean-Paul CHAPUT |
11 // | E-mail : Jean-Paul.Chaput@lip6.fr |
12 // | =============================================================== |
13 // | C++ Header : "./crlcore/RoutingGauge.h" |
14 // +-----------------------------------------------------------------+
15 
16 
17 #ifndef CRL_ROUTING_GAUGE_H
18 #define CRL_ROUTING_GAUGE_H
19 
20 #include <string>
21 #include <vector>
22 #include "hurricane/Name.h"
23 #include "hurricane/Slot.h"
24 
25 namespace Hurricane {
26  class Layer;
27  class Technology;
28 }
29 
30 #include "crlcore/RoutingLayerGauge.h"
31 
32 namespace CRL {
33 
34  using std::string;
35  using std::vector;
39  using Hurricane::Name;
40  using Hurricane::Record;
41  using Hurricane::Layer;
43 
44 
45 // -------------------------------------------------------------------
46 // Class : "RoutingGauge".
47 
48  class RoutingGauge {
49 
50  public:
51  // Constants.
52  static const size_t nlayerdepth;
53  // Constructors & Destructors.
54  static RoutingGauge* create ( const char* name );
55  virtual void destroy ();
56  // Predicates.
57  inline bool isSymbolic () const;
58  inline bool isTwoMetals () const;
59  inline bool isHV () const;
60  inline bool isVH () const;
61  // Accessors.
62  RoutingGauge* getClone () const;
63  inline const Name getName () const;
64  inline Technology* getTechnology () const;
65  inline size_t getDepth () const;
66  inline DbU::Unit getHorizontalPitch () const;
67  inline DbU::Unit getVerticalPitch () const;
68  RoutingLayerGauge* getHorizontalGauge () const;
69  RoutingLayerGauge* getVerticalGauge () const;
70  RoutingLayerGauge* getLayerGauge ( const Layer* ) const;
71  size_t getViaDepth ( const Layer* ) const;
72  size_t getLayerDepth ( const Layer* ) const;
73  unsigned int getLayerType ( const Layer* ) const;
74  unsigned int getLayerDirection ( const Layer* ) const;
75  DbU::Unit getPitch ( const Layer* ) const;
76  DbU::Unit getOffset ( const Layer* ) const;
77  DbU::Unit getWireWidth ( const Layer* ) const;
78  DbU::Unit getViaWidth ( const Layer* ) const;
79  RoutingLayerGauge* getLayerGauge ( size_t depth ) const;
80  inline unsigned int getLayerDirection ( size_t depth ) const;
81  inline unsigned int getLayerType ( size_t depth ) const;
82  inline DbU::Unit getLayerPitch ( size_t depth ) const;
83  inline DbU::Unit getLayerOffset ( size_t depth ) const;
84  inline DbU::Unit getLayerWireWidth ( size_t depth ) const;
85  inline DbU::Unit getViaWidth ( size_t depth ) const;
86  const Layer* getRoutingLayer ( size_t depth ) const;
87  Layer* getContactLayer ( size_t depth ) const;
88  const vector<RoutingLayerGauge*>&
89  getLayerGauges () const;
90  // Methods.
91  void addLayerGauge ( RoutingLayerGauge* layerGauge );
92  void checkConnexity () const;
93  inline void setSymbolic ( bool );
94  // Hurricane Managment.
95  void toJson ( JsonWriter* ) const;
96  virtual Record* _getRecord ( Record* record=NULL ) const;
97  virtual string _getString () const;
98  virtual string _getTypeName () const;
99 
100  protected:
101  // Internal - Attributes.
102  Name _name;
103  vector<RoutingLayerGauge*> _layerGauges;
104  vector<Layer*> _viaLayers;
105  Technology* _technology;
106  bool _isSymbolic;
107 
108  // Internal - Constructors & Destructors.
109  RoutingGauge ( const char* name );
110  RoutingGauge ( const RoutingGauge& );
111  virtual ~RoutingGauge ();
112  virtual void _preDestroy ();
113  RoutingGauge& operator= ( const RoutingGauge& );
114  };
115 
116 
117  inline bool RoutingGauge::isSymbolic () const { return _isSymbolic; }
118  inline bool RoutingGauge::isTwoMetals () const { return (getDepth() < 3); }
119  inline bool RoutingGauge::isHV () const { return not isTwoMetals() and (getLayerGauge(1)->isHorizontal()); }
120  inline bool RoutingGauge::isVH () const { return not isTwoMetals() and (getLayerGauge(1)->isVertical()); }
121  inline const Name RoutingGauge::getName () const { return _name; }
122  inline size_t RoutingGauge::getDepth () const { return _layerGauges.size(); }
123  inline Technology* RoutingGauge::getTechnology () const { return _technology; }
124  inline DbU::Unit RoutingGauge::getHorizontalPitch () const { return getHorizontalGauge()->getPitch(); }
125  inline DbU::Unit RoutingGauge::getVerticalPitch () const { return getVerticalGauge ()->getPitch(); }
126  inline unsigned int RoutingGauge::getLayerType ( size_t depth ) const { return getLayerGauge(depth)->getType(); }
127  inline unsigned int RoutingGauge::getLayerDirection ( size_t depth ) const { return getLayerGauge(depth)->getDirection(); }
128  inline DbU::Unit RoutingGauge::getLayerPitch ( size_t depth ) const { return getLayerGauge(depth)->getPitch(); }
129  inline DbU::Unit RoutingGauge::getLayerOffset ( size_t depth ) const { return getLayerGauge(depth)->getOffset(); }
130  inline DbU::Unit RoutingGauge::getLayerWireWidth ( size_t depth ) const { return getLayerGauge(depth)->getWireWidth(); }
131  inline DbU::Unit RoutingGauge::getViaWidth ( size_t depth ) const { return getLayerGauge(depth)->getViaWidth(); }
132  inline void RoutingGauge::setSymbolic ( bool state ) { _isSymbolic=state; }
133 
134 
135 // -------------------------------------------------------------------
136 // Class : "JsonRoutingGauge".
137 
138  class JsonRoutingGauge : public JsonObject {
139  public:
140  static void initialize ();
141  JsonRoutingGauge ( unsigned long flags );
142  virtual string getTypeName () const;
143  virtual JsonRoutingGauge* clone ( unsigned long flags ) const;
144  virtual void toData ( JsonStack& );
145  };
146 
147 
148 } // CRL namespace.
149 
150 INSPECTOR_P_SUPPORT(CRL::RoutingGauge);
151 
152 #endif
DbU::Unit getViaWidth() const
Definition: RoutingLayerGauge.h:182
+
DbU::Unit getPitch() const
Definition: RoutingLayerGauge.h:178
-
const vector< RoutingLayerGauge * > & getLayerGauges() const
-
Constant::Direction getDirection() const
Definition: RoutingLayerGauge.h:173
+
DbU::Unit getWireWidth() const
Definition: RoutingLayerGauge.h:180
std::int64_t Unit
virtual void destroy()
Gauge for the detailed routing.
Definition: RoutingGauge.h:48
-
Constant::LayerGaugeType getType() const
Definition: RoutingLayerGauge.h:174
+
RoutingGauge * getClone() const
+
Constant::Direction getDirection() const
Definition: RoutingLayerGauge.h:173
+
Technology * getTechnology() const
Definition: RoutingGauge.h:123
-
DbU::Unit getViaWidth() const
Definition: RoutingLayerGauge.h:182
-
size_t getLayerDepth(const Layer *) const
+
const Name getName() const
Definition: RoutingGauge.h:121
+
DbU::Unit getOffset() const
Definition: RoutingLayerGauge.h:177
+
size_t getDepth() const
Definition: RoutingGauge.h:122
+
Constant::LayerGaugeType getType() const
Definition: RoutingLayerGauge.h:174
+
RoutingLayerGauge * getLayerGauge(const Layer *) const
void addLayerGauge(RoutingLayerGauge *layerGauge)
static RoutingGauge * create(const char *name)
-
void checkConnexity() const
-
DbU::Unit getWireWidth() const
Definition: RoutingLayerGauge.h:180
+
const vector< RoutingLayerGauge * > & getLayerGauges() const
-
unsigned int getLayerDirection(const Layer *) const
-
const Name getName() const
Definition: RoutingGauge.h:121
-
RoutingLayerGauge * getLayerGauge(const Layer *) const
-
Layer * getContactLayer(size_t depth) const
+
Layer * getContactLayer(size_t depth) const
+
const Layer * getRoutingLayer(size_t depth) const
+ +
void checkConnexity() const
+
size_t getLayerDepth(const Layer *) const
-
RoutingGauge * getClone() const
-
size_t getDepth() const
Definition: RoutingGauge.h:122
Gauge of a Layer for the detailed routing.
Definition: RoutingLayerGauge.h:77
-
DbU::Unit getPitch() const
Definition: RoutingLayerGauge.h:178
+
unsigned int getLayerDirection(const Layer *) const
+
The namespace of Coriolis Core.
Definition: Environment.h:26


- +
Generated by doxygen 1.8.5 on Thu Mar 19 2020Generated by doxygen 1.8.14 on Mon Apr 27 2020 Return to top of page
diff --git a/crlcore/doc/crlcore/html/RoutingLayerGauge_8h_source.html b/crlcore/doc/crlcore/html/RoutingLayerGauge_8h_source.html index 0283f85d..05738adc 100644 --- a/crlcore/doc/crlcore/html/RoutingLayerGauge_8h_source.html +++ b/crlcore/doc/crlcore/html/RoutingLayerGauge_8h_source.html @@ -24,21 +24,16 @@ -->
- - - + + + + +
-
1 // -*- C++ -*-
-
2 //
-
3 // This file is part of the Coriolis Software.
-
4 // Copyright (c) UPMC 2008-2018, All Rights Reserved
-
5 //
-
6 // +-----------------------------------------------------------------+
-
7 // | C O R I O L I S |
-
8 // | C o r e L i b r a r y |
-
9 // | |
-
10 // | Author : Jean-Paul CHAPUT |
-
11 // | E-mail : Jean-Paul.Chaput@asim.lip6.fr |
-
12 // | =============================================================== |
-
13 // | C++ Header : "./RoutingLayerGauge.h" |
-
14 // +-----------------------------------------------------------------+
-
15 
-
16 
-
17 #ifndef CRL_ROUTING_LAYER_GAUGE_H
-
18 #define CRL_ROUTING_LAYER_GAUGE_H
-
19 
-
20 
-
21 #include <map>
-
22 #include "hurricane/Commons.h"
-
23 #include "hurricane/Error.h"
-
24 #include "hurricane/DbU.h"
-
25 #include "hurricane/Collection.h"
-
26 #include "hurricane/Slot.h"
-
27 #include "crlcore/Utilities.h"
-
28 
-
29 namespace Hurricane {
-
30  class Layer;
-
31 }
-
32 
-
33 
-
34 namespace Constant {
-
35 
-
36  enum Direction { Horizontal = (1<<0)
-
37  , Vertical = (1<<1)
-
38  };
-
39 
-
40  enum LayerGaugeType { Default = (1<<0)
-
41  , PinOnly = (1<<1)
-
42  };
-
43 
-
44  enum Round { Superior = (1<<2)
-
45  , Inferior = (1<<3)
-
46  , Nearest = (1<<4)
-
47  , Exact = (1<<5)
-
48  };
-
49 
-
50  Direction perpandicular ( unsigned int );
-
51 
-
52 }
-
53 
-
54 
-
55 
-
56 namespace CRL {
-
57 
-
58  using std::map;
- - - - - - -
65  using Hurricane::Record;
-
66  using Hurricane::DbU;
-
67  using Hurricane::Layer;
-
68 
-
69 
-
70  class RoutingGauge;
-
71 
-
72 
-
73 // -------------------------------------------------------------------
-
74 // Class : "RoutingLayerGauge".
-
75 
-
76 
- -
78 
-
79  public:
-
80  // Constructors & Destructors.
-
81  static RoutingLayerGauge* create ( const Layer* layer
-
82  , Constant::Direction direction
- -
84  , unsigned int depth
-
85  , double density
-
86  , DbU::Unit offset
-
87  , DbU::Unit pitch
-
88  , DbU::Unit wireWidth
-
89  , DbU::Unit viaWidth
-
90  , DbU::Unit obsDw );
-
91  virtual void destroy ();
-
92  // Accessors.
-
93  inline bool isHorizontal () const;
-
94  inline bool isVertical () const;
-
95  inline const Layer* getLayer () const;
-
96  inline const Layer* getBlockageLayer () const;
-
97  inline unsigned int getDepth () const;
-
98  inline Constant::Direction getDirection () const;
-
99  inline Constant::LayerGaugeType getType () const;
-
100  inline double getDensity () const;
-
101  inline DbU::Unit getOffset () const;
-
102  inline DbU::Unit getPitch () const;
-
103  inline DbU::Unit getHalfPitch () const;
-
104  inline DbU::Unit getWireWidth () const;
-
105  inline DbU::Unit getHalfWireWidth () const;
-
106  inline DbU::Unit getViaWidth () const;
-
107  inline DbU::Unit getHalfViaWidth () const;
-
108  inline DbU::Unit getObstacleDw () const;
-
109  void divide ( DbU::Unit dividend, long& quotient, long& modulo ) const;
-
110  unsigned int getTrackNumber ( DbU::Unit start, DbU::Unit stop ) const;
-
111  long getTrackIndex ( DbU::Unit start, DbU::Unit stop, DbU::Unit position, unsigned mode ) const;
-
112  inline DbU::Unit getTrackPosition ( DbU::Unit start, DbU::Unit stop, DbU::Unit position, unsigned mode ) const;
-
113  DbU::Unit getTrackPosition ( DbU::Unit start, long index ) const;
-
114  // Hurricane Managment.
-
115  void toJson ( JsonWriter* ) const;
-
116  virtual string _getTypeName () const;
-
117  virtual string _getString () const;
-
118  virtual Record* _getRecord () const;
-
119 
-
120  protected:
-
121  // Internal - Attributes.
-
122  const Layer* _layer;
-
123  const Layer* _blockageLayer;
-
124  Constant::Direction _direction;
- -
126  unsigned int _depth;
-
127  double _density;
-
128  DbU::Unit _offset;
-
129  DbU::Unit _pitch;
-
130  DbU::Unit _wireWidth;
-
131  DbU::Unit _viaWidth;
-
132  DbU::Unit _obstacleDw;
-
133 
-
134  // Internal - Constructors & Destructors.
-
135  RoutingLayerGauge ( const Layer* layer
-
136  , Constant::Direction direction
- -
138  , unsigned int depth
-
139  , double density
-
140  , DbU::Unit offset
-
141  , DbU::Unit pitch
-
142  , DbU::Unit wireWidth
-
143  , DbU::Unit viaWidth
-
144  , DbU::Unit obsDw );
-
145  virtual ~RoutingLayerGauge ();
-
146  virtual void _preDestroy();
-
147  RoutingLayerGauge& operator= ( const RoutingLayerGauge& );
-
148 
-
149  // Friends.
-
150  friend class RoutingGauge;
-
151  };
-
152 
-
153 
-
154  // New Types.
-
155  typedef map<Layer*,RoutingLayerGauge*> RoutingLayerGaugeMap;
-
156 
-
157 
-
158 // -------------------------------------------------------------------
-
159 // Collection : "RoutingLayerGauges".
-
160 
- - - -
164 
-
165 
-
166 // -------------------------------------------------------------------
-
167 // Inline Functions.
-
168 
-
169  inline bool RoutingLayerGauge::isHorizontal () const { return (_direction == Constant::Direction::Horizontal); }
-
170  inline bool RoutingLayerGauge::isVertical () const { return (_direction == Constant::Direction::Vertical); }
-
171  inline const Layer* RoutingLayerGauge::getLayer () const { return _layer; }
-
172  inline const Layer* RoutingLayerGauge::getBlockageLayer () const { return _blockageLayer; }
-
173  inline Constant::Direction RoutingLayerGauge::getDirection () const { return _direction; }
-
174  inline Constant::LayerGaugeType RoutingLayerGauge::getType () const { return _type; }
-
175  inline unsigned int RoutingLayerGauge::getDepth () const { return _depth; }
-
176  inline double RoutingLayerGauge::getDensity () const { return _density; }
-
177  inline DbU::Unit RoutingLayerGauge::getOffset () const { return _offset; }
-
178  inline DbU::Unit RoutingLayerGauge::getPitch () const { return _pitch; }
-
179  inline DbU::Unit RoutingLayerGauge::getHalfPitch () const { return _pitch>>1; }
-
180  inline DbU::Unit RoutingLayerGauge::getWireWidth () const { return _wireWidth; }
-
181  inline DbU::Unit RoutingLayerGauge::getHalfWireWidth () const { return _wireWidth>>1; }
-
182  inline DbU::Unit RoutingLayerGauge::getViaWidth () const { return _viaWidth; }
-
183  inline DbU::Unit RoutingLayerGauge::getHalfViaWidth () const { return _viaWidth>>1; }
-
184  inline DbU::Unit RoutingLayerGauge::getObstacleDw () const { return _obstacleDw; }
-
185  inline DbU::Unit RoutingLayerGauge::getTrackPosition ( DbU::Unit start, DbU::Unit stop, DbU::Unit position, unsigned mode ) const
-
186  { return getTrackPosition( start, getTrackIndex(start,stop,position,mode) ); }
-
187 
-
188 
-
189 // -------------------------------------------------------------------
-
190 // Class : "JsonRoutingLayerGauge".
-
191 
-
192  class JsonRoutingLayerGauge : public JsonObject {
-
193  public:
-
194  static void initialize ();
-
195  JsonRoutingLayerGauge ( unsigned long flags );
-
196  virtual string getTypeName () const;
-
197  virtual JsonRoutingLayerGauge* clone ( unsigned long flags ) const;
-
198  virtual void toData ( JsonStack& );
-
199  };
-
200 
-
201 
-
202 } // CRL namespace.
-
203 
-
204 
-
205 INSPECTOR_P_SUPPORT(CRL::RoutingLayerGauge);
-
206 
-
207 
-
208 // -------------------------------------------------------------------
-
209 // Inspector Support for : "const ::Constant::Direction*".
-
210 
-
211 
-
212 inline void from ( Constant::Direction& direction, const std::string& s )
-
213 {
-
214  if (s == "Vertical") direction = Constant::Vertical;
-
215  else {
-
216  if (s != "Horizontal")
-
217  std::cerr << Hurricane::Error( "::from(Direction&,string&): Unknown value \"%s\"."
-
218  , s.c_str() ) << std::endl;
-
219  direction = Constant::Horizontal;
-
220  }
-
221 }
-
222 
-
223 
-
224 template<>
-
225 inline std::string getString<const Constant::Direction*>
-
226  ( const Constant::Direction* direction )
-
227 {
-
228  switch ( *direction ) {
-
229  case Constant::Horizontal: return "Horizontal";
-
230  case Constant::Vertical: return "Vertical";
-
231  }
-
232  return "Unknown Constant::Direction";
-
233 }
-
234 
-
235 
-
236 template<>
-
237 inline std::string getString<Constant::Direction>
-
238  ( Constant::Direction direction )
-
239 {
-
240  switch ( direction ) {
-
241  case Constant::Horizontal: return "Horizontal";
-
242  case Constant::Vertical: return "Vertical";
-
243  }
-
244  return "Unknown Constant::Direction";
-
245 }
-
246 
-
247 
-
248 IOSTREAM_POINTER_SUPPORT(Constant::Direction);
-
249 
-
250 
-
251 // -------------------------------------------------------------------
-
252 // Inspector Support for : "const Constant::LayerGaugeType*".
-
253 
-
254 
-
255 inline void from ( Constant::LayerGaugeType& type, const std::string& s )
-
256 {
-
257  if (s == "PinOnly") type = Constant::PinOnly;
-
258  else {
-
259  if (s != "Default")
-
260  std::cerr << Hurricane::Error( "::from(LayerGaugeType&,string&): Unknown value \"%s\"."
-
261  , s.c_str() ) << std::endl;
-
262  type = Constant::Default;
-
263  }
-
264 }
-
265 
-
266 
-
267 template<>
-
268 inline std::string getString<const Constant::LayerGaugeType*>
-
269  ( const Constant::LayerGaugeType* layerGaugeType )
-
270 {
-
271  switch ( *layerGaugeType ) {
-
272  case Constant::Default: return "Default";
-
273  case Constant::PinOnly: return "PinOnly";
-
274  }
-
275  return "Unknown Constant::LayerGaugeType";
-
276 }
-
277 
-
278 
-
279 template<>
-
280 inline std::string getString<Constant::LayerGaugeType*>
-
281  ( Constant::LayerGaugeType* layerGaugeType )
-
282 { return getString<const Constant::LayerGaugeType*>(layerGaugeType); }
-
283 
-
284 
-
285 template<>
-
286 inline std::string getString<const Constant::LayerGaugeType>
-
287  ( const Constant::LayerGaugeType layerGaugeType )
-
288 {
-
289  switch ( layerGaugeType ) {
-
290  case Constant::Default: return "Default";
-
291  case Constant::PinOnly: return "PinOnly";
-
292  }
-
293  return "Unknown Constant::LayerGaugeType";
-
294 }
-
295 
-
296 
-
297 template<>
-
298 inline std::string getString<Constant::LayerGaugeType>
-
299  ( Constant::LayerGaugeType layerGaugeType )
-
300 { return getString<const Constant::LayerGaugeType>(layerGaugeType); }
-
301 
-
302 
-
303 IOSTREAM_POINTER_SUPPORT(Constant::LayerGaugeType);
-
304 
-
305 
-
306 #endif // CRL_ROUTING_LAYER_GAUGE_H
-
DbU::Unit getHalfWireWidth() const
Definition: RoutingLayerGauge.h:181
+
1 // -*- C++ -*-
2 //
3 // This file is part of the Coriolis Software.
4 // Copyright (c) UPMC 2008-2018, All Rights Reserved
5 //
6 // +-----------------------------------------------------------------+
7 // | C O R I O L I S |
8 // | C o r e L i b r a r y |
9 // | |
10 // | Author : Jean-Paul CHAPUT |
11 // | E-mail : Jean-Paul.Chaput@asim.lip6.fr |
12 // | =============================================================== |
13 // | C++ Header : "./RoutingLayerGauge.h" |
14 // +-----------------------------------------------------------------+
15 
16 
17 #ifndef CRL_ROUTING_LAYER_GAUGE_H
18 #define CRL_ROUTING_LAYER_GAUGE_H
19 
20 
21 #include <map>
22 #include "hurricane/Commons.h"
23 #include "hurricane/Error.h"
24 #include "hurricane/DbU.h"
25 #include "hurricane/Collection.h"
26 #include "hurricane/Slot.h"
27 #include "crlcore/Utilities.h"
28 
29 namespace Hurricane {
30  class Layer;
31 }
32 
33 
34 namespace Constant {
35 
36  enum Direction { Horizontal = (1<<0)
37  , Vertical = (1<<1)
38  };
39 
40  enum LayerGaugeType { Default = (1<<0)
41  , PinOnly = (1<<1)
42  };
43 
44  enum Round { Superior = (1<<2)
45  , Inferior = (1<<3)
46  , Nearest = (1<<4)
47  , Exact = (1<<5)
48  };
49 
50  Direction perpandicular ( unsigned int );
51 
52 }
53 
54 
55 
56 namespace CRL {
57 
58  using std::map;
65  using Hurricane::Record;
66  using Hurricane::DbU;
67  using Hurricane::Layer;
68 
69 
70  class RoutingGauge;
71 
72 
73 // -------------------------------------------------------------------
74 // Class : "RoutingLayerGauge".
75 
76 
78 
79  public:
80  // Constructors & Destructors.
81  static RoutingLayerGauge* create ( const Layer* layer
82  , Constant::Direction direction
84  , unsigned int depth
85  , double density
86  , DbU::Unit offset
87  , DbU::Unit pitch
88  , DbU::Unit wireWidth
89  , DbU::Unit viaWidth
90  , DbU::Unit obsDw );
91  virtual void destroy ();
92  // Accessors.
93  inline bool isHorizontal () const;
94  inline bool isVertical () const;
95  inline const Layer* getLayer () const;
96  inline const Layer* getBlockageLayer () const;
97  inline unsigned int getDepth () const;
98  inline Constant::Direction getDirection () const;
99  inline Constant::LayerGaugeType getType () const;
100  inline double getDensity () const;
101  inline DbU::Unit getOffset () const;
102  inline DbU::Unit getPitch () const;
103  inline DbU::Unit getHalfPitch () const;
104  inline DbU::Unit getWireWidth () const;
105  inline DbU::Unit getHalfWireWidth () const;
106  inline DbU::Unit getViaWidth () const;
107  inline DbU::Unit getHalfViaWidth () const;
108  inline DbU::Unit getObstacleDw () const;
109  void divide ( DbU::Unit dividend, long& quotient, long& modulo ) const;
110  unsigned int getTrackNumber ( DbU::Unit start, DbU::Unit stop ) const;
111  long getTrackIndex ( DbU::Unit start, DbU::Unit stop, DbU::Unit position, unsigned mode ) const;
112  inline DbU::Unit getTrackPosition ( DbU::Unit start, DbU::Unit stop, DbU::Unit position, unsigned mode ) const;
113  DbU::Unit getTrackPosition ( DbU::Unit start, long index ) const;
114  // Hurricane Managment.
115  void toJson ( JsonWriter* ) const;
116  virtual string _getTypeName () const;
117  virtual string _getString () const;
118  virtual Record* _getRecord () const;
119 
120  protected:
121  // Internal - Attributes.
122  const Layer* _layer;
123  const Layer* _blockageLayer;
124  Constant::Direction _direction;
126  unsigned int _depth;
127  double _density;
128  DbU::Unit _offset;
129  DbU::Unit _pitch;
130  DbU::Unit _wireWidth;
131  DbU::Unit _viaWidth;
132  DbU::Unit _obstacleDw;
133 
134  // Internal - Constructors & Destructors.
135  RoutingLayerGauge ( const Layer* layer
136  , Constant::Direction direction
138  , unsigned int depth
139  , double density
140  , DbU::Unit offset
141  , DbU::Unit pitch
142  , DbU::Unit wireWidth
143  , DbU::Unit viaWidth
144  , DbU::Unit obsDw );
145  virtual ~RoutingLayerGauge ();
146  virtual void _preDestroy();
147  RoutingLayerGauge& operator= ( const RoutingLayerGauge& );
148 
149  // Friends.
150  friend class RoutingGauge;
151  };
152 
153 
154  // New Types.
155  typedef map<Layer*,RoutingLayerGauge*> RoutingLayerGaugeMap;
156 
157 
158 // -------------------------------------------------------------------
159 // Collection : "RoutingLayerGauges".
160 
164 
165 
166 // -------------------------------------------------------------------
167 // Inline Functions.
168 
169  inline bool RoutingLayerGauge::isHorizontal () const { return (_direction == Constant::Direction::Horizontal); }
170  inline bool RoutingLayerGauge::isVertical () const { return (_direction == Constant::Direction::Vertical); }
171  inline const Layer* RoutingLayerGauge::getLayer () const { return _layer; }
172  inline const Layer* RoutingLayerGauge::getBlockageLayer () const { return _blockageLayer; }
173  inline Constant::Direction RoutingLayerGauge::getDirection () const { return _direction; }
174  inline Constant::LayerGaugeType RoutingLayerGauge::getType () const { return _type; }
175  inline unsigned int RoutingLayerGauge::getDepth () const { return _depth; }
176  inline double RoutingLayerGauge::getDensity () const { return _density; }
177  inline DbU::Unit RoutingLayerGauge::getOffset () const { return _offset; }
178  inline DbU::Unit RoutingLayerGauge::getPitch () const { return _pitch; }
179  inline DbU::Unit RoutingLayerGauge::getHalfPitch () const { return _pitch>>1; }
180  inline DbU::Unit RoutingLayerGauge::getWireWidth () const { return _wireWidth; }
181  inline DbU::Unit RoutingLayerGauge::getHalfWireWidth () const { return _wireWidth>>1; }
182  inline DbU::Unit RoutingLayerGauge::getViaWidth () const { return _viaWidth; }
183  inline DbU::Unit RoutingLayerGauge::getHalfViaWidth () const { return _viaWidth>>1; }
184  inline DbU::Unit RoutingLayerGauge::getObstacleDw () const { return _obstacleDw; }
185  inline DbU::Unit RoutingLayerGauge::getTrackPosition ( DbU::Unit start, DbU::Unit stop, DbU::Unit position, unsigned mode ) const
186  { return getTrackPosition( start, getTrackIndex(start,stop,position,mode) ); }
187 
188 
189 // -------------------------------------------------------------------
190 // Class : "JsonRoutingLayerGauge".
191 
192  class JsonRoutingLayerGauge : public JsonObject {
193  public:
194  static void initialize ();
195  JsonRoutingLayerGauge ( unsigned long flags );
196  virtual string getTypeName () const;
197  virtual JsonRoutingLayerGauge* clone ( unsigned long flags ) const;
198  virtual void toData ( JsonStack& );
199  };
200 
201 
202 } // CRL namespace.
203 
204 
205 INSPECTOR_P_SUPPORT(CRL::RoutingLayerGauge);
206 
207 
208 // -------------------------------------------------------------------
209 // Inspector Support for : "const ::Constant::Direction*".
210 
211 
212 inline void from ( Constant::Direction& direction, const std::string& s )
213 {
214  if (s == "Vertical") direction = Constant::Vertical;
215  else {
216  if (s != "Horizontal")
217  std::cerr << Hurricane::Error( "::from(Direction&,string&): Unknown value \"%s\"."
218  , s.c_str() ) << std::endl;
219  direction = Constant::Horizontal;
220  }
221 }
222 
223 
224 template<>
225 inline std::string getString<const Constant::Direction*>
226  ( const Constant::Direction* direction )
227 {
228  switch ( *direction ) {
229  case Constant::Horizontal: return "Horizontal";
230  case Constant::Vertical: return "Vertical";
231  }
232  return "Unknown Constant::Direction";
233 }
234 
235 
236 template<>
237 inline std::string getString<Constant::Direction>
238  ( Constant::Direction direction )
239 {
240  switch ( direction ) {
241  case Constant::Horizontal: return "Horizontal";
242  case Constant::Vertical: return "Vertical";
243  }
244  return "Unknown Constant::Direction";
245 }
246 
247 
248 IOSTREAM_POINTER_SUPPORT(Constant::Direction);
249 
250 
251 // -------------------------------------------------------------------
252 // Inspector Support for : "const Constant::LayerGaugeType*".
253 
254 
255 inline void from ( Constant::LayerGaugeType& type, const std::string& s )
256 {
257  if (s == "PinOnly") type = Constant::PinOnly;
258  else {
259  if (s != "Default")
260  std::cerr << Hurricane::Error( "::from(LayerGaugeType&,string&): Unknown value \"%s\"."
261  , s.c_str() ) << std::endl;
262  type = Constant::Default;
263  }
264 }
265 
266 
267 template<>
268 inline std::string getString<const Constant::LayerGaugeType*>
269  ( const Constant::LayerGaugeType* layerGaugeType )
270 {
271  switch ( *layerGaugeType ) {
272  case Constant::Default: return "Default";
273  case Constant::PinOnly: return "PinOnly";
274  }
275  return "Unknown Constant::LayerGaugeType";
276 }
277 
278 
279 template<>
280 inline std::string getString<Constant::LayerGaugeType*>
281  ( Constant::LayerGaugeType* layerGaugeType )
282 { return getString<const Constant::LayerGaugeType*>(layerGaugeType); }
283 
284 
285 template<>
286 inline std::string getString<const Constant::LayerGaugeType>
287  ( const Constant::LayerGaugeType layerGaugeType )
288 {
289  switch ( layerGaugeType ) {
290  case Constant::Default: return "Default";
291  case Constant::PinOnly: return "PinOnly";
292  }
293  return "Unknown Constant::LayerGaugeType";
294 }
295 
296 
297 template<>
298 inline std::string getString<Constant::LayerGaugeType>
299  ( Constant::LayerGaugeType layerGaugeType )
300 { return getString<const Constant::LayerGaugeType>(layerGaugeType); }
301 
302 
303 IOSTREAM_POINTER_SUPPORT(Constant::LayerGaugeType);
304 
305 
306 #endif // CRL_ROUTING_LAYER_GAUGE_H
Store various constants.
Definition: RoutingLayerGauge.h:34
+
DbU::Unit getViaWidth() const
Definition: RoutingLayerGauge.h:182
virtual void destroy()
-
const Layer * getLayer() const
Definition: RoutingLayerGauge.h:171
-
DbU::Unit getOffset() const
Definition: RoutingLayerGauge.h:177
+
const Layer * getLayer() const
Definition: RoutingLayerGauge.h:171
Round
Definition: RoutingLayerGauge.h:44
-
unsigned int getDepth() const
Definition: RoutingLayerGauge.h:175
+
DbU::Unit getPitch() const
Definition: RoutingLayerGauge.h:178
+
long getTrackIndex(DbU::Unit start, DbU::Unit stop, DbU::Unit position, unsigned mode) const
-
Constant::Direction getDirection() const
Definition: RoutingLayerGauge.h:173
-
unsigned int getTrackNumber(DbU::Unit start, DbU::Unit stop) const
-
const Layer * getBlockageLayer() const
Definition: RoutingLayerGauge.h:172
+
DbU::Unit getWireWidth() const
Definition: RoutingLayerGauge.h:180
std::int64_t Unit
-
double getDensity() const
Definition: RoutingLayerGauge.h:176
+
unsigned int getTrackNumber(DbU::Unit start, DbU::Unit stop) const
Direction
Definition: RoutingLayerGauge.h:36
Gauge for the detailed routing.
Definition: RoutingGauge.h:48
-
Constant::LayerGaugeType getType() const
Definition: RoutingLayerGauge.h:174
+
Constant::Direction getDirection() const
Definition: RoutingLayerGauge.h:173
Definition: RoutingLayerGauge.h:41
Definition: RoutingLayerGauge.h:46
Definition: RoutingLayerGauge.h:40
static RoutingLayerGauge * create(const Layer *layer, Constant::Direction direction, Constant::LayerGaugeType type, unsigned int depth, double density, DbU::Unit offset, DbU::Unit pitch, DbU::Unit wireWidth, DbU::Unit viaWidth, DbU::Unit obsDw)
+
unsigned int getDepth() const
Definition: RoutingLayerGauge.h:175
-
DbU::Unit getViaWidth() const
Definition: RoutingLayerGauge.h:182
-
long getTrackIndex(DbU::Unit start, DbU::Unit stop, DbU::Unit position, unsigned mode) const
+
DbU::Unit getOffset() const
Definition: RoutingLayerGauge.h:177
+
Constant::LayerGaugeType getType() const
Definition: RoutingLayerGauge.h:174
+
const Layer * getBlockageLayer() const
Definition: RoutingLayerGauge.h:172
-
DbU::Unit getHalfViaWidth() const
Definition: RoutingLayerGauge.h:183
Definition: RoutingLayerGauge.h:45
LayerGaugeType
Definition: RoutingLayerGauge.h:40
-
DbU::Unit getWireWidth() const
Definition: RoutingLayerGauge.h:180
-
void divide(DbU::Unit dividend, long &quotient, long &modulo) const
+
DbU::Unit getHalfViaWidth() const
Definition: RoutingLayerGauge.h:183
+
DbU::Unit getHalfWireWidth() const
Definition: RoutingLayerGauge.h:181
+
void divide(DbU::Unit dividend, long &quotient, long &modulo) const
+
double getDensity() const
Definition: RoutingLayerGauge.h:176
+ +
DbU::Unit getHalfPitch() const
Definition: RoutingLayerGauge.h:179
Definition: RoutingLayerGauge.h:44
-
DbU::Unit getHalfPitch() const
Definition: RoutingLayerGauge.h:179
Definition: RoutingLayerGauge.h:37
Definition: RoutingLayerGauge.h:36
Gauge of a Layer for the detailed routing.
Definition: RoutingLayerGauge.h:77
Definition: RoutingLayerGauge.h:47
-
DbU::Unit getPitch() const
Definition: RoutingLayerGauge.h:178
+
The namespace of Coriolis Core.
Definition: Environment.h:26


- +
Generated by doxygen 1.8.5 on Thu Mar 19 2020Generated by doxygen 1.8.14 on Mon Apr 27 2020 Return to top of page
diff --git a/crlcore/doc/crlcore/html/SearchPath_8h_source.html b/crlcore/doc/crlcore/html/SearchPath_8h_source.html index be7eebd7..4aef52f7 100644 --- a/crlcore/doc/crlcore/html/SearchPath_8h_source.html +++ b/crlcore/doc/crlcore/html/SearchPath_8h_source.html @@ -24,21 +24,16 @@ -->
- - - + + + + +
-
1 // -*- C++ -*-
-
2 //
-
3 // This file is part of the Coriolis Software.
-
4 // Copyright (c) UPMC 2008-2018, All Rights Reserved
-
5 //
-
6 // +-----------------------------------------------------------------+
-
7 // | C O R I O L I S |
-
8 // | Alliance / Hurricane Interface |
-
9 // | |
-
10 // | Author : Jean-Paul CHAPUT |
-
11 // | E-mail : Jean-Paul.Chaput@asim.lip6.fr |
-
12 // | =============================================================== |
-
13 // | C++ Header : "./crlcore/SearchPath.h" |
-
14 // +-----------------------------------------------------------------+
-
15 
-
16 
-
17 #ifndef CRL_SEARCH_PATH_H
-
18 #define CRL_SEARCH_PATH_H
-
19 
-
20 #include <string>
-
21 #include <vector>
-
22 #include "hurricane/Commons.h"
-
23 #include "hurricane/Slot.h"
-
24 
-
25 
-
26 namespace CRL {
-
27 
-
28  using Hurricane::Record;
-
29  using Hurricane::_TName;
-
30 
-
31 
-
32  class SearchPath {
-
33  public:
-
34  class Element {
-
35  public:
-
36  inline Element ( const std::string& path="", const std::string& name="" );
-
37  inline bool empty () const;
-
38  inline const std::string& getPath () const;
-
39  inline const std::string& getName () const;
-
40  inline std::string _getTypeName () const;
-
41  std::string _getString () const;
-
42  Record* _getRecord () const;
-
43  private:
-
44  std::string _path;
-
45  std::string _name;
-
46  };
-
47  public:
-
48  static const size_t npos;
-
49  static std::string extractLibName ( const std::string& );
-
50  SearchPath ();
-
51  public:
-
52  inline void reset ();
-
53  inline size_t append ( const std::string& path, const std::string& name="" );
-
54  size_t prepend ( const std::string& path, const std::string& name="");
-
55  size_t replace ( const std::string& path, const std::string&, size_t index );
-
56  void remove ( size_t index );
-
57  size_t locate ( const std::string& file
-
58  , std::ios::openmode mode =std::ios::in
-
59  , int first=0
-
60  , int last =64 );
-
61  void select ( const std::string& );
-
62  inline size_t getSize () const;
-
63  inline const std::string& getSelected () const;
-
64  inline size_t getIndex () const;
-
65  inline bool hasSelected () const;
-
66  size_t hasLib ( const std::string& name ) const;
-
67  size_t hasPath ( const std::string& path ) const;
-
68  const Element& operator[] ( size_t index ) const;
-
69  private:
-
70  static const std::string _selectFailed;
-
71  std::vector<Element> _paths;
-
72  size_t _index;
-
73  std::string _selected;
-
74  private:
-
75  SearchPath ( const SearchPath& );
-
76  bool _canOpen ( const Element& directory
-
77  , const std::string& file
-
78  , std::ios::openmode mode
-
79  );
-
80  public:
-
81  inline std::string _getTypeName () const;
-
82  std::string _getString () const;
-
83  Record* _getRecord () const;
-
84  };
-
85 
-
86 
-
87  // Inline Functions.
-
88  inline void SearchPath::reset () { _paths.resize(1); }
-
89  inline size_t SearchPath::getSize () const { return _paths.size(); }
-
90  inline const std::string& SearchPath::getSelected () const { return _selected; }
-
91  inline size_t SearchPath::getIndex () const { return _index; }
-
92  inline bool SearchPath::hasSelected () const { return _index != npos; }
-
93  inline std::string SearchPath::_getTypeName () const { return _TName("SearchPath"); }
-
94 
-
95  inline size_t SearchPath::append ( const std::string& path, const std::string& name ) {
-
96  _paths.push_back ( Element ( path, name.empty()?extractLibName(path):name ) );
-
97  return _paths.size()-1;
-
98  }
-
99 
-
100  inline SearchPath::Element::Element ( const std::string& path, const std::string& name )
-
101  : _path(path)
-
102  , _name(name.empty()?SearchPath::extractLibName(path):name)
-
103  { }
-
104 
-
105  inline bool SearchPath::Element::empty () const { return _path.empty() and _name.empty(); }
-
106  inline const std::string& SearchPath::Element::getPath () const { return _path; }
-
107  inline const std::string& SearchPath::Element::getName () const { return _name; }
-
108  inline std::string SearchPath::Element::_getTypeName () const { return "SearchPath::Element"; }
-
109 
-
110 
-
111 } // CRL namespace.
-
112 
-
113 
-
114 INSPECTOR_P_SUPPORT(CRL::SearchPath);
-
115 INSPECTOR_V_SUPPORT(CRL::SearchPath::Element);
-
116 
-
117 
-
118 #endif // CRL_SEARCH_PATH_H
+
1 // -*- C++ -*-
2 //
3 // This file is part of the Coriolis Software.
4 // Copyright (c) UPMC 2008-2018, All Rights Reserved
5 //
6 // +-----------------------------------------------------------------+
7 // | C O R I O L I S |
8 // | Alliance / Hurricane Interface |
9 // | |
10 // | Author : Jean-Paul CHAPUT |
11 // | E-mail : Jean-Paul.Chaput@asim.lip6.fr |
12 // | =============================================================== |
13 // | C++ Header : "./crlcore/SearchPath.h" |
14 // +-----------------------------------------------------------------+
15 
16 
17 #ifndef CRL_SEARCH_PATH_H
18 #define CRL_SEARCH_PATH_H
19 
20 #include <string>
21 #include <vector>
22 #include "hurricane/Commons.h"
23 #include "hurricane/Slot.h"
24 
25 
26 namespace CRL {
27 
28  using Hurricane::Record;
29  using Hurricane::_TName;
30 
31 
32  class SearchPath {
33  public:
34  class Element {
35  public:
36  inline Element ( const std::string& path="", const std::string& name="" );
37  inline bool empty () const;
38  inline const std::string& getPath () const;
39  inline const std::string& getName () const;
40  inline std::string _getTypeName () const;
41  std::string _getString () const;
42  Record* _getRecord () const;
43  private:
44  std::string _path;
45  std::string _name;
46  };
47  public:
48  static const size_t npos;
49  static std::string extractLibName ( const std::string& );
50  SearchPath ();
51  public:
52  inline void reset ();
53  inline size_t append ( const std::string& path, const std::string& name="" );
54  size_t prepend ( const std::string& path, const std::string& name="");
55  size_t replace ( const std::string& path, const std::string&, size_t index );
56  void remove ( size_t index );
57  size_t locate ( const std::string& file
58  , std::ios::openmode mode =std::ios::in
59  , int first=0
60  , int last =64 );
61  void select ( const std::string& );
62  inline size_t getSize () const;
63  inline const std::string& getSelected () const;
64  inline size_t getIndex () const;
65  inline bool hasSelected () const;
66  size_t hasLib ( const std::string& name ) const;
67  size_t hasPath ( const std::string& path ) const;
68  const Element& operator[] ( size_t index ) const;
69  private:
70  static const std::string _selectFailed;
71  std::vector<Element> _paths;
72  size_t _index;
73  std::string _selected;
74  private:
75  SearchPath ( const SearchPath& );
76  bool _canOpen ( const Element& directory
77  , const std::string& file
78  , std::ios::openmode mode
79  );
80  public:
81  inline std::string _getTypeName () const;
82  std::string _getString () const;
83  Record* _getRecord () const;
84  };
85 
86 
87  // Inline Functions.
88  inline void SearchPath::reset () { _paths.resize(1); }
89  inline size_t SearchPath::getSize () const { return _paths.size(); }
90  inline const std::string& SearchPath::getSelected () const { return _selected; }
91  inline size_t SearchPath::getIndex () const { return _index; }
92  inline bool SearchPath::hasSelected () const { return _index != npos; }
93  inline std::string SearchPath::_getTypeName () const { return _TName("SearchPath"); }
94 
95  inline size_t SearchPath::append ( const std::string& path, const std::string& name ) {
96  _paths.push_back ( Element ( path, name.empty()?extractLibName(path):name ) );
97  return _paths.size()-1;
98  }
99 
100  inline SearchPath::Element::Element ( const std::string& path, const std::string& name )
101  : _path(path)
102  , _name(name.empty()?SearchPath::extractLibName(path):name)
103  { }
104 
105  inline bool SearchPath::Element::empty () const { return _path.empty() and _name.empty(); }
106  inline const std::string& SearchPath::Element::getPath () const { return _path; }
107  inline const std::string& SearchPath::Element::getName () const { return _name; }
108  inline std::string SearchPath::Element::_getTypeName () const { return "SearchPath::Element"; }
109 
110 
111 } // CRL namespace.
112 
113 
114 INSPECTOR_P_SUPPORT(CRL::SearchPath);
115 INSPECTOR_V_SUPPORT(CRL::SearchPath::Element);
116 
117 
118 #endif // CRL_SEARCH_PATH_H
const std::string & getSelected() const
Definition: SearchPath.h:90
void reset()
Definition: SearchPath.h:88
static std::string extractLibName(const std::string &)
-
bool empty() const
Definition: SearchPath.h:105
-
const std::string & getPath() const
Definition: SearchPath.h:106
-
size_t getSize() const
Definition: SearchPath.h:89
-
const std::string & getName() const
Definition: SearchPath.h:107
-
size_t hasPath(const std::string &path) const
+
size_t getIndex() const
Definition: SearchPath.h:91
+
bool hasSelected() const
Definition: SearchPath.h:92
size_t locate(const std::string &file, std::ios::openmode mode=std::ios::in, int first=0, int last=64)
An element of the search path (mapping a directory).
Definition: SearchPath.h:34
-
const std::string & getSelected() const
Definition: SearchPath.h:90
+
size_t getSize() const
Definition: SearchPath.h:89
+
size_t hasPath(const std::string &path) const
An ordered list of search pathes.
Definition: SearchPath.h:32
-
bool hasSelected() const
Definition: SearchPath.h:92
-
const Element & operator[](size_t index) const
size_t prepend(const std::string &path, const std::string &name="")
-
size_t getIndex() const
Definition: SearchPath.h:91
+
bool empty() const
Definition: SearchPath.h:105
+
const std::string & getPath() const
Definition: SearchPath.h:106
+
const std::string & getName() const
Definition: SearchPath.h:107
+
The namespace of Coriolis Core.
Definition: Environment.h:26
size_t replace(const std::string &path, const std::string &, size_t index)
Element(const std::string &path="", const std::string &name="")
Definition: SearchPath.h:100
size_t append(const std::string &path, const std::string &name="")
Definition: SearchPath.h:95
+
const Element & operator[](size_t index) const


- +
Generated by doxygen 1.8.5 on Thu Mar 19 2020Generated by doxygen 1.8.14 on Mon Apr 27 2020 Return to top of page
diff --git a/crlcore/doc/crlcore/html/ToolEngine_8h_source.html b/crlcore/doc/crlcore/html/ToolEngine_8h_source.html index 6fef6327..e8870c72 100644 --- a/crlcore/doc/crlcore/html/ToolEngine_8h_source.html +++ b/crlcore/doc/crlcore/html/ToolEngine_8h_source.html @@ -24,21 +24,16 @@ -->
- - - + + + + +
-
1 // -*- C++ -*-
-
2 //
-
3 // This file is part of the Coriolis Software.
-
4 // Copyright (c) UPMC 2008-2018, All Rights Reserved
-
5 //
-
6 // +-----------------------------------------------------------------+
-
7 // | C O R I O L I S |
-
8 // | Alliance / Hurricane Interface |
-
9 // | |
-
10 // | Author : Jean-Paul Chaput |
-
11 // | E-mail : Jean-Paul.Chaput@lip6.fr |
-
12 // | =============================================================== |
-
13 // | C++ Header : "./crlcore/ToolEngine.h" |
-
14 // +-----------------------------------------------------------------+
-
15 
-
16 
-
17 
-
18 #ifndef CRL_TOOL_ENGINE_H
-
19 #define CRL_TOOL_ENGINE_H
-
20 
-
21 #include <string>
-
22 #include "hurricane/Commons.h"
-
23 #include "hurricane/Timer.h"
-
24 #include "hurricane/DBo.h"
-
25 #include "hurricane/Slot.h"
-
26 
-
27 namespace Hurricane {
-
28  class Name;
-
29  class Cell;
-
30 }
-
31 
-
32 #include "crlcore/Measures.h"
-
33 #include "crlcore/ToolEngines.h"
-
34 
-
35 
-
36 namespace CRL {
-
37 
-
38  using Hurricane::Timer;
-
39  using Hurricane::Record;
-
40  using Hurricane::Name;
-
41  using Hurricane::DBo;
-
42  using Hurricane::Cell;
-
43 
-
44 
-
45 // -------------------------------------------------------------------
-
46 // Class : "CRL::ToolEngine".
-
47 
-
48  class ToolEngine : public DBo {
-
49  public:
-
50  typedef DBo Super;
-
51  public:
-
52  static ToolEngines get ( const Cell* cell );
-
53  static ToolEngine* get ( const Cell* cell, const Name& name );
-
54  static void destroyAll ();
-
55  static bool inDestroyAll ();
-
56  public:
-
57  virtual const Name& getName () const = 0;
-
58  inline Cell* getCell () const;
-
59  inline uint32_t getPassNumber () const;
-
60  bool placementModificationFlagHasChanged ();
-
61  bool routingModificationFlagHasChanged ();
-
62  inline void setInRelationDestroy ( bool );
-
63  inline const Timer& getTimer () const;
-
64  inline void setPassNumber ( uint32_t );
-
65  inline std::string getMeasureLabel ( std::string ) const;
-
66  void startMeasures ();
-
67  void stopMeasures ();
-
68  void suspendMeasures ();
-
69  void resumeMeasures ();
-
70  void printMeasures () const;
-
71  template<typename Data>
-
72  inline void addMeasure ( std::string, const Data&, unsigned int width ) const;
-
73  template<typename Data>
-
74  inline void addMeasure ( std::string, const Data& ) const;
-
75  template<typename Data>
-
76  inline void addMeasure ( std::string, Data* ) const;
-
77  template<typename Data>
-
78  inline const Data& getMeasure ( std::string ) const;
-
79  virtual std::string _getTypeName () const;
-
80  virtual std::string _getString () const;
-
81  virtual Record* _getRecord () const;
-
82  private:
-
83  static bool _inDestroyAll;
-
84  protected:
-
85  Cell* _cell;
-
86  private:
-
87  unsigned int _placementModificationFlag;
-
88  unsigned int _routingModificationFlag;
-
89  bool _inRelationDestroy;
-
90  Timer _timer;
-
91  uint32_t _passNumber;
-
92  protected:
-
93  ToolEngine ( Cell* cell );
-
94  virtual void _postCreate ();
-
95  virtual void _preDestroy ();
-
96  protected:
-
97  void grabPlacementModificationFlag ();
-
98  void getPlacementModificationFlag ();
-
99  void grabRoutingModificationFlag ();
-
100  void getRoutingModificationFlag ();
-
101  };
-
102 
-
103 
-
104 // -------------------------------------------------------------------
-
105 // Inline Functions.
-
106 
-
107 
-
108  inline Cell* ToolEngine::getCell () const { return _cell; }
-
109  inline void ToolEngine::setInRelationDestroy ( bool state ) { _inRelationDestroy = state; }
-
110  inline const Timer& ToolEngine::getTimer () const { return _timer; }
-
111  inline uint32_t ToolEngine::getPassNumber () const { return _passNumber; }
-
112  inline void ToolEngine::setPassNumber ( uint32_t n ) { _passNumber = n; }
-
113 
-
114  inline std::string ToolEngine::getMeasureLabel ( std::string label ) const
-
115  { return _getTypeName() + "." + label; }
-
116 
-
117  template<typename Data>
-
118  inline void ToolEngine::addMeasure ( std::string name, const Data& data, unsigned int width ) const
-
119  { ::CRL::addMeasure( getCell(), getMeasureLabel(name), getPassNumber(), data, width ); }
-
120 
-
121  template<typename Data>
-
122  inline void ToolEngine::addMeasure ( std::string name, const Data& data ) const
-
123  { ::CRL::addMeasure( getCell(), getMeasureLabel(name), getPassNumber(), data ); }
-
124 
-
125  template<typename Data>
-
126  inline void ToolEngine::addMeasure ( std::string name, Data* data ) const
-
127  { ::CRL::addMeasure( getCell(), getMeasureLabel(name), getPassNumber(), data ); }
-
128 
-
129  template<typename Data>
-
130  inline const Data& ToolEngine::getMeasure ( std::string name ) const
-
131  { return ::CRL::getMeasure<Data>( getCell(), getMeasureLabel(name) )->getData( getPassNumber() ); }
-
132 
-
133 
-
134 } // CRL namespace.
-
135 
-
136 #endif // CRL_TOOL_ENGINE_H
-
virtual const Name & getName() const =0
+
1 // -*- C++ -*-
2 //
3 // This file is part of the Coriolis Software.
4 // Copyright (c) UPMC 2008-2018, All Rights Reserved
5 //
6 // +-----------------------------------------------------------------+
7 // | C O R I O L I S |
8 // | Alliance / Hurricane Interface |
9 // | |
10 // | Author : Jean-Paul Chaput |
11 // | E-mail : Jean-Paul.Chaput@lip6.fr |
12 // | =============================================================== |
13 // | C++ Header : "./crlcore/ToolEngine.h" |
14 // +-----------------------------------------------------------------+
15 
16 
17 
18 #ifndef CRL_TOOL_ENGINE_H
19 #define CRL_TOOL_ENGINE_H
20 
21 #include <string>
22 #include "hurricane/Commons.h"
23 #include "hurricane/Timer.h"
24 #include "hurricane/DBo.h"
25 #include "hurricane/Slot.h"
26 
27 namespace Hurricane {
28  class Name;
29  class Cell;
30 }
31 
32 #include "crlcore/Measures.h"
33 #include "crlcore/ToolEngines.h"
34 
35 
36 namespace CRL {
37 
38  using Hurricane::Timer;
39  using Hurricane::Record;
40  using Hurricane::Name;
41  using Hurricane::DBo;
42  using Hurricane::Cell;
43 
44 
45 // -------------------------------------------------------------------
46 // Class : "CRL::ToolEngine".
47 
48  class ToolEngine : public DBo {
49  public:
50  typedef DBo Super;
51  public:
52  static ToolEngines get ( const Cell* cell );
53  static ToolEngine* get ( const Cell* cell, const Name& name );
54  static void destroyAll ();
55  static bool inDestroyAll ();
56  public:
57  virtual const Name& getName () const = 0;
58  inline Cell* getCell () const;
59  inline uint32_t getPassNumber () const;
60  bool placementModificationFlagHasChanged ();
61  bool routingModificationFlagHasChanged ();
62  inline void setInRelationDestroy ( bool );
63  inline const Timer& getTimer () const;
64  inline void setPassNumber ( uint32_t );
65  inline std::string getMeasureLabel ( std::string ) const;
66  void startMeasures ();
67  void stopMeasures ();
68  void suspendMeasures ();
69  void resumeMeasures ();
70  void printMeasures () const;
71  template<typename Data>
72  inline void addMeasure ( std::string, const Data&, unsigned int width ) const;
73  template<typename Data>
74  inline void addMeasure ( std::string, const Data& ) const;
75  template<typename Data>
76  inline void addMeasure ( std::string, Data* ) const;
77  template<typename Data>
78  inline const Data& getMeasure ( std::string ) const;
79  virtual std::string _getTypeName () const;
80  virtual std::string _getString () const;
81  virtual Record* _getRecord () const;
82  private:
83  static bool _inDestroyAll;
84  protected:
85  Cell* _cell;
86  private:
87  unsigned int _placementModificationFlag;
88  unsigned int _routingModificationFlag;
89  bool _inRelationDestroy;
90  Timer _timer;
91  uint32_t _passNumber;
92  protected:
93  ToolEngine ( Cell* cell );
94  virtual void _postCreate ();
95  virtual void _preDestroy ();
96  protected:
97  void grabPlacementModificationFlag ();
98  void getPlacementModificationFlag ();
99  void grabRoutingModificationFlag ();
100  void getRoutingModificationFlag ();
101  };
102 
103 
104 // -------------------------------------------------------------------
105 // Inline Functions.
106 
107 
108  inline Cell* ToolEngine::getCell () const { return _cell; }
109  inline void ToolEngine::setInRelationDestroy ( bool state ) { _inRelationDestroy = state; }
110  inline const Timer& ToolEngine::getTimer () const { return _timer; }
111  inline uint32_t ToolEngine::getPassNumber () const { return _passNumber; }
112  inline void ToolEngine::setPassNumber ( uint32_t n ) { _passNumber = n; }
113 
114  inline std::string ToolEngine::getMeasureLabel ( std::string label ) const
115  { return _getTypeName() + "." + label; }
116 
117  template<typename Data>
118  inline void ToolEngine::addMeasure ( std::string name, const Data& data, unsigned int width ) const
119  { ::CRL::addMeasure( getCell(), getMeasureLabel(name), getPassNumber(), data, width ); }
120 
121  template<typename Data>
122  inline void ToolEngine::addMeasure ( std::string name, const Data& data ) const
123  { ::CRL::addMeasure( getCell(), getMeasureLabel(name), getPassNumber(), data ); }
124 
125  template<typename Data>
126  inline void ToolEngine::addMeasure ( std::string name, Data* data ) const
127  { ::CRL::addMeasure( getCell(), getMeasureLabel(name), getPassNumber(), data ); }
128 
129  template<typename Data>
130  inline const Data& ToolEngine::getMeasure ( std::string name ) const
131  { return ::CRL::getMeasure<Data>( getCell(), getMeasureLabel(name) )->getData( getPassNumber() ); }
132 
133 
134 } // CRL namespace.
135 
136 #endif // CRL_TOOL_ENGINE_H
virtual const Name & getName() const =0
static void destroyAll()
Base Class of all Coriolis Tools.
Definition: ToolEngine.h:48
+ +
The namespace of Coriolis Core.
Definition: Environment.h:26


- +
Generated by doxygen 1.8.5 on Thu Mar 19 2020Generated by doxygen 1.8.14 on Mon Apr 27 2020 Return to top of page
diff --git a/crlcore/doc/crlcore/html/ToolEngines_8h_source.html b/crlcore/doc/crlcore/html/ToolEngines_8h_source.html index a06df4a0..5b3dccb6 100644 --- a/crlcore/doc/crlcore/html/ToolEngines_8h_source.html +++ b/crlcore/doc/crlcore/html/ToolEngines_8h_source.html @@ -24,21 +24,16 @@ -->
- - - + + + + +
-
1 
-
2 
-
3 // This file is part of the Coriolis Project.
-
4 // Copyright (C) Laboratoire LIP6 - Departement ASIM
-
5 // Universite Pierre et Marie Curie
-
6 //
-
7 // Main contributors :
-
8 // Christophe Alexandre <Christophe.Alexandre@lip6.fr>
-
9 // Sophie Belloeil <Sophie.Belloeil@lip6.fr>
-
10 // Hugo Clément <Hugo.Clement@lip6.fr>
-
11 // Jean-Paul Chaput <Jean-Paul.Chaput@lip6.fr>
-
12 // Damien Dupuis <Damien.Dupuis@lip6.fr>
-
13 // Christian Masson <Christian.Masson@lip6.fr>
-
14 // Marek Sroka <Marek.Sroka@lip6.fr>
-
15 //
-
16 // The Coriolis Project is free software; you can redistribute it
-
17 // and/or modify it under the terms of the GNU General Public License
-
18 // as published by the Free Software Foundation; either version 2 of
-
19 // the License, or (at your option) any later version.
-
20 //
-
21 // The Coriolis Project is distributed in the hope that it will be
-
22 // useful, but WITHOUT ANY WARRANTY; without even the implied warranty
-
23 // of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-
24 // GNU General Public License for more details.
-
25 //
-
26 // You should have received a copy of the GNU General Public License
-
27 // along with the Coriolis Project; if not, write to the Free Software
-
28 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
-
29 // USA
-
30 //
-
31 // License-Tag
-
32 // Authors-Tag
-
33 // ===================================================================
-
34 
-
35 
-
36 # ifndef __CRL_TOOL_ENGINES_H__
-
37 # define __CRL_TOOL_ENGINES_H__
-
38 
-
39 # include "hurricane/Collection.h"
-
40 
-
41 
-
42 namespace CRL {
-
43 
-
44 
- - - -
48 
-
49 
-
50  class ToolEngine;
-
51 
-
52 
- - - -
56 
-
57 # define for_each_toolengine(toolEngine, toolEngines) { \
-
58  ToolEngineLocator _locator = toolEngines.getLocator(); \
-
59  while ( _locator.isValid() ) { \
-
60  ToolEngine* toolEngine = _locator.getElement(); \
-
61  _locator.progress();
-
62 
-
63 }
-
64 
-
65 
-
66 #endif // __CENGINES_H
- +
1 
2 
3 // This file is part of the Coriolis Project.
4 // Copyright (C) Laboratoire LIP6 - Departement ASIM
5 // Universite Pierre et Marie Curie
6 //
7 // Main contributors :
8 // Christophe Alexandre <Christophe.Alexandre@lip6.fr>
9 // Sophie Belloeil <Sophie.Belloeil@lip6.fr>
10 // Hugo Clément <Hugo.Clement@lip6.fr>
11 // Jean-Paul Chaput <Jean-Paul.Chaput@lip6.fr>
12 // Damien Dupuis <Damien.Dupuis@lip6.fr>
13 // Christian Masson <Christian.Masson@lip6.fr>
14 // Marek Sroka <Marek.Sroka@lip6.fr>
15 //
16 // The Coriolis Project is free software; you can redistribute it
17 // and/or modify it under the terms of the GNU General Public License
18 // as published by the Free Software Foundation; either version 2 of
19 // the License, or (at your option) any later version.
20 //
21 // The Coriolis Project is distributed in the hope that it will be
22 // useful, but WITHOUT ANY WARRANTY; without even the implied warranty
23 // of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24 // GNU General Public License for more details.
25 //
26 // You should have received a copy of the GNU General Public License
27 // along with the Coriolis Project; if not, write to the Free Software
28 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
29 // USA
30 //
31 // License-Tag
32 // Authors-Tag
33 // ===================================================================
34 
35 
36 # ifndef __CRL_TOOL_ENGINES_H__
37 # define __CRL_TOOL_ENGINES_H__
38 
39 # include "hurricane/Collection.h"
40 
41 
42 namespace CRL {
43 
44 
48 
49 
50  class ToolEngine;
51 
52 
56 
57 # define for_each_toolengine(toolEngine, toolEngines) { \
58  ToolEngineLocator _locator = toolEngines.getLocator(); \
59  while ( _locator.isValid() ) { \
60  ToolEngine* toolEngine = _locator.getElement(); \
61  _locator.progress();
62 
63 }
64 
65 
66 #endif // __CENGINES_H
Base Class of all Coriolis Tools.
Definition: ToolEngine.h:48
GenericLocator< ToolEngine * > ToolEngineLocator
Definition: ToolEngines.h:54
GenericFilter< ToolEngine * > ToolEngineFilter
Definition: ToolEngines.h:55
GenericCollection< ToolEngine * > ToolEngines
Definition: ToolEngines.h:50
+
The namespace of Coriolis Core.
Definition: Environment.h:26


- +
Generated by doxygen 1.8.5 on Thu Mar 19 2020Generated by doxygen 1.8.14 on Mon Apr 27 2020 Return to top of page
diff --git a/crlcore/doc/crlcore/html/annotated.html b/crlcore/doc/crlcore/html/annotated.html index fa5e16c2..910bc341 100644 --- a/crlcore/doc/crlcore/html/annotated.html +++ b/crlcore/doc/crlcore/html/annotated.html @@ -24,24 +24,16 @@ -->
- - - + + + + +
@@ -50,22 +42,21 @@
Here are the classes, structs, unions and interfaces with brief descriptions:
[detail level 123]
- - - - - - - - - - - - - - - - + + + + + + + + + + + + + + +
oNConstantStore various constants
\NCRLThe namespace of Coriolis Core
 oCEnvironmentHolds all the Alliance environment variables
 oCBannerPrint Formatted Banners (on ttys)
 oCCatalogA Registry to store Alliance Cell metadatas
 |\CStateAn entry to store the Cell State in the Catalog
 oCCatalogExtensionWrapper to access a Hurricane::Cell Catalog::State
 oCSearchPathAn ordered list of search pathes
 |\CElementAn element of the search path (mapping a directory)
 oCAllianceLibraryA small wrapper around Hurricane::Library
 oCRoutingLayerGaugeGauge of a Layer for the detailed routing
 oCRoutingGaugeGauge for the detailed routing
 oCAllianceFrameworkA Framework to work with Alliance formats
 oCAcmSigdaA Parser of ACM/Sigda 89' benchmarks
 oCToolEngineBase Class of all Coriolis Tools
 \CGraphicToolBase Class to Hook ToolEngines into the CellViewer
 NCRLThe namespace of Coriolis Core
 CAcmSigdaA Parser of ACM/Sigda 89' benchmarks
 CAllianceFrameworkA Framework to work with Alliance formats
 CAllianceLibraryA small wrapper around Hurricane::Library
 CBannerPrint Formatted Banners (on ttys)
 CCatalogA Registry to store Alliance Cell metadatas
 CStateAn entry to store the Cell State in the Catalog
 CCatalogExtensionWrapper to access a Hurricane::Cell Catalog::State
 CEnvironmentHolds all the Alliance environment variables
 CGraphicToolBase Class to Hook ToolEngines into the CellViewer
 CRoutingGaugeGauge for the detailed routing
 CRoutingLayerGaugeGauge of a Layer for the detailed routing
 CSearchPathAn ordered list of search pathes
 CElementAn element of the search path (mapping a directory)
 CToolEngineBase Class of all Coriolis Tools
@@ -73,7 +64,7 @@
- +
Generated by doxygen 1.8.5 on Thu Mar 19 2020Generated by doxygen 1.8.14 on Mon Apr 27 2020 Return to top of page
diff --git a/crlcore/doc/crlcore/html/classCRL_1_1AcmSigda-members.html b/crlcore/doc/crlcore/html/classCRL_1_1AcmSigda-members.html index a67ad7ea..ebee8dbf 100644 --- a/crlcore/doc/crlcore/html/classCRL_1_1AcmSigda-members.html +++ b/crlcore/doc/crlcore/html/classCRL_1_1AcmSigda-members.html @@ -24,24 +24,16 @@ -->
- - - + + + + +