0026377: Passing Handle objects as arguments to functions as non-const reference...
[occt.git] / src / IFSelect / IFSelect.hxx
1 // Created on: 1992-09-21
2 // Created by: Christian CAILLET
3 // Copyright (c) 1992-1999 Matra Datavision
4 // Copyright (c) 1999-2014 OPEN CASCADE SAS
5 //
6 // This file is part of Open CASCADE Technology software library.
7 //
8 // This library is free software; you can redistribute it and/or modify it under
9 // the terms of the GNU Lesser General Public License version 2.1 as published
10 // by the Free Software Foundation, with special exception defined in the file
11 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12 // distribution for complete text of the license and disclaimer of any warranty.
13 //
14 // Alternatively, this file may be used under the terms of Open CASCADE
15 // commercial license or contractual agreement.
16
17 #ifndef _IFSelect_HeaderFile
18 #define _IFSelect_HeaderFile
19
20 #include <Standard.hxx>
21 #include <Standard_DefineAlloc.hxx>
22 #include <Standard_Handle.hxx>
23
24 #include <Standard_Boolean.hxx>
25 #include <Standard_CString.hxx>
26 class IFSelect_WorkSession;
27 class IFSelect_Signature;
28 class IFSelect_SignMultiple;
29 class IFSelect_SignType;
30 class IFSelect_SignCategory;
31 class IFSelect_SignValidity;
32 class IFSelect_SignAncestor;
33 class IFSelect_ShareOut;
34 class IFSelect_AppliedModifiers;
35 class IFSelect_ShareOutResult;
36 class IFSelect_PacketList;
37 class IFSelect_Dispatch;
38 class IFSelect_DispGlobal;
39 class IFSelect_DispPerOne;
40 class IFSelect_DispPerCount;
41 class IFSelect_DispPerSignature;
42 class IFSelect_DispPerFiles;
43 class IFSelect_SelectionIterator;
44 class IFSelect_Selection;
45 class IFSelect_SelectBase;
46 class IFSelect_SelectModelRoots;
47 class IFSelect_SelectModelEntities;
48 class IFSelect_SelectEntityNumber;
49 class IFSelect_SelectPointed;
50 class IFSelect_SelectCombine;
51 class IFSelect_SelectUnion;
52 class IFSelect_SelectIntersection;
53 class IFSelect_SelectControl;
54 class IFSelect_SelectDiff;
55 class IFSelect_SelectDeduct;
56 class IFSelect_SelectShared;
57 class IFSelect_SelectSharing;
58 class IFSelect_SelectAnyList;
59 class IFSelect_SelectInList;
60 class IFSelect_SelectSuite;
61 class IFSelect_SelectExtract;
62 class IFSelect_SelectUnknownEntities;
63 class IFSelect_SelectErrorEntities;
64 class IFSelect_SelectIncorrectEntities;
65 class IFSelect_SelectRoots;
66 class IFSelect_SelectRootComps;
67 class IFSelect_SelectRange;
68 class IFSelect_SelectAnyType;
69 class IFSelect_SelectType;
70 class IFSelect_SelectSignature;
71 class IFSelect_SelectFlag;
72 class IFSelect_SelectSent;
73 class IFSelect_SelectExplore;
74 class IFSelect_SelectSignedShared;
75 class IFSelect_SelectSignedSharing;
76 class IFSelect_IntParam;
77 class IFSelect_SignatureList;
78 class IFSelect_CheckCounter;
79 class IFSelect_SignCounter;
80 class IFSelect_GraphCounter;
81 class IFSelect_Editor;
82 class IFSelect_ParamEditor;
83 class IFSelect_EditForm;
84 class IFSelect_ListEditor;
85 class IFSelect_ContextModif;
86 class IFSelect_ContextWrite;
87 class IFSelect_Transformer;
88 class IFSelect_TransformStandard;
89 class IFSelect_ModelCopier;
90 class IFSelect_GeneralModifier;
91 class IFSelect_Modifier;
92 class IFSelect_ModifReorder;
93 class IFSelect_ModifEditForm;
94 class IFSelect_FileModifier;
95 class IFSelect_ModelModifier;
96 class IFSelect_WorkSession;
97 class IFSelect_WorkLibrary;
98 class IFSelect_SessionFile;
99 class IFSelect_SessionDumper;
100 class IFSelect_BasicDumper;
101 class IFSelect_Activator;
102 class IFSelect_SessionPilot;
103 class IFSelect_Act;
104 class IFSelect_Functions;
105
106
107 //! Gives tools to manage Selecting a group of Entities
108 //! processed by an Interface, for instance to divide up an
109 //! original Model (from a File) to several smaller ones
110 //! They use description of an Interface Model as a graph
111 //!
112 //! Remark that this corresponds to the description of a
113 //! "scenario" of sharing out a File. Parts of this Scenario
114 //! are intended to be permanently stored. IFSelect provides
115 //! the Transient, active counterparts (to run the Scenario).
116 //! But a permanent one (either as Persistent Objects or as
117 //! interpretable Text) must be provided elsewhere.
118 class IFSelect 
119 {
120 public:
121
122   DEFINE_STANDARD_ALLOC
123
124   
125   //! Saves the state of a WorkSession from IFSelect, by using a
126   //! SessionFile from IFSelect. Returns True if Done, False in
127   //! case of Error on Writing. <file> gives the name of the File
128   //! to be produced (this avoids to export the class SessionFile).
129   Standard_EXPORT static Standard_Boolean SaveSession (const Handle(IFSelect_WorkSession)& WS, const Standard_CString file);
130   
131   //! Restore the state of a WorkSession from IFSelect, by using a
132   //! SessionFile from IFSelect. Returns True if Done, False in
133   //! case of Error on Writing. <file> gives the name of the File
134   //! to be used (this avoids to export the class SessionFile).
135   Standard_EXPORT static Standard_Boolean RestoreSession (const Handle(IFSelect_WorkSession)& WS, const Standard_CString file);
136
137
138
139
140 protected:
141
142
143
144
145
146 private:
147
148
149
150
151 friend class IFSelect_Signature;
152 friend class IFSelect_SignMultiple;
153 friend class IFSelect_SignType;
154 friend class IFSelect_SignCategory;
155 friend class IFSelect_SignValidity;
156 friend class IFSelect_SignAncestor;
157 friend class IFSelect_ShareOut;
158 friend class IFSelect_AppliedModifiers;
159 friend class IFSelect_ShareOutResult;
160 friend class IFSelect_PacketList;
161 friend class IFSelect_Dispatch;
162 friend class IFSelect_DispGlobal;
163 friend class IFSelect_DispPerOne;
164 friend class IFSelect_DispPerCount;
165 friend class IFSelect_DispPerSignature;
166 friend class IFSelect_DispPerFiles;
167 friend class IFSelect_SelectionIterator;
168 friend class IFSelect_Selection;
169 friend class IFSelect_SelectBase;
170 friend class IFSelect_SelectModelRoots;
171 friend class IFSelect_SelectModelEntities;
172 friend class IFSelect_SelectEntityNumber;
173 friend class IFSelect_SelectPointed;
174 friend class IFSelect_SelectCombine;
175 friend class IFSelect_SelectUnion;
176 friend class IFSelect_SelectIntersection;
177 friend class IFSelect_SelectControl;
178 friend class IFSelect_SelectDiff;
179 friend class IFSelect_SelectDeduct;
180 friend class IFSelect_SelectShared;
181 friend class IFSelect_SelectSharing;
182 friend class IFSelect_SelectAnyList;
183 friend class IFSelect_SelectInList;
184 friend class IFSelect_SelectSuite;
185 friend class IFSelect_SelectExtract;
186 friend class IFSelect_SelectUnknownEntities;
187 friend class IFSelect_SelectErrorEntities;
188 friend class IFSelect_SelectIncorrectEntities;
189 friend class IFSelect_SelectRoots;
190 friend class IFSelect_SelectRootComps;
191 friend class IFSelect_SelectRange;
192 friend class IFSelect_SelectAnyType;
193 friend class IFSelect_SelectType;
194 friend class IFSelect_SelectSignature;
195 friend class IFSelect_SelectFlag;
196 friend class IFSelect_SelectSent;
197 friend class IFSelect_SelectExplore;
198 friend class IFSelect_SelectSignedShared;
199 friend class IFSelect_SelectSignedSharing;
200 friend class IFSelect_IntParam;
201 friend class IFSelect_SignatureList;
202 friend class IFSelect_CheckCounter;
203 friend class IFSelect_SignCounter;
204 friend class IFSelect_GraphCounter;
205 friend class IFSelect_Editor;
206 friend class IFSelect_ParamEditor;
207 friend class IFSelect_EditForm;
208 friend class IFSelect_ListEditor;
209 friend class IFSelect_ContextModif;
210 friend class IFSelect_ContextWrite;
211 friend class IFSelect_Transformer;
212 friend class IFSelect_TransformStandard;
213 friend class IFSelect_ModelCopier;
214 friend class IFSelect_GeneralModifier;
215 friend class IFSelect_Modifier;
216 friend class IFSelect_ModifReorder;
217 friend class IFSelect_ModifEditForm;
218 friend class IFSelect_FileModifier;
219 friend class IFSelect_ModelModifier;
220 friend class IFSelect_WorkSession;
221 friend class IFSelect_WorkLibrary;
222 friend class IFSelect_SessionFile;
223 friend class IFSelect_SessionDumper;
224 friend class IFSelect_BasicDumper;
225 friend class IFSelect_Activator;
226 friend class IFSelect_SessionPilot;
227 friend class IFSelect_Act;
228 friend class IFSelect_Functions;
229
230 };
231
232
233
234
235
236
237
238 #endif // _IFSelect_HeaderFile