dbd1a959b0442e52a7dc0f635be301dc01fe747a
[occt.git] / src / PCollection / PCollection.cdl
1 -- Created on: 1993-02-09
2 -- Created by: Mireille MERCIEN
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 package PCollection
18
19 uses 
20     Standard,
21     DBC,
22     MMgt,
23     PMMgt,
24     TCollection
25  
26 is
27           
28         enumeration AccessMode is
29             Read,
30             Update
31         end AccessMode;
32
33     
34         generic class HArray1, FieldOfHArray1 ;   
35
36         generic class HArray2, FieldOfHArray2 ;   
37
38         generic class HSingleList;
39             ---Purpose: The private generic class SingleList represents
40             -- a sequence of 0 or more linked items.
41
42          generic class HDoubleList;
43             ---Purpose: A List is a sequence of zero or more items
44             -- Each item has two pointers (backward,forward)
45
46
47         generic class HSequence,SeqNode,SeqExplorer;
48
49                 ---Purpose: Generic sequence of elements
50                 -- indexed by an integer in the range 1..N.
51
52         generic class HQueue,QueueNode,QueueIterator;
53
54                 ---Purpose: A queue is a sequence of items in which items 
55                 -- are added at one end (called the back of the queue) 
56                 -- and removed at the other end (calledthe front).
57                 -- The Queue is empty if there are no elements.
58
59         
60         generic class HSet,SetNode,SetIterator;
61  
62                 ---Purpose: A set is an unordered collection of items
63                 -- We can not have duplicated items in a given set.
64
65
66         generic class HStack,StackNode,StackIterator;
67
68                 ---Purpose: A stack is a list of items in which items are
69                 -- added and removed from the same end, called the 
70                 -- top of the stack.
71
72         generic class Hash;
73         
74         ---Purpose: Definition of hash function. This class is used by Map 
75         -- class and may be redefined by user.
76
77         generic class HDataMap,MapNode,Array,MapIterator;
78
79                 ---Purpose: A map is a Collection of bindings
80                 -- between two objects. One is considered as
81                 -- the key and a hash code value must be 
82                 -- computed for it.
83
84         generic class HDoubleMap,
85                       DoubleMapNode,
86                       ArrayDoubleMap,
87                       DoubleMapIterator;
88                 ---Purpose: A double map is a collection of bindings 
89                 -- between two objects.
90                 -- It can be retrieved either by its Key or its Item; 
91                 -- A hash code value must be computed for both.
92
93         generic class HIndexedDataMap,
94                       IndexedDataMapNode,
95                       ArrayIndexedDataMap;
96                 ---Purpose: The IndexedDataMap is a hashed set of objects of 
97                 -- Type Key, called Keys. Keys can be inserted in 
98                 -- the Map but not removed. The Map keeps the number 
99                 -- of keys called NbKeys. Each time a Key is inserted
100                 -- the Map tests if this Key is already in the Map. 
101                 -- If it is, nothing is done. If not, NbKeys is 
102                 -- incremented and it's value is bound to the Key 
103                 -- and called the Index.
104
105         deferred generic class Compare ;
106                                     
107              ---Purpose: Defines a comparison operator which can be used by
108              -- any ordered structure.   The  way to compare items
109              -- has  to be described  in  subclasses, which  inherit
110              -- from instantiations of Compare.
111
112         private deferred class PrivCompareOfInteger 
113                             instantiates Compare from PCollection(Integer); 
114
115         private deferred class PrivCompareOfReal 
116                             instantiates Compare from PCollection(Real); 
117
118         class CompareOfInteger;
119         
120         class CompareOfReal;
121                 
122         enumeration Side is Left , Right;
123
124         generic class HAVLSearchTree,
125                       AVLNode,
126                       AVLNodeStack, 
127                       AVLIterator ;
128
129         exception IsNotRoot inherits Failure;
130         exception IsNullTree inherits Failure;
131         exception IsContained inherits Failure;
132
133         generic class HArbitraryTree,
134                       SeqArbitraryTree,
135                       StackArbitraryTree, 
136                       ATPreOrderIterator ,
137                       ATPostOrderIterator, 
138                       ATInOrderIterator ;           
139
140         generic class HDirectedGraph,
141                       Vertex,
142                       Edge,
143                       SetOfVertex,
144                       SetOfEdge,
145                       StackOfVertex,
146                       QueueOfVertex,
147                       FrontEdgesIterator,
148                       BackEdgesIterator,
149                       DepthFirstIterator,
150                       BreadthFirstIterator,
151                       AdjacentVerticesIterator,
152                       VerticesIterator,
153                       RootsIterator,
154                       LeavesIterator,
155                       EdgesIterator;
156
157         class HAsciiString;
158
159         class HExtendedString;
160         
161         
162 end PCollection;
163
164