docs/Writerside/topics/collection.h.md

branch
docs/3.1
changeset 1141
a06a2d27c043
child 1143
0559812df10c
equal deleted inserted replaced
1140:88a9ee79c102 1141:a06a2d27c043
1 # collection.h
2
3 Collections in UCX 3 have several common features.
4 If you want to implement an own collection data type that uses the same features, you can use the
5 `CX_COLLECTION_BASE` macro at the beginning of your struct to roll out all members a usual UCX collection has.
6 ```c
7 struct my_fancy_collection_s {
8 CX_COLLECTION_BASE;
9 struct my_collection_data_s *data;
10 };
11 ```
12 Based on this structure, this header provides some convenience macros for invoking the destructor functions
13 that are part of the basic collection members.
14 The idea of having destructor functions within a collection is that you can destroy the collection _and_ the
15 contents with one single function call.
16 When you are implementing a collection, you are responsible for invoking the destructors at the right places, e.g.
17 when removing (and deleting) elements in the collection, clearing the collection, or - the most prominent case -
18 destroying the collection.
19
20 You can always look at the UCX list and map implementations if you need some inspiration.

mercurial