0024157: Parallelization of assembly part of BO
[occt.git] / src / IFSelect / IFSelect_SelectSent.cdl
1 -- Created on: 1995-10-25
2 -- Created by: Christian CAILLET
3 -- Copyright (c) 1995-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 SelectSent  from IFSelect    inherits SelectExtract
24
25     ---Purpose : This class returns entities according sending to a file
26     --           Once a model has been loaded, further sendings are recorded
27     --           as status in the graph (for each value, a count of sendings)
28     --           
29     --           Hence, it is possible to query entities : sent ones (at least
30     --           once), non-sent (i.e. remaining) ones, duplicated ones, etc...
31     --           
32     --           This selection performs this query
33
34 uses AsciiString from TCollection, InterfaceModel, Graph, EntityIterator
35
36 is
37
38     Create (sentcount : Integer = 1; atleast : Boolean = Standard_True)
39         returns mutable SelectSent;
40     ---Purpose : Creates a SelectSent :
41     --           sentcount = 0 -> remaining (non-sent) entities
42     --           sentcount = 1, atleast = True (D) -> sent (at least once)
43     --           sentcount = 2, atleast = True -> duplicated (sent least twice)
44     --             etc...
45     --           sentcount = 1, atleast = False -> sent just once (non-dupl.d)
46     --           sentcount = 2, atleast = False -> sent just twice
47     --             etc...
48
49     SentCount (me) returns Integer;
50     ---Purpose : Returns the queried count of sending
51
52     AtLeast (me) returns Boolean;
53     ---Purpose : Returns the <atleast> status, True for sending at least the
54     --           sending count, False for sending exactly the sending count
55     --           Remark : if SentCount is 0, AtLeast is ignored
56
57     RootResult (me; G : Graph) returns EntityIterator  is redefined;
58     ---Purpose : Returns the list of selected entities. It is redefined to
59     --           work on the graph itself (not queried by sort)
60     --           
61     --           An entity is selected if its count complies to the query in
62     --           Direct Mode, rejected in Reversed Mode
63     --           
64     --           Query works on the sending count recorded as status in Graph
65
66     Sort (me; rank : Integer; ent : Transient; model : InterfaceModel)
67         returns Boolean;
68     ---Purpose : Returns always False because RootResult has done the work
69
70
71     ExtractLabel (me) returns AsciiString from TCollection;
72     ---Purpose : Returns a text defining the criterium : query :
73     --           SentCount = 0 -> "Remaining (non-sent) entities"
74     --           SentCount = 1, AtLeast = True  -> "Sent entities"
75     --           SentCount = 1, AtLeast = False -> "Sent once (no duplicated)"
76     --           SentCount = 2, AtLeast = True  -> "Sent several times entities"
77     --           SentCount = 2, AtLeast = False -> "Sent twice entities"
78     --           SentCount > 2, AtLeast = True  -> "Sent at least <count> times entities"
79     --           SentCount > 2, AtLeast = False -> "Sent <count> times entities"
80
81 fields
82
83     thecnt : Integer;
84     thelst : Boolean;
85
86 end SelectSent;