Hurricane VLSI Database


Go.h
1 // ****************************************************************************************************
2 // File: ./hurricane/Go.h
3 // Authors: R. Escassut
4 // Copyright (c) BULL S.A. 2000-2018, All Rights Reserved
5 //
6 // This file is part of Hurricane.
7 //
8 // Hurricane is free software: you can redistribute it and/or modify it under the terms of the GNU
9 // Lesser General Public License as published by the Free Software Foundation, either version 3 of the
10 // License, or (at your option) any later version.
11 //
12 // Hurricane is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
13 // the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Lesser GNU
14 // General Public License for more details.
15 //
16 // You should have received a copy of the Lesser GNU General Public License along with Hurricane. If
17 // not, see <http://www.gnu.org/licenses/>.
18 // ****************************************************************************************************
19 
20 #pragma once
21 #include "hurricane/Entity.h"
22 #include "hurricane/Gos.h"
23 #include "hurricane/Transformation.h"
24 
25 namespace Hurricane {
26 
27 class BasicLayer;
28 class QuadTree;
29 
30 // ****************************************************************************************************
31 // Go declaration
32 // ****************************************************************************************************
33 
34 class Go : public Entity {
35 // *********************
36 
37 // Friends
38 // *******
39 
40  friend class QuadTree;
41 
42 // Types
43 // *****
44 
45  public: typedef Entity Inherit;
46 
47 // Attributes
48 // **********
49 
50  private: QuadTree* _quadTree;
51  private: Go* _nextOfQuadTreeGoSet;
52 
53 // Constructors
54 // ************
55 
56  protected: Go();
57  protected: virtual ~Go();
58 
59 // Predicates
60 // **********
61 
62  public: static bool autoMaterializationIsDisabled();
63 
64  public: bool isMaterialized() const {return (_quadTree != NULL);};
65 
66 // Updators
67 // ********
68 
69  public: static void enableAutoMaterialization();
70  public: static void disableAutoMaterialization();
71 
72  public: virtual void materialize() = 0;
73  public: virtual void unmaterialize() = 0;
74 
75  public: virtual void invalidate(bool propagateFlag = true);
76  // implementation located on file UpdateSession.cpp to access local variables
77 
78  public: virtual void translate(const DbU::Unit& dx, const DbU::Unit& dy) = 0;
79 
80 // Others
81 // ******
82 
83  protected: virtual void _postCreate();
84 
85  protected: virtual void _preDestroy();
86 
87  public: virtual string _getString() const;
88  public: virtual Record* _getRecord() const;
89  public: Go* _getNextOfQuadTreeGoSet() const {return _nextOfQuadTreeGoSet;};
90 
91  public: void _setNextOfQuadTreeGoSet(Go* go) {_nextOfQuadTreeGoSet = go;};
92 
93 };
94 
95 
96 } // End of Hurricane namespace.
97 
98 
99 INSPECTOR_P_SUPPORT(Hurricane::Go);
100 
101 
102 // ****************************************************************************************************
103 // Copyright (c) BULL S.A. 2000-2018, All Rights Reserved
104 // ****************************************************************************************************
DataBase object root class (API).
Definition: DBo.h:45
std::int64_t Unit
Definition: DbU.h:67
Occurrenceable objects root class (API).
Definition: Entity.h:37
Go description (API)
Definition: Go.h:34
static void disableAutoMaterialization()
bool isMaterialized() const
Definition: Go.h:64
static bool autoMaterializationIsDisabled()
virtual void translate(const DbU::Unit &dx, const DbU::Unit &dy)=0
virtual void invalidate(bool propagateFlag=true)
virtual void materialize()=0
static void enableAutoMaterialization()
virtual void unmaterialize()=0
QuadTree description (API)
Definition: QuadTree.h:33
The namespace dedicated to Hurricane.
Definition: Generalities.dox:5


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