7fd59977 |
1 | // File: NCollection_DefineBaseCollection.hxx |
2 | // Created: Tue Apr 9 18:53:36 2002 |
3 | // Author: Alexander KARTOMIN (akm) |
4 | // <a-kartomin@opencascade.com> |
5 | // |
6 | // Purpose: NCollection_BaseCollection is the base abstract class for |
7 | // all collection templates of this package. |
8 | // The set of collections is similar to that of TCollection. |
9 | // Also the methods of classes have mostly the same names for |
10 | // easy switch from TCollection <-> NCollection containers. |
11 | // |
12 | // NCollection is a nocdlpack, thus it is compiled without WOK. |
13 | // BaseCollection allows assigning the collections of different |
14 | // kinds (the items type being the same) with a few obvious |
15 | // exclusions - one can not assign any collection to the map |
16 | // having double data (two keys or a key plus value). Only the |
17 | // maps of the very same type may be assigned through operator= |
18 | // Said maps are: DoubleMap, |
19 | // DataMap, |
20 | // IndexedDataMap |
21 | // |
22 | // For the users needing control over the memory usage the |
23 | // allocators were added (see NCollection_BaseAllocator header) |
24 | // Others may forget it - BaseAllocator is used by default and |
25 | // then memory is managed through Standard::Allocate/::Free. |
26 | // |
27 | |
28 | #ifndef NCollection_DefineBaseCollection_HeaderFile |
29 | #define NCollection_DefineBaseCollection_HeaderFile |
30 | |
31 | #include <NCollection_BaseCollection.hxx> |
32 | |
33 | // *************************************** Template for BaseCollection class |
34 | |
35 | #define DEFINE_BASECOLLECTION(_ClassName_, TheItemType) \ |
36 | typedef NCollection_BaseCollection<TheItemType > _ClassName_; |
37 | |
38 | #endif |