33 # ifndef HURRICANE_BASIC_LAYER_H
34 # define HURRICANE_BASIC_LAYER_H
36 # include "hurricane/Layer.h"
37 # include "hurricane/BasicLayers.h"
38 # include "hurricane/Box.h"
70 inline operator const Code& ()
const;
71 inline const Code& getCode ()
const;
72 static Material fromString (
const string& );
73 inline string _getTypeName ()
const;
74 string _getString ()
const;
75 Record* _getRecord ()
const;
87 ,
unsigned gds2Layer = 0
88 ,
unsigned gds2Datatype = 0
94 inline unsigned getGds2Layer ()
const;
95 inline unsigned getGds2Datatype ()
const;
96 virtual BasicLayers getBasicLayers ()
const;
98 virtual const Layer* getTop ()
const;
99 virtual const Layer* getBottom ()
const;
103 inline void setGds2Layer (
unsigned int );
104 inline void setGds2Datatype (
unsigned int );
107 virtual void _toJson ( JsonWriter* writer )
const;
108 virtual BasicLayer* _getSymbolicBasicLayer ();
109 virtual string _getTypeName ()
const;
110 virtual string _getString ()
const;
111 virtual Record* _getRecord ()
const;
117 unsigned _gds2Datatype;
127 ,
unsigned gds2Datatype
131 virtual void _postCreate ();
132 virtual void _preDestroy ();
137 inline BasicLayer::Material::operator
const Code& ()
const {
return _code; }
139 BasicLayer::Material::getCode ()
const {
return _code; }
140 inline string BasicLayer::Material::_getTypeName ()
const {
return _TName(
"BasicLayer::Material"); }
141 inline const BasicLayer::Material&
143 inline unsigned BasicLayer::getGds2Layer ()
const {
return _gds2Layer; }
144 inline unsigned BasicLayer::getGds2Datatype ()
const {
return _gds2Datatype; }
147 inline void BasicLayer::setGds2Layer (
unsigned int number ) { _gds2Layer=number; }
148 inline void BasicLayer::setGds2Datatype (
unsigned int number ) { _gds2Datatype=number; }
155 class JsonBasicLayer :
public JsonLayer {
157 static void initialize ();
158 JsonBasicLayer (
unsigned long flags );
160 virtual string getTypeName ()
const;
161 virtual JsonBasicLayer* clone (
unsigned long )
const;
174 inline std::string getString<const Hurricane::BasicLayer::Material::Code*>
187 case Hurricane::BasicLayer::Material::info:
return "info";
195 inline Hurricane::Record* getRecord<const Hurricane::BasicLayer::Material::Code*>
198 Hurricane::Record* record =
new Hurricane::Record(getString(
object));
199 record->add(getSlot(
"Code", (
unsigned int*)
object));
Definition: BasicLayer.h:50
Code
Definition: BasicLayer.h:53
@ blockage
Definition: BasicLayer.h:61
@ other
Definition: BasicLayer.h:63
@ poly
Definition: BasicLayer.h:58
@ pImplant
Definition: BasicLayer.h:56
@ metal
Definition: BasicLayer.h:60
@ active
Definition: BasicLayer.h:57
@ pWell
Definition: BasicLayer.h:54
@ nImplant
Definition: BasicLayer.h:55
@ cut
Definition: BasicLayer.h:59
@ nWell
Definition: BasicLayer.h:53
BasicLayer description (API)
Definition: BasicLayer.h:44
void setBlockageLayer(BasicLayer *layer)
Definition: BasicLayer.h:146
void setRealName(const char *realName)
Definition: BasicLayer.h:149
const Name & getRealName() const
Definition: BasicLayer.h:145
const Material & getMaterial() const
Definition: BasicLayer.h:142
static BasicLayer * create(Technology *technology, const Name &name, const Material &material, unsigned gds2Layer=0, unsigned gds2Datatype=0, const DbU::Unit &minimalSize=0, const DbU::Unit &minimalSpacing=0)
DataBase object root class (API).
Definition: DBo.h:45
std::int64_t Unit
Definition: DbU.h:67
JSON Parser Stack.
Definition: JsonObject.h:249
Layer description (API)
Definition: Layer.h:52
Name description (API)
Definition: Name.h:35
Technological rules description (API).
Definition: Technology.h:62
The namespace dedicated to Hurricane.
Definition: Generalities.dox:5