0024157: Parallelization of assembly part of BO
[occt.git] / src / IFSelect / IFSelect_ContextWrite.cdl
1 -- Created on: 1996-01-26
2 -- Created by: Christian CAILLET
3 -- Copyright (c) 1996-1999 Matra Datavision
4 -- Copyright (c) 1999-2012 OPEN CASCADE SAS
5 --
6 -- The content of this file is subject to the Open CASCADE Technology Public
7 -- License Version 6.5 (the "License"). You may not use the content of this file
8 -- except in compliance with the License. Please obtain a copy of the License
9 -- at http://www.opencascade.org and read it completely before using this file.
10 --
11 -- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
12 -- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
13 --
14 -- The Original Code and all software distributed under the License is
15 -- distributed on an "AS IS" basis, without warranty of any kind, and the
16 -- Initial Developer hereby disclaims all such warranties, including without
17 -- limitation, any warranties of merchantability, fitness for a particular
18 -- purpose or non-infringement. Please see the License for the specific terms
19 -- and conditions governing the rights and limitations under the License.
20
21
22
23 class ContextWrite    from IFSelect
24
25     ---Purpose : This class gathers various informations used by File Modifiers
26     --           apart from the writer object, which is specific of the norm
27     --           and of the physical format
28     --           
29     --           These informations are controlled by an object AppliedModifiers
30     --           (if it is not defined, no modification is allowed on writing)
31     --           
32     --           Furthermore, in return, ContextModif can record Checks, either
33     --           one for all, or one for each Entity. It supports trace too.
34
35 uses Transient, CString, AsciiString from TCollection,
36      InterfaceModel, EntityIterator, Graph, HGraph,
37      Protocol from Interface, Check, CheckIterator, GeneralModifier,
38      AppliedModifiers
39
40 raises NoSuchObject
41
42 is
43
44     Create (model : InterfaceModel; proto : Protocol;
45             applieds : mutable AppliedModifiers;  filename : CString)
46         returns ContextWrite;
47     ---Purpose : Prepares a ContextWrite with these informations :
48     --           - the model which is to be written
49     --           - the protocol to be used
50     --           - the filename
51     --           - an object AppliedModifiers to work. It gives a list of
52     --             FileModifiers to be ran, and for each one it can give
53     --             a restricted list of entities (in the model), else all
54     --             the model is considered
55
56     Create (hgraph : HGraph; proto : Protocol;
57             applieds : mutable AppliedModifiers;  filename : CString)
58         returns ContextWrite;
59     ---Purpose : Same as above but with an already computed Graph
60
61     Model (me) returns InterfaceModel;
62     ---Purpose : Returns the Model
63
64     Protocol (me) returns Protocol;
65     ---Purpose : Returns the Protocol;
66
67     FileName (me) returns CString;
68     ---Purpose : Returns the File Name
69
70     AppliedModifiers (me) returns mutable AppliedModifiers;
71     ---Purpose : Returns the object AppliedModifiers
72
73     Graph (me : in out) returns Graph;
74     ---Purpose : Returns the Graph, either given when created, else created
75     --           the first time it is queried
76     ---C++ : return const &
77
78
79         --  --    Control when running    --  --
80
81     NbModifiers (me) returns Integer;
82     ---Purpose : Returns the count of recorded File Modifiers
83
84     SetModifier (me : in out; numod : Integer) returns Boolean;
85     ---Purpose : Sets active the File Modifier n0 <numod>
86     --           Then, it prepares the list of entities to consider, if any
87     --           Returns False if <numod> out of range
88
89     FileModifier (me) returns mutable GeneralModifier;
90     ---Purpose : Returns the currently active File Modifier. Cast to be done
91     --           Null if not properly set : must be test IsNull after casting
92
93     IsForNone (me) returns Boolean;
94     ---Purpose : Returns True if no modifier is currently set
95
96     IsForAll  (me) returns Boolean;
97     ---Purpose : Returns True if the current modifier is to be applied to
98     --           the whole model. Else, a restricted list of selected entities
99     --           is defined, it can be exploited by the File Modifier
100
101     NbEntities (me) returns Integer;
102     ---Purpose : Returns the total count of selected entities
103
104     Start (me : in out);
105     ---Purpose : Starts an iteration on selected items. It takes into account
106     --           IsForAll/IsForNone, by really iterating on all selected items.
107
108     More (me) returns Boolean;
109     ---Purpose : Returns True until the iteration has finished
110
111     Next (me : in out);
112     ---Purpose : Advances the iteration
113
114     Value (me) returns  Transient  raises NoSuchObject;
115     ---Purpose : Returns the current selected entity in the model
116
117
118         -- --    Trace and Check    -- --
119
120     AddCheck (me : in out; check : Check)  is static;
121     ---Purpose : Adds a Check to the CheckList. If it is empty, nothing is done
122     --           If it concerns an Entity from the Model (by SetEntity)
123     --           to which another Check is attached, it is merged to it.
124     --           Else, it is added or merged as to GlobalCheck.
125
126     AddWarning (me : in out; start : Transient; mess : CString; orig : CString = "");
127     ---Purpose : Adds a Warning Message for an Entity from the Model
128     --           If <start> is not an Entity from the model (e.g. the
129     --           model itself) this message is added to Global Check.
130
131     AddFail    (me : in out; start : Transient; mess : CString; orig : CString = "");
132     ---Purpose : Adds a Fail Message for an Entity from the Model
133     --           If <start> is not an Entity from the model (e.g. the
134     --           model itself) this message is added to Global Check.
135
136     CCheck (me : in out; num : Integer = 0) returns Check;
137     ---Purpose : Returns a Check given an Entity number (in the Model)
138     --           by default a Global Check. Creates it the first time.
139     --           It can then be acknowledged on the spot, in condition that the
140     --           caller works by reference ("Interface_Check& check = ...")
141
142     CCheck (me : in out; start : Transient) returns Check;
143     ---Purpose : Returns a Check attached to an Entity from the Model
144     --           It can then be acknowledged on the spot, in condition that the
145     --           caller works by reference ("Interface_Check& check = ...")
146
147     CheckList (me) returns CheckIterator  is static;
148     ---Purpose : Returns the complete CheckList
149
150 fields
151
152     themodel : InterfaceModel;
153     theproto : Protocol;
154     thefile  : AsciiString;
155     theapply : AppliedModifiers;
156     thehgraf : HGraph;
157     thecheck : CheckIterator;
158     thenumod : Integer;
159     thenbent : Integer;
160     thecurr  : Integer;
161     themodif : GeneralModifier;
162
163 end ContextWrite;