2a4c45eb7eada7fd4aa420026caf4552fa7852e3
[rrq/rrqmisc.git] / vector / mainpage.dox
1 /** \mainpage rrq C hacks: Vectors And Such
2
3 This software is an implementation platform for vector based
4 representations.
5
6 - \ref itemkeyfun is an implementation of an abstracted type notion
7   that is focussed on what the \ref hashvector needs in terms of
8   callbacks for its separation between the hash management
9   functionality and the contained items. This name is choosen so as to
10   avoid some connotations common to the term "type".
11
12 - \ref array and \ref vector are two implementations of an abstract
13   array notion using an indexing tree of 16 and 256 pointers
14   respectively. The indexing tree is balanced into levels matching to
15   the needs of the vector size. When the size of a vector is changed
16   then indexing levels are added or removed as needed. However
17   indexing pages are allocated on a needs basis. The level 0 indexing
18   pages hold the actual data as void* pointers
19
20 - \ref hasharray and \ref hashvector are two implementations of an
21   abstract hashtable using \ref array and \ref vector as backing store
22   respectively. It also uses the \ref itemkeyfn type abstraction of
23   items being compunded as pairs of key and payload. This separates
24   the hashing code from the type abstraction.
25
26 \subsubsection s0 itemkeyfun actualizations
27
28 - \ref integeritem is an plain actualization of an itemkeyfun record
29   for integer items other than 0 and 1, i.e. where the void* slots of
30   a tuple are reinterpreted as 64-bit integers rather than "item
31   pointers".
32
33 \note Note that a hashvector cannot directly contain integer items
34   since 0 and 1 are treated as indicating unused and holed slots.
35
36 - stringitem is a plain actualization of an itemkeyfun record for
37   null-terminated character strings.
38
39 - tupleschema is a specialization of the itemkeyfun type scheme
40   intended for tuple items that are arrays of items that are further
41   type via itemkeyfun records. A tupleschema actualization includes
42   the applicable arity and an array of pointers to itemkeyfun
43   actualizations that declare the itemkeyfun types of the parts
44   (columns).
45
46 */