Salome HOME
IPAL22903: TC650: Store/Restore last GUI state does not work for Isos
[modules/geom.git] / src / NMTDS / NMTDS_ListOfPair.hxx
1 // Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
2 //
3 // Copyright (C) 2003-2007  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.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 //
22 \r
23 #ifndef _NMTDS_ListOfPair_HeaderFile\r
24 #define _NMTDS_ListOfPair_HeaderFile\r
25 \r
26 #ifndef _Standard_HeaderFile\r
27 #include <Standard.hxx>\r
28 #endif\r
29 #ifndef _Standard_Macro_HeaderFile\r
30 #include <Standard_Macro.hxx>\r
31 #endif\r
32 \r
33 #ifndef _Standard_Address_HeaderFile\r
34 #include <Standard_Address.hxx>\r
35 #endif\r
36 #ifndef _Handle_NMTDS_ListNodeOfListOfPair_HeaderFile\r
37 #include <Handle_NMTDS_ListNodeOfListOfPair.hxx>\r
38 #endif\r
39 #ifndef _Standard_Integer_HeaderFile\r
40 #include <Standard_Integer.hxx>\r
41 #endif\r
42 #ifndef _Standard_Boolean_HeaderFile\r
43 #include <Standard_Boolean.hxx>\r
44 #endif\r
45 class Standard_NoSuchObject;\r
46 class NMTDS_ListIteratorOfListOfPair;\r
47 class NMTDS_Pair;\r
48 class NMTDS_ListNodeOfListOfPair;\r
49 \r
50 \r
51 \r
52 class NMTDS_ListOfPair  {\r
53 public:\r
54 \r
55   void* operator new(size_t,void* anAddress) \r
56   {\r
57     return anAddress;\r
58   }\r
59   void* operator new(size_t size) \r
60   {\r
61     return Standard::Allocate(size); \r
62   }\r
63   void  operator delete(void *anAddress) \r
64   {\r
65     if (anAddress) Standard::Free((Standard_Address&)anAddress); \r
66   }\r
67 \r
68   \r
69   Standard_EXPORT   NMTDS_ListOfPair();\r
70   \r
71   Standard_EXPORT     void Assign(const NMTDS_ListOfPair& Other) ;\r
72     void operator=(const NMTDS_ListOfPair& Other) \r
73 {\r
74   Assign(Other);\r
75 }\r
76   \r
77   Standard_EXPORT     Standard_Integer Extent() const;\r
78   \r
79   Standard_EXPORT     void Clear() ;\r
80 ~NMTDS_ListOfPair()\r
81 {\r
82   Clear();\r
83 }\r
84   \r
85         Standard_Boolean IsEmpty() const;\r
86   \r
87   Standard_EXPORT     void Prepend(const NMTDS_Pair& I) ;\r
88   \r
89   Standard_EXPORT     void Prepend(const NMTDS_Pair& I,NMTDS_ListIteratorOfListOfPair& theIt) ;\r
90   \r
91   Standard_EXPORT     void Prepend(NMTDS_ListOfPair& Other) ;\r
92   \r
93   Standard_EXPORT     void Append(const NMTDS_Pair& I) ;\r
94   \r
95   Standard_EXPORT     void Append(const NMTDS_Pair& I,NMTDS_ListIteratorOfListOfPair& theIt) ;\r
96   \r
97   Standard_EXPORT     void Append(NMTDS_ListOfPair& Other) ;\r
98   \r
99   Standard_EXPORT     NMTDS_Pair& First() const;\r
100   \r
101   Standard_EXPORT     NMTDS_Pair& Last() const;\r
102   \r
103   Standard_EXPORT     void RemoveFirst() ;\r
104   \r
105   Standard_EXPORT     void Remove(NMTDS_ListIteratorOfListOfPair& It) ;\r
106   \r
107   Standard_EXPORT     void InsertBefore(const NMTDS_Pair& I,NMTDS_ListIteratorOfListOfPair& It) ;\r
108   \r
109   Standard_EXPORT     void InsertBefore(NMTDS_ListOfPair& Other,NMTDS_ListIteratorOfListOfPair& It) ;\r
110   \r
111   Standard_EXPORT     void InsertAfter(const NMTDS_Pair& I,NMTDS_ListIteratorOfListOfPair& It) ;\r
112   \r
113   Standard_EXPORT     void InsertAfter(NMTDS_ListOfPair& Other,NMTDS_ListIteratorOfListOfPair& It) ;\r
114 \r
115 \r
116 friend class NMTDS_ListIteratorOfListOfPair;\r
117 \r
118 \r
119 \r
120 protected:\r
121 \r
122 \r
123 \r
124 \r
125 \r
126 private:\r
127 \r
128   \r
129   Standard_EXPORT   NMTDS_ListOfPair(const NMTDS_ListOfPair& Other);\r
130 \r
131 \r
132 Standard_Address myFirst;\r
133 Standard_Address myLast;\r
134 \r
135 \r
136 };\r
137 \r
138 #define Item NMTDS_Pair\r
139 #define Item_hxx <NMTDS_Pair.hxx>\r
140 #define TCollection_ListNode NMTDS_ListNodeOfListOfPair\r
141 #define TCollection_ListNode_hxx <NMTDS_ListNodeOfListOfPair.hxx>\r
142 #define TCollection_ListIterator NMTDS_ListIteratorOfListOfPair\r
143 #define TCollection_ListIterator_hxx <NMTDS_ListIteratorOfListOfPair.hxx>\r
144 #define Handle_TCollection_ListNode Handle_NMTDS_ListNodeOfListOfPair\r
145 #define TCollection_ListNode_Type_() NMTDS_ListNodeOfListOfPair_Type_()\r
146 #define TCollection_List NMTDS_ListOfPair\r
147 #define TCollection_List_hxx <NMTDS_ListOfPair.hxx>\r
148 \r
149 #include <TCollection_List.lxx>\r
150 \r
151 #undef Item\r
152 #undef Item_hxx\r
153 #undef TCollection_ListNode\r
154 #undef TCollection_ListNode_hxx\r
155 #undef TCollection_ListIterator\r
156 #undef TCollection_ListIterator_hxx\r
157 #undef Handle_TCollection_ListNode\r
158 #undef TCollection_ListNode_Type_\r
159 #undef TCollection_List\r
160 #undef TCollection_List_hxx\r
161 \r
162 \r
163 // other Inline functions and methods (like "C++: function call" methods)\r
164 \r
165 \r
166 #endif\r