0022627: Change OCCT memory management defaults
[occt.git] / src / IFSelect / IFSelect.cdl
1 -- File:        IFSelect.cdl
2 -- Created:     Mon Sep 21 11:33:50 1992
3 -- Author:      Christian CAILLET
4 --              <cky@topsn2>
5 ---Copyright:    Matra Datavision 1992
6
7
8 package IFSelect
9
10         ---Purpose : Gives tools to manage Selecting a group of Entities
11         --           processed by an Interface, for instance to divide up an
12         --           original Model (from a File) to several smaller ones
13         --           They use description of an Interface Model as a graph
14         --           
15         --           Remark that this corresponds to the description of a
16         --           "scenario" of sharing out a File. Parts of this Scenario
17         --           are intended to be permanently stored. IFSelect provides
18         --           the Transient, active counterparts (to run the Scenario).
19         --           But a permanent one (either as Persistent Objects or as
20         --           interpretable Text) must be provided elsewhere.
21
22 uses MMgt, Standard, Message, TCollection, TColStd, 
23      Interface, IFGraph, Dico, MoniTool
24
25 is
26
27     deferred class Signature;   -- to select an entity according a string (its signature)
28     class SignMultiple; -- liste of signatures
29     class SignType;     -- signature = type cdl
30     class SignCategory; -- signature = category
31     class SignValidity; -- signature = validity
32     class SignAncestor; -- signature = type cdl + all ancestors
33
34     class ShareOut;
35     class AppliedModifiers;
36
37     class ShareOutResult;
38     class PacketList;
39
40     deferred class Dispatch;
41         class DispGlobal;         -- takes all result in only ONE group
42         class DispPerOne;         -- defines one group per selected entity
43         class DispPerCount;       -- one group for a count of entities
44         class DispPerSignature;   -- groups given by a SignatureList
45         class DispPerFiles;       -- a determined count of groups
46         --  Other classes can be added for a specific Interface
47
48     class SelectionIterator;
49
50     deferred class Selection;
51
52         deferred class SelectBase;      -- attached directly to the ShareOut :
53             class SelectModelRoots;        -- roots knows as such in the model
54             class SelectModelEntities;     -- all entities of the model
55             class SelectEntityNumber;      -- one entity having a given Number
56             class SelectPointed;           -- directly pointed items
57
58         deferred class SelectCombine;   -- algebraic operators
59             class SelectUnion;          -- "OR" operator between Selections
60             class SelectIntersection;   -- "AND" operator between Selections
61         deferred class SelectControl;   -- a main list controlled by a second
62             class SelectDiff;           -- "Minus" operator between Selections
63
64         deferred class SelectDeduct;       -- computed lists :
65             class SelectShared;            -- directly shared entities
66             class SelectSharing;           -- directly sharing entities
67             deferred class SelectAnyList;  -- from a list in an entity
68             deferred class SelectInList;   -- from a list of single entities
69             generic class SelectList;      -- from an entity as a list
70             class SelectSuite;             -- macro-select-deduct
71
72         deferred class SelectExtract;   -- sorted lists (can be inverted) :
73             class SelectUnknownEntities;
74             class SelectErrorEntities;
75             class SelectIncorrectEntities;  -- (according ComputeCheck)
76             class SelectRoots;          -- roots local in a given group
77             class SelectRootComps;      -- idem but manages cycles
78             class SelectRange;          -- range in a list (from i-th to j-th)
79             deferred class SelectAnyType;  -- type to be precised in sub-class
80             class SelectType;              -- type given as a parameter
81             class SelectSignature;         -- signature matching
82             class SelectFlag;              -- flag recorded in the Graph
83             class SelectSent;              -- sent/remaining entities to file
84             --  Other classes can be added for a specific Interface
85             --  (in particular, instantiations of SelectType)
86
87             --  Other classes can be added for a specific Interface
88             --  (in particular, instantiations of SelectList)
89         deferred class SelectExplore;
90             class SelectSignedShared;       -- shared entities  + signature
91             class SelectSignedSharing;      -- sharing entities + signature
92
93     class IntParam;    -- defines externally accessible integer parameters
94
95     class SignatureList;
96     class CheckCounter;
97     class SignCounter;
98     class GraphCounter;
99
100     deferred class Editor;
101         class ParamEditor;
102
103     class EditForm;
104     class ListEditor;
105
106     class ContextModif;          -- (set of data used by Modifiers)
107     class ContextWrite;          -- (set of data used by Modifiers)
108     deferred class Transformer;  -- frame for data transformations
109         class TransformStandard; -- works with Modifiers
110
111     class ModelCopier;           -- performs transfers (to produce files)
112     deferred class GeneralModifier;  -- set of criteria for all Modifiers
113     deferred class Modifier;  -- defines modifying actions on transferred model
114         class ModifReorder;   -- reorder whole model from roots
115         class ModifEditForm;  -- applies an EditForm
116     deferred generic class FileModifier;    -- defines actions on file sending
117     deferred generic class ModelModifier;   -- specific actions on model
118
119         -- --    Session Management    -- --
120
121     class WorkSession;           -- a set of useful facilities
122     deferred class WorkLibrary;  -- capability of user extents
123
124     alias Option  is  Option from MoniTool;                -- pre-defined values for a field
125     alias Profile is  Profile from MoniTool;               -- set of options bound/piloted together
126
127     class SessionFile;
128     deferred class SessionDumper;
129         class BasicDumper;
130
131     deferred class Activator;
132         class SessionPilot;
133         class Act;
134     primitive ActFunc;
135     class Functions;
136     -- individual functions to be added by Act
137
138     enumeration ReturnStatus is  RetVoid, RetDone, RetError, RetFail, RetStop;
139     ---Purpose : Qualifies an execution status :
140     --           RetVoid  : normal execution which created nothing, or
141     --               no data to process
142     --           RetDone  : normal execution with a result
143     --           RetError : error in command or input data, no execution
144     --           RetFail  : execution was run and has failed
145     --           RetStop  : indicates end or stop (such as Raise)
146
147     enumeration RemainMode   is
148         RemainForget, RemainCompute, RemainDisplay, RemainUndo;
149     --  used to pilot SetRemaining from the WorkSession
150
151     enumeration PrintCount   is  ItemsByEntity, CountByItem,  ShortByItem, ListByItem, EntitiesByItem, CountSummary,
152                                     GeneralInfo, Mapping, ResultCount;
153
154 ---Purpose:
155 -- Lets you choose the manner in which you want to analyze an
156 -- IGES or STEP file. Your analysis can be either message-oriented or
157 -- entity-oriented. The specific values are as follows:
158 -- - ItemsByEntity is a sequential list of all
159 -- messages per entity of the defined type
160 -- - CountByItem is the number of entities of the defined
161 -- type, with their rank number per message
162 -- - ShortByItem is the number of entities of the defined
163 -- type, with their types per message; displays the rank
164 -- numbers of the first five entities of the defined type
165 -- per message
166 -- - ListByItem is the number of entities of the defined type
167 -- per message and the numbers of the entities
168 -- - EntitiesByItem is the number of entities of the
169 -- defined type, with their types, rank numbers and
170 -- Directory Entry numbers per message
171 -- - GeneralInfo is general information on transfer such as:
172 --    -      number of entities
173 --    -      number of roots
174 --    -      number of resulting Open CASCADE shapes
175 --    -      number of warnings and failures
176 --    -      CountSummary summary statistics for counters and signatures
177 --    -      ResultCount information that contains the number of
178 --       roots in the IGES file and the number of resulting Open CASCADE shapes.
179   --  -       Mapping of the IGES root entities to the resulting Open
180     --   CASCADE shape (including type and form of the IGES entity
181       -- and type of the resulting shape). 
182
183     enumeration PrintFail   is FailOnly, FailAndWarn;
184     ---Purpose: Indicates whether there will
185 -- be information on warnings as well as on failures. The
186 -- terms of this enumeration have the following semantics:
187 -- - IFSelect_FailOnly gives information on failures only
188 -- - IFSelect_FailAndWarn gives information on both
189 --   failures and warnings. used to pilot PrintCheckList
190     enumeration EditValue    is
191         Optional, Editable, EditProtected, EditComputed, EditRead, EditDynamic;
192     ---Purpose : Controls access on Values by an Editor
193     --           EditOptional  : normal access, in addition may be removed
194     --           Editable      : normal access, must be present
195     --           EditProtected : access must be validated
196     --           EditComputed  : why write it ?  it will be recomputed
197     --           EditRead      : no way to write it, only for read
198     --           EditDynamic   : not a field, only to be displayed
199
200         -- --    Instantiations    -- --
201
202     class TSeqOfDispatch  instantiates  Sequence from TCollection (Dispatch);
203     class TSeqOfSelection instantiates  Sequence from TCollection (Selection);
204     class HSeqOfSelection instantiates HSequence from TCollection
205         (Selection,TSeqOfSelection);
206
207     -- the followings sequences are used by ModelCopier (definition or result)
208     class SequenceOfGeneralModifier  instantiates Sequence from TCollection
209         (GeneralModifier);
210     class SequenceOfInterfaceModel   instantiates Sequence from TCollection
211         (InterfaceModel from Interface);
212     class SequenceOfAppliedModifiers instantiates Sequence from TCollection
213         (AppliedModifiers);
214
215         --   Package Methods   --
216
217     SaveSession (WS : any WorkSession; file : CString) returns Boolean;
218     ---Purpose : Saves the state of a WorkSession from IFSelect, by using a
219     --           SessionFile from IFSelect. Returns True if Done, False in
220     --           case of Error on Writing. <file> gives the name of the File
221     --           to be produced (this avoids to export the class SessionFile).
222
223     RestoreSession (WS : mutable WorkSession; file : CString) returns Boolean;
224     ---Purpose : Restore the state of a WorkSession from IFSelect, by using a
225     --           SessionFile from IFSelect. Returns True if Done, False in
226     --           case of Error on Writing. <file> gives the name of the File
227     --           to be used (this avoids to export the class SessionFile).
228
229 end IFSelect;