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
25namespace Hurricane {
26
27
28
29// ****************************************************************************************************
30// Relation declaration
31// ****************************************************************************************************
32
33class 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
80class 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
Name description (API).
Definition Name.h:35
virtual Name getName() const =0
Contains Almost Everything.
Definition BasicLayer.h:39
GenericCollection< DBo * > DBos
Definition DBos.h:35


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