Salome HOME
PR : merge branch V1_2c dans branche principale pour V1_3_0_b1
[modules/kernel.git] / src / SALOMEDS / SALOMEDS_DataMapStringLabel.hxx
1 //  SALOME SALOMEDS : data structure of SALOME and sources of Salome data server 
2 //
3 //  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 //  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
5 // 
6 //  This library is free software; you can redistribute it and/or 
7 //  modify it under the terms of the GNU Lesser General Public 
8 //  License as published by the Free Software Foundation; either 
9 //  version 2.1 of the License. 
10 // 
11 //  This library is distributed in the hope that it will be useful, 
12 //  but WITHOUT ANY WARRANTY; without even the implied warranty of 
13 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
14 //  Lesser General Public License for more details. 
15 // 
16 //  You should have received a copy of the GNU Lesser General Public 
17 //  License along with this library; if not, write to the Free Software 
18 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
19 // 
20 //  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
21 //
22 //
23 //
24 //  File   : SALOMEDS_DataMapStringLabel.hxx
25 //  Author : Yves FRICAUD
26 //  Module : SALOME
27 //  $Header: 
28
29 #ifndef _SALOMEDS_DataMapStringLabel_HeaderFile
30 #define _SALOMEDS_DataMapStringLabel_HeaderFile
31
32 #ifndef _TCollection_BasicMap_HeaderFile
33 #include <TCollection_BasicMap.hxx>
34 #endif
35 #ifndef _Handle_SALOMEDS_DataMapNodeOfDataMapStringLabel_HeaderFile
36 #include <Handle_SALOMEDS_DataMapNodeOfDataMapStringLabel.hxx>
37 #endif
38 #ifndef _Standard_Integer_HeaderFile
39 #include <Standard_Integer.hxx>
40 #endif
41 #ifndef _Standard_Boolean_HeaderFile
42 #include <Standard_Boolean.hxx>
43 #endif
44 class Standard_DomainError;
45 class Standard_NoSuchObject;
46 class TCollection_ExtendedString;
47 class TDF_Label;
48 class SALOMEDS_DataMapNodeOfDataMapStringLabel;
49 class SALOMEDS_DataMapIteratorOfDataMapStringLabel;
50
51
52 #ifndef _Standard_HeaderFile
53 #include <Standard.hxx>
54 #endif
55 #ifndef _Standard_Macro_HeaderFile
56 #include <Standard_Macro.hxx>
57 #endif
58
59 class SALOMEDS_DataMapStringLabel  : public TCollection_BasicMap {
60
61 public:
62
63     inline void* operator new(size_t,void* anAddress) 
64       {
65         return anAddress;
66       }
67     inline void* operator new(size_t size) 
68       { 
69         return Standard::Allocate(size); 
70       }
71     inline void  operator delete(void *anAddress) 
72       { 
73         if (anAddress) Standard::Free((Standard_Address&)anAddress); 
74       }
75 //    inline void  operator delete(void *anAddress, size_t size) 
76 //      { 
77 //        if (anAddress) Standard::Free((Standard_Address&)anAddress,size); 
78 //      }
79  // Methods PUBLIC
80  // 
81 Standard_EXPORT SALOMEDS_DataMapStringLabel(const Standard_Integer NbBuckets = 1);
82 Standard_EXPORT   SALOMEDS_DataMapStringLabel& Assign(const SALOMEDS_DataMapStringLabel& Other) ;
83   SALOMEDS_DataMapStringLabel& operator =(const SALOMEDS_DataMapStringLabel& Other) 
84 {
85   return Assign(Other);
86 }
87
88 Standard_EXPORT   void ReSize(const Standard_Integer NbBuckets) ;
89 Standard_EXPORT   void Clear() ;
90 ~SALOMEDS_DataMapStringLabel()
91 {
92   Clear();
93 }
94
95 Standard_EXPORT   Standard_Boolean Bind(const TCollection_ExtendedString& K,const TDF_Label& I) ;
96 Standard_EXPORT   Standard_Boolean IsBound(const TCollection_ExtendedString& K) const;
97 Standard_EXPORT   Standard_Boolean UnBind(const TCollection_ExtendedString& K) ;
98 Standard_EXPORT  const TDF_Label& Find(const TCollection_ExtendedString& K) const;
99  const TDF_Label& operator()(const TCollection_ExtendedString& K) const
100 {
101   return Find(K);
102 }
103
104 Standard_EXPORT   TDF_Label& ChangeFind(const TCollection_ExtendedString& K) ;
105   TDF_Label& operator()(const TCollection_ExtendedString& K) 
106 {
107   return ChangeFind(K);
108 }
109
110
111
112
113
114
115 protected:
116
117  // Methods PROTECTED
118  // 
119
120
121  // Fields PROTECTED
122  //
123
124
125 private: 
126
127  // Methods PRIVATE
128  // 
129 Standard_EXPORT SALOMEDS_DataMapStringLabel(const SALOMEDS_DataMapStringLabel& Other);
130
131
132  // Fields PRIVATE
133  //
134
135
136 };
137
138
139
140
141
142 // other inline functions and methods (like "C++: function call" methods)
143 //
144
145
146 #endif