Hurricane VLSI Database


Relation.h
1 // ****************************************************************************************************
2 // File: ./hurricane/Relation.h
3 // Authors: R. Escassut
4 // Copyright (c) BULL S.A. 2000-2018, All Rights Reserved
5 //
6 // This file is part of Hurricane.
7 //
8 // Hurricane is free software: you can redistribute it and/or modify it under the terms of the GNU
9 // Lesser General Public License as published by the Free Software Foundation, either version 3 of the
10 // License, or (at your option) any later version.
11 //
12 // Hurricane is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
13 // the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Lesser GNU
14 // General Public License for more details.
15 //
16 // You should have received a copy of the Lesser GNU General Public License along with Hurricane. If
17 // not, see <http://www.gnu.org/licenses/>.
18 // ****************************************************************************************************
19 
20 #ifndef HURRICANE_RELATION_H
21 #define HURRICANE_RELATION_H
22 
23 #include "hurricane/Property.h"
24 
25 namespace Hurricane {
26 
27 
28 
29 // ****************************************************************************************************
30 // Relation declaration
31 // ****************************************************************************************************
32 
33 class Relation : public SharedProperty {
34 // ***********************************
35 
36 // Types
37 // *****
38 
39  public: typedef SharedProperty Inherit;
40 
41 // Attributes
42 // **********
43 
44  private: DBo* _masterOwner;
45 
46 // Constructors
47 // ************
48 
49  protected: Relation(DBo* masterOwner);
50 
51 // Accessors
52 // *********
53 
54  public: DBo* getMasterOwner() const {return _masterOwner;};
55  public: DBos getSlaveOwners() const;
56 
57 // Managers
58 // ********
59 
60  public: virtual void onReleasedBy(DBo* owner);
61 
62 // Others
63 // ******
64 
65  public: void _setMasterOwner(DBo* owner) {_masterOwner=owner; }
66  protected: virtual void _postCreate();
67 
68  public: virtual string _getTypeName() const {return _TName("Relation");};
69  public: virtual string _getString() const;
70  public: virtual Record* _getRecord() const;
71 
72 };
73 
74 
75 
76 // ****************************************************************************************************
77 // StandardRelation declaration
78 // ****************************************************************************************************
79 
80 class StandardRelation : public Relation {
81 // *************************************
82 
83 // Types
84 // *****
85 
86  public: typedef Relation Inherit;
87 
88 // Attributes
89 // **********
90 
91  private: Name _name;
92 
93 // Constructors
94 // ************
95 
96  protected: StandardRelation(DBo* masterOwner, const Name& name);
97 
98  public: static StandardRelation* create(DBo* masterOwner, const Name& name);
99 
100 // Accessors
101 // *********
102 
103  public: virtual Name getName() const {return _name;};
104 
105 // Others
106 // ******
107 
108  public: virtual string _getTypeName() const {return _TName("StandardRelation");};
109  public: virtual string _getString() const;
110  public: virtual Record* _getRecord() const;
111 
112 };
113 
114 
115 } // End of Hurricane namespace.
116 
117 
118 #endif // HURRICANE_RELATION
119 
120 
121 // ****************************************************************************************************
122 // Copyright (c) BULL S.A. 2000-2018, All Rights Reserved
123 // ****************************************************************************************************
DataBase object root class (API).
Definition: DBo.h:45
Generic Collection auto-pointer.
Definition: Collection.h:235
Name description (API)
Definition: Name.h:35
Relation description (API)
Definition: Relation.h:33
SharedProperty description (API)
Definition: Property.h:386
StandardRelation description (API)
Definition: Relation.h:80
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