0025545: TopLoc_Location::Transformation() provokes data races
[occt.git] / src / TopLoc / TopLoc_SListOfItemLocation.cdl
1 -- Created on: 1993-02-26
2 -- Created by: Remi LEQUETTE
3 -- Copyright (c) 1993-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 private class SListOfItemLocation from TopLoc
18
19         ---Purpose: An SListOfItemLocation is a LISP like list of Items.
20         -- An SListOfItemLocation is :
21         --   . Empty.
22         --   . Or it has a Value and a  Tail  which is an other SListOfItemLocation. 
23         -- 
24         -- The Tail of an empty list is an empty list.
25         -- SListOfItemLocation are  shared.  It  means   that they  can  be
26         -- modified through other lists.
27         -- SListOfItemLocation may  be used  as Iterators. They  have Next,
28         -- More, and value methods. To iterate on the content
29         -- of the list S just do.
30         -- 
31         -- SListOfItemLocation Iterator;
32         -- for (Iterator = S; Iterator.More(); Iterator.Next())
33         --   X = Iterator.Value();
34
35 uses
36     SListNodeOfItemLocation from TopLoc,
37     ItemLocation            from TopLoc
38     
39 raises
40     NoSuchObject from Standard
41
42 is
43     Create returns SListOfItemLocation from TopLoc;
44         ---Purpose: Creates an empty List.
45         ---C++: inline
46         
47     Create(anItem : ItemLocation from TopLoc; aTail : SListOfItemLocation from TopLoc)
48     returns SListOfItemLocation from TopLoc;
49         ---Purpose: Creates a List with <anItem> as value  and <aTail> as tail.
50         
51     Create(Other : SListOfItemLocation from TopLoc)
52     returns SListOfItemLocation from TopLoc;
53         ---Purpose: Creates a list from an other one. The lists  are shared. 
54         ---C++: inline
55         
56     Assign(me : in out; Other : SListOfItemLocation from TopLoc)
57     returns SListOfItemLocation from TopLoc
58         ---Level: Public
59         ---Purpose: Sets  a list  from  an  other  one. The  lists are
60         -- shared. The list itself is returned.
61         ---C++: alias operator =
62         ---C++: return &
63     is static;
64     
65     IsEmpty(me) returns Boolean
66         ---Level: Public
67         ---C++: inline
68     is static;
69     
70     Clear(me : in out)
71         ---Level: Public
72         ---Purpose: Sets the list to be empty.
73         ---C++: alias ~
74         ---C++: inline
75     is static;
76         
77     Value(me) returns any ItemLocation from TopLoc
78         ---Level: Public
79         ---Purpose: Returns the current value of the list. An error is
80         -- raised  if the list is empty.
81         ---C++: return const &
82     raises
83         NoSuchObject from Standard
84     is static;
85     
86     Tail(me) returns SListOfItemLocation from TopLoc
87         ---Level: Public
88         ---Purpose: Returns the current tail of  the list. On an empty
89         -- list the tail is the list itself.
90         ---C++: return const &
91     is static;
92     
93     Construct(me : in out; anItem : ItemLocation from TopLoc)  
94         ---Level: Public
95         ---Purpose: Replaces the list by a list with <anItem> as Value
96         -- and the  list <me> as  tail.
97         ---C++: inline
98     is static;
99     
100     ToTail(me :  in out)
101         ---Level: Public
102         ---Purpose: Replaces the list <me> by its tail.
103         ---C++: inline
104     is static;
105     
106     More(me) returns Boolean
107         ---Level: Public
108         ---Purpose: Returns True if the iterator  has a current value.
109         -- This is !IsEmpty()
110         ---C++: inline
111     is static;
112     
113     Next(me : in out)
114         ---Level: Public
115         ---Purpose: Moves the iterator to the next object in the list.
116         -- If the iterator is empty it will  stay empty. This is ToTail()
117         ---C++: inline
118     is static;
119     
120 fields
121     myNode : SListNodeOfItemLocation from TopLoc;
122
123 end SListOfItemLocation;