Changeset 2123 for pjproject


Ignore:
Timestamp:
Jul 12, 2008 9:31:34 AM (16 years ago)
Author:
bennylp
Message:

Ticket 559 (minor): Update the pool alternative API (pool_alt.h) with the latest pool API

Location:
pjproject/trunk/pjlib
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjlib/include/pj/pool_alt.h

    r2039 r2123  
    2323 
    2424 
    25 typedef struct pj_pool_t pj_pool_t; 
    26  
    27  
    2825/** 
    2926 * The type for function to receive callback from the pool when it is unable 
     
    3330 */ 
    3431typedef void pj_pool_callback(pj_pool_t *pool, pj_size_t size); 
     32 
     33struct pj_pool_mem 
     34{ 
     35    struct pj_pool_mem *next; 
     36 
     37    /* data follows immediately */ 
     38}; 
     39 
     40 
     41typedef struct pj_pool_t 
     42{ 
     43    struct pj_pool_mem *first_mem; 
     44    pj_pool_factory    *factory; 
     45    char                obj_name[32]; 
     46    pj_size_t           used_size; 
     47    pj_pool_callback   *cb; 
     48} pj_pool_t; 
     49 
     50 
    3551 
    3652/** 
     
    106122 
    107123 
     124#define PJ_POOL_ZALLOC_T(pool,type) \ 
     125            ((type*)pj_pool_zalloc(pool, sizeof(type))) 
     126#define PJ_POOL_ALLOC_T(pool,type) \ 
     127            ((type*)pj_pool_alloc(pool, sizeof(type))) 
     128#ifndef PJ_POOL_ALIGNMENT 
     129#   define PJ_POOL_ALIGNMENT    4 
     130#endif 
     131 
     132/** 
     133 * This structure declares pool factory interface. 
     134 */ 
     135typedef struct pj_pool_factory_policy 
     136{ 
     137    /** 
     138     * Allocate memory block (for use by pool). This function is called 
     139     * by memory pool to allocate memory block. 
     140     *  
     141     * @param factory   Pool factory. 
     142     * @param size      The size of memory block to allocate. 
     143     * 
     144     * @return          Memory block. 
     145     */ 
     146    void* (*block_alloc)(pj_pool_factory *factory, pj_size_t size); 
     147 
     148    /** 
     149     * Free memory block. 
     150     * 
     151     * @param factory   Pool factory. 
     152     * @param mem       Memory block previously allocated by block_alloc(). 
     153     * @param size      The size of memory block. 
     154     */ 
     155    void (*block_free)(pj_pool_factory *factory, void *mem, pj_size_t size); 
     156 
     157    /** 
     158     * Default callback to be called when memory allocation fails. 
     159     */ 
     160    pj_pool_callback *callback; 
     161 
     162    /** 
     163     * Option flags. 
     164     */ 
     165    unsigned flags; 
     166 
     167} pj_pool_factory_policy; 
     168 
    108169typedef struct pj_pool_factory 
    109170{ 
     171    pj_pool_factory_policy policy; 
    110172    int dummy; 
    111173} pj_pool_factory; 
     
    121183#define pj_pool_factory_dump(pf, detail) 
    122184 
    123  
    124185#endif  /* __PJ_POOL_ALT_H__ */ 
    125186 
  • pjproject/trunk/pjlib/src/pj/pool_buf.c

    r2039 r2123  
    8181                                         pj_size_t size) 
    8282{ 
     83#if PJ_HAS_POOL_ALT_API == 0 
    8384    struct creation_param param; 
    8485    long align_diff; 
     
    106107    return pj_pool_create_int(&stack_based_factory, name, size, 0,  
    107108                              pj_pool_factory_default_policy.callback); 
     109#else 
     110    PJ_UNUSED_ARG(buf); 
     111    return pj_pool_create(NULL, name, size, size, NULL); 
     112#endif 
    108113} 
    109114 
  • pjproject/trunk/pjlib/src/pj/pool_dbg.c

    r2039 r2123  
    2020#include <pj/string.h> 
    2121 
    22 #if PJ_POOL_DEBUG 
     22#if PJ_HAS_POOL_ALT_API 
    2323 
    2424#if PJ_HAS_MALLOC_H 
     
    4242 
    4343 
    44 struct pj_pool_mem 
    45 { 
    46     struct pj_pool_mem *next; 
    47  
    48     /* data follows immediately */ 
    49 }; 
    50  
    51  
    52 struct pj_pool_t 
    53 { 
    54     struct pj_pool_mem *first_mem; 
    55     pj_size_t           used_size; 
    56     pj_pool_callback   *cb; 
    57 }; 
    58  
    5944 
    6045int PJ_NO_MEMORY_EXCEPTION; 
    6146 
     47 
     48PJ_DEF(int) pj_NO_MEMORY_EXCEPTION() 
     49{ 
     50    return PJ_NO_MEMORY_EXCEPTION; 
     51} 
    6252 
    6353/* Create pool */ 
     
    7464    PJ_UNUSED_ARG(line); 
    7565    PJ_UNUSED_ARG(factory); 
    76     PJ_UNUSED_ARG(name); 
    7766    PJ_UNUSED_ARG(initial_size); 
    7867    PJ_UNUSED_ARG(increment_size); 
     
    8271        return NULL; 
    8372 
     73    if (name) { 
     74        pj_ansi_strncpy(pool->obj_name, name, sizeof(pool->obj_name)); 
     75        pool->obj_name[sizeof(pool->obj_name)-1] = '\0'; 
     76    } else { 
     77        strcpy(pool->obj_name, "altpool"); 
     78    } 
     79 
     80    pool->factory = NULL; 
    8481    pool->first_mem = NULL; 
    8582    pool->used_size = 0; 
     
    185182                                  pj_pool_t *pool, pj_size_t sz) 
    186183{ 
    187     return pj_pool_calloc_imp(file, line, pool, 1, sz); 
     184    return pj_pool_calloc_imp(file, line, pool, 1, sz);  
    188185} 
    189186 
    190187 
    191 #endif  /* PJ_POOL_DEBUG */ 
     188 
     189#endif  /* PJ_HAS_POOL_ALT_API */ 
Note: See TracChangeset for help on using the changeset viewer.