summaryrefslogtreecommitdiff
path: root/lib/talloc/doc/tutorial_introduction.dox
blob: 02777b9f774e85b6f14646103d585b9a74808dda (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/**
@page libtalloc_tutorial The Tutorial
@section introduction Introduction

Talloc is a hierarchical, reference counted memory pool system with destructors.
It is built atop the C standard library and it defines a set of utility
functions that altogether simplifies allocation and deallocation of data,
especially for complex structures that contain many dynamically allocated
elements such as strings and arrays.

The main goals of this library are: removing the needs for creating a cleanup
function for every complex structure, providing a logical organization of
allocated memory blocks and reducing the likelihood of creating memory leaks in
long-running applications. All of this is achieved by allocating memory in a
hierarchical structure of talloc contexts such that deallocating one context
recursively frees all of its descendants as well.

@section main-features Main features
- An open source project
- A hierarchical memory model
- Natural projection of data structures into the memory space
- Simplifies memory management of large data structures
- Automatic execution of a destructor before the memory is freed
- Simulates a dynamic type system
- Implements a transparent memory pool

@section toc Table of contents:

@subpage libtalloc_context

@subpage libtalloc_stealing

@subpage libtalloc_dts

@subpage libtalloc_destructors

@subpage libtalloc_pools

@subpage libtalloc_debugging

@subpage libtalloc_bestpractices

*/