Main Page | Modules | Directories | File List

ememoa_mempool_unknown_size.h

00001 /*
00002 ** Copyright Cedric BAIL, 2006
00003 ** contact: cedric.bail@free.fr
00004 **
00005 */
00006 
00007 #ifndef     EMEMOA_MEMPOOL_UNKNOWN_SIZE_H__
00008 # define    EMEMOA_MEMPOOL_UNKNOWN_SIZE_H__
00009 
00010 /*
00011  * @file
00012  * @brief This routine provide memory pool manipulation for variable length structure, typicaly char*
00013  */
00014 
00015 #include    "config.h"
00016 #include    "ememoa_mempool.h"
00017 #include    "ememoa_mempool_struct.h"
00018 
00019 static const unsigned int   default_map_size_count[] =
00020   {
00021     16,     9,
00022     32,     8,
00023     64,     7,
00024     128,    6,
00025     256,    5,
00026     512,    5,
00027     1024,   5,
00028   };
00029 
00030 int ememoa_mempool_unknown_size_init (struct ememoa_mempool_unknown_size_s          *memory,
00031                       unsigned int                      map_items_count,
00032                       const unsigned int                    *map_size_count,
00033                       unsigned int                      options,
00034                       const struct ememoa_mempool_desc_s            *desc);
00035 
00036 int ememoa_mempool_unknown_size_clean (struct ememoa_mempool_unknown_size_s         *memory);
00037 
00038 int ememoa_mempool_unknown_size_free_all_objects (struct ememoa_mempool_unknown_size_s  *memory);
00039 
00040 int ememoa_mempool_unknown_size_push_object (struct ememoa_mempool_unknown_size_s       *memory,
00041                          void                       *ptr);
00042 
00043 void*   ememoa_mempool_unknown_size_pop_object (struct ememoa_mempool_unknown_size_s        *memory,
00044                         unsigned int                    size);
00045 
00046 #ifdef DEBUG
00047 void    ememoa_mempool_unknown_size_display_statistic (struct ememoa_mempool_unknown_size_s *memory);
00048 #else
00049 #define ememoa_mempool_unknown_size_display_statistic(Memory) ;
00050 #endif
00051 
00052 int ememoa_mempool_unknown_size_garbage_collect (struct ememoa_mempool_unknown_size_s   *memory);
00053 
00054 int ememoa_mempool_unknown_size_walk_over (struct ememoa_mempool_unknown_size_s     *memory,
00055                            ememoa_fctl                  fctl,
00056                            void                     *data);
00057 
00058 #endif      /* EMEMOA_MEMPOOL_UNKNOWN_SIZE_H__ */
00059 

Generated on Tue Mar 21 15:19:24 2006 for Ememoa by  doxygen 1.4.4