talloc: Add talloc_pooled_object
[Samba.git] / lib / talloc / doc / tutorial_introduction.dox
blob02777b9f774e85b6f14646103d585b9a74808dda
1 /**
2 @page libtalloc_tutorial The Tutorial
3 @section introduction Introduction
5 Talloc is a hierarchical, reference counted memory pool system with destructors.
6 It is built atop the C standard library and it defines a set of utility
7 functions that altogether simplifies allocation and deallocation of data,
8 especially for complex structures that contain many dynamically allocated
9 elements such as strings and arrays.
11 The main goals of this library are: removing the needs for creating a cleanup
12 function for every complex structure, providing a logical organization of
13 allocated memory blocks and reducing the likelihood of creating memory leaks in
14 long-running applications. All of this is achieved by allocating memory in a
15 hierarchical structure of talloc contexts such that deallocating one context
16 recursively frees all of its descendants as well.
18 @section main-features Main features
19 - An open source project
20 - A hierarchical memory model
21 - Natural projection of data structures into the memory space
22 - Simplifies memory management of large data structures
23 - Automatic execution of a destructor before the memory is freed
24 - Simulates a dynamic type system
25 - Implements a transparent memory pool
27 @section toc Table of contents:
29 @subpage libtalloc_context
31 @subpage libtalloc_stealing
33 @subpage libtalloc_dts
35 @subpage libtalloc_destructors
37 @subpage libtalloc_pools
39 @subpage libtalloc_debugging
41 @subpage libtalloc_bestpractices