Home | History | Annotate | Download | only in oscl_html
      1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
      2 <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
      3 <title>OsclMemPoolResizableAllocator class Reference</title>
      4 <link href="doxygen.css" rel="stylesheet" type="text/css">
      5 </head><body>
      6 <!-- Generated by Doxygen 1.2.18 -->
      7 <center>
      8 <a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="modules.html">Modules</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="annotated.html">Data Structures</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Data Fields</a> &nbsp; <a class="qindex" href="globals.html">Globals</a> &nbsp; </center>
      9 <hr><h1>OsclMemPoolResizableAllocator Class Reference<br>
     10 <small>
     11 [<a class="el" href="group__osclmemory.html">OSCL Memory</a>]</small>
     12 </h1><code>#include &lt;<a class="el" href="oscl__mem__mempool_8h-source.html">oscl_mem_mempool.h</a>&gt;</code>
     13 <p>
     14 <p>Inheritance diagram for OsclMemPoolResizableAllocator:
     15 <p><center><img src="classOsclMemPoolResizableAllocator.png" usemap="#OsclMemPoolResizableAllocator_map" border="0" alt=""></center>
     16 <map name="OsclMemPoolResizableAllocator_map">
     17 <area href="classOscl__DefAlloc.html" alt="Oscl_DefAlloc" shape="rect" coords="102,56,297,80">
     18 <area href="classOscl__Alloc.html" alt="Oscl_Alloc" shape="rect" coords="0,0,195,24">
     19 <area href="classOscl__Dealloc.html" alt="Oscl_Dealloc" shape="rect" coords="205,0,400,24">
     20 </map>
     21 <table border=0 cellpadding=0 cellspacing=0>
     22 <tr><td></td></tr>
     23 <tr><td colspan=2><br><h2>Public Methods</h2></td></tr>
     24 <tr><td nowrap align=right valign=top>OSCL_IMPORT_REF&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocator.html#a0">OsclMemPoolResizableAllocator</a> (uint32 aMemPoolBufferSize, uint32 aMemPoolBufferNumLimit=0, uint32 aExpectedNumBlocksPerBuffer=0, <a class="el" href="classOscl__DefAlloc.html">Oscl_DefAlloc</a> *gen_alloc=NULL)</td></tr>
     25 <tr><td nowrap align=right valign=top>virtual OSCL_IMPORT_REF void&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocator.html#a1">enablenullpointerreturn</a> ()</td></tr>
     26 <tr><td nowrap align=right valign=top>virtual OSCL_IMPORT_REF <a class="el" href="group__osclbase.html#a25">OsclAny</a> *&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocator.html#a2">allocate</a> (const uint32 aNumBytes)</td></tr>
     27 <tr><td nowrap align=right valign=top>virtual OSCL_IMPORT_REF void&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocator.html#a3">deallocate</a> (<a class="el" href="group__osclbase.html#a25">OsclAny</a> *aPtr)</td></tr>
     28 <tr><td nowrap align=right valign=top>virtual OSCL_IMPORT_REF bool&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocator.html#a4">trim</a> (<a class="el" href="group__osclbase.html#a25">OsclAny</a> *aPtr, uint32 aBytesToFree)</td></tr>
     29 <tr><td nowrap align=right valign=top>OSCL_IMPORT_REF uint32&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocator.html#a5">getBufferSize</a> () const</td></tr>
     30 <tr><td nowrap align=right valign=top>virtual OSCL_IMPORT_REF uint32&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocator.html#a6">getAllocatedSize</a> () const</td></tr>
     31 <tr><td nowrap align=right valign=top>virtual OSCL_IMPORT_REF uint32&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocator.html#a7">getAvailableSize</a> () const</td></tr>
     32 <tr><td nowrap align=right valign=top>virtual OSCL_IMPORT_REF uint32&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocator.html#a8">getLargestContiguousFreeBlockSize</a> () const</td></tr>
     33 <tr><td nowrap align=right valign=top>virtual OSCL_IMPORT_REF bool&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocator.html#a9">setMaxSzForNewMemPoolBuffer</a> (uint32 aMaxNewMemPoolBufferSz)</td></tr>
     34 <tr><td nowrap align=right valign=top>virtual OSCL_IMPORT_REF void&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocator.html#a10">notifyfreeblockavailable</a> (<a class="el" href="classOsclMemPoolResizableAllocatorObserver.html">OsclMemPoolResizableAllocatorObserver</a> &amp;aObserver, uint32 aRequestedSize=0, <a class="el" href="group__osclbase.html#a25">OsclAny</a> *aContextData=NULL)</td></tr>
     35 <tr><td nowrap align=right valign=top>virtual OSCL_IMPORT_REF void&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocator.html#a11">CancelFreeChunkAvailableCallback</a> ()</td></tr>
     36 <tr><td nowrap align=right valign=top>virtual OSCL_IMPORT_REF void&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocator.html#a12">notifyfreememoryavailable</a> (<a class="el" href="classOsclMemPoolResizableAllocatorMemoryObserver.html">OsclMemPoolResizableAllocatorMemoryObserver</a> &amp;aObserver, uint32 aRequestedSize=0, <a class="el" href="group__osclbase.html#a25">OsclAny</a> *aContextData=NULL)</td></tr>
     37 <tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocator.html#a13">CancelFreeMemoryAvailableCallback</a> ()</td></tr>
     38 <tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocator.html#a14">addRef</a> ()</td></tr>
     39 <tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocator.html#a15">removeRef</a> ()</td></tr>
     40 <tr><td colspan=2><br><h2>Protected Methods</h2></td></tr>
     41 <tr><td nowrap align=right valign=top>virtual OSCL_IMPORT_REF&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocator.html#b0">~OsclMemPoolResizableAllocator</a> ()</td></tr>
     42 <tr><td nowrap align=right valign=top><a class="el" href="structOsclMemPoolResizableAllocator_1_1MemPoolBufferInfo.html">MemPoolBufferInfo</a> *&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocator.html#b1">addnewmempoolbuffer</a> (uint32 aBufferSize)</td></tr>
     43 <tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocator.html#b2">destroyallmempoolbuffers</a> ()</td></tr>
     44 <tr><td nowrap align=right valign=top><a class="el" href="structOsclMemPoolResizableAllocator_1_1MemPoolBlockInfo.html">MemPoolBlockInfo</a> *&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocator.html#b3">findfreeblock</a> (uint32 aBlockSize)</td></tr>
     45 <tr><td nowrap align=right valign=top><a class="el" href="group__osclbase.html#a25">OsclAny</a> *&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocator.html#b4">allocateblock</a> (<a class="el" href="structOsclMemPoolResizableAllocator_1_1MemPoolBlockInfo.html">MemPoolBlockInfo</a> &amp;aBlockPtr, uint32 aNumBytes)</td></tr>
     46 <tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocator.html#b5">deallocateblock</a> (<a class="el" href="structOsclMemPoolResizableAllocator_1_1MemPoolBlockInfo.html">MemPoolBlockInfo</a> &amp;aBlockPtr)</td></tr>
     47 <tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocator.html#b6">validateblock</a> (<a class="el" href="group__osclbase.html#a25">OsclAny</a> *aBlockBufPtr)</td></tr>
     48 <tr><td nowrap align=right valign=top>uint32&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocator.html#b7">getMemPoolBufferSize</a> (<a class="el" href="structOsclMemPoolResizableAllocator_1_1MemPoolBufferInfo.html">MemPoolBufferInfo</a> *aBufferInfo) const</td></tr>
     49 <tr><td nowrap align=right valign=top>uint32&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocator.html#b8">getMemPoolBufferAllocatedSize</a> (<a class="el" href="structOsclMemPoolResizableAllocator_1_1MemPoolBufferInfo.html">MemPoolBufferInfo</a> *aBufferInfo) const</td></tr>
     50 <tr><td nowrap align=right valign=top>uint32&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocator.html#b9">memoryPoolBufferMgmtOverhead</a> () const</td></tr>
     51 <tr><td colspan=2><br><h2>Protected Attributes</h2></td></tr>
     52 <tr><td nowrap align=right valign=top>uint32&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocator.html#n0">iMemPoolBufferSize</a></td></tr>
     53 <tr><td nowrap align=right valign=top>uint32&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocator.html#n1">iMemPoolBufferNumLimit</a></td></tr>
     54 <tr><td nowrap align=right valign=top>uint32&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocator.html#n2">iExpectedNumBlocksPerBuffer</a></td></tr>
     55 <tr><td nowrap align=right valign=top>uint32&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocator.html#n3">iMaxNewMemPoolBufferSz</a></td></tr>
     56 <tr><td nowrap align=right valign=top><a class="el" href="classOscl__DefAlloc.html">Oscl_DefAlloc</a> *&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocator.html#n4">iMemPoolBufferAllocator</a></td></tr>
     57 <tr><td nowrap align=right valign=top><a class="el" href="classOscl__Vector.html">Oscl_Vector</a>&lt; <a class="el" href="structOsclMemPoolResizableAllocator_1_1MemPoolBufferInfo.html">MemPoolBufferInfo</a> *,<br>
     58  <a class="el" href="classOsclMemAllocator.html">OsclMemAllocator</a> &gt;&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocator.html#n5">iMemPoolBufferList</a></td></tr>
     59 <tr><td nowrap align=right valign=top>uint32&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocator.html#n6">iBufferInfoAlignedSize</a></td></tr>
     60 <tr><td nowrap align=right valign=top>uint32&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocator.html#n7">iBlockInfoAlignedSize</a></td></tr>
     61 <tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocator.html#n8">iCheckNextAvailable</a></td></tr>
     62 <tr><td nowrap align=right valign=top>uint32&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocator.html#n9">iRequestedNextAvailableSize</a></td></tr>
     63 <tr><td nowrap align=right valign=top><a class="el" href="group__osclbase.html#a25">OsclAny</a> *&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocator.html#n10">iNextAvailableContextData</a></td></tr>
     64 <tr><td nowrap align=right valign=top><a class="el" href="classOsclMemPoolResizableAllocatorObserver.html">OsclMemPoolResizableAllocatorObserver</a> *&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocator.html#n11">iObserver</a></td></tr>
     65 <tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocator.html#n12">iCheckFreeMemoryAvailable</a></td></tr>
     66 <tr><td nowrap align=right valign=top>uint32&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocator.html#n13">iRequestedAvailableFreeMemSize</a></td></tr>
     67 <tr><td nowrap align=right valign=top><a class="el" href="group__osclbase.html#a25">OsclAny</a> *&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocator.html#n14">iFreeMemContextData</a></td></tr>
     68 <tr><td nowrap align=right valign=top><a class="el" href="classOsclMemPoolResizableAllocatorMemoryObserver.html">OsclMemPoolResizableAllocatorMemoryObserver</a> *&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocator.html#n15">iFreeMemPoolObserver</a></td></tr>
     69 <tr><td nowrap align=right valign=top>int32&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocator.html#n16">iRefCount</a></td></tr>
     70 <tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocator.html#n17">iEnableNullPtrReturn</a></td></tr>
     71 </table>
     72 <hr><h2>Constructor &amp; Destructor Documentation</h2>
     73 <a name="a0" doxytag="OsclMemPoolResizableAllocator::OsclMemPoolResizableAllocator"></a><p>
     74 <table width="100%" cellpadding="2" cellspacing="0" border="0">
     75   <tr>
     76     <td class="md">
     77       <table cellpadding="0" cellspacing="0" border="0">
     78         <tr>
     79           <td class="md" nowrap valign="top"> OSCL_IMPORT_REF OsclMemPoolResizableAllocator::OsclMemPoolResizableAllocator </td>
     80           <td class="md" valign="top">(&nbsp;</td>
     81           <td class="md" nowrap valign="top">uint32&nbsp;</td>
     82           <td class="mdname" nowrap>&nbsp; <em>aMemPoolBufferSize</em>, </td>
     83         </tr>
     84         <tr>
     85           <td></td>
     86           <td></td>
     87           <td class="md" nowrap>uint32&nbsp;</td>
     88           <td class="mdname" nowrap>&nbsp; <em>aMemPoolBufferNumLimit</em> = 0, </td>
     89         </tr>
     90         <tr>
     91           <td></td>
     92           <td></td>
     93           <td class="md" nowrap>uint32&nbsp;</td>
     94           <td class="mdname" nowrap>&nbsp; <em>aExpectedNumBlocksPerBuffer</em> = 0, </td>
     95         </tr>
     96         <tr>
     97           <td></td>
     98           <td></td>
     99           <td class="md" nowrap><a class="el" href="classOscl__DefAlloc.html">Oscl_DefAlloc</a> *&nbsp;</td>
    100           <td class="mdname" nowrap>&nbsp; <em>gen_alloc</em> = NULL</td>
    101         </tr>
    102         <tr>
    103           <td></td>
    104           <td class="md">)&nbsp;</td>
    105           <td class="md" colspan="2"></td>
    106         </tr>
    107 
    108       </table>
    109     </td>
    110   </tr>
    111 </table>
    112 <table cellspacing=5 cellpadding=0 border=0>
    113   <tr>
    114     <td>
    115       &nbsp;
    116     </td>
    117     <td>
    118 
    119 <p>
    120 Create the memory pool allocator with resizing functionality. The size of the memory pool buffer needs to be passed-in. The maximum number of memory pool buffers, expected number of blocks in a memory pool buffer, and outside allocator are optional. This API throws an exception when the memory allocation for the pool buffer fails. If memory pool buffer number limit parameter is not set, the assumption is that there is no limit and memory pool will grow as needed. If the expected number of blocks is not set or not known, the memory pool will use a default value to 10 to allocate extra memory for the block info header.
    121 <p>
    122 <dl compact><dt><b>Returns: </b></dt><dd>
    123 void </dl>    </td>
    124   </tr>
    125 </table>
    126 <a name="b0" doxytag="OsclMemPoolResizableAllocator::~OsclMemPoolResizableAllocator"></a><p>
    127 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    128   <tr>
    129     <td class="md">
    130       <table cellpadding="0" cellspacing="0" border="0">
    131         <tr>
    132           <td class="md" nowrap valign="top"> virtual OSCL_IMPORT_REF OsclMemPoolResizableAllocator::~OsclMemPoolResizableAllocator </td>
    133           <td class="md" valign="top">(&nbsp;</td>
    134           <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
    135           <td class="md" valign="top">)&nbsp;</td>
    136           <td class="md" nowrap><code> [protected, virtual]</code></td>
    137         </tr>
    138 
    139       </table>
    140     </td>
    141   </tr>
    142 </table>
    143 <table cellspacing=5 cellpadding=0 border=0>
    144   <tr>
    145     <td>
    146       &nbsp;
    147     </td>
    148     <td>
    149 
    150 <p>
    151 The destructor for the memory pool. Should not be called directly. Use <a class="el" href="classOsclMemPoolResizableAllocator.html#a15">removeRef()</a> instead.     </td>
    152   </tr>
    153 </table>
    154 <hr><h2>Member Function Documentation</h2>
    155 <a name="b1" doxytag="OsclMemPoolResizableAllocator::addnewmempoolbuffer"></a><p>
    156 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    157   <tr>
    158     <td class="md">
    159       <table cellpadding="0" cellspacing="0" border="0">
    160         <tr>
    161           <td class="md" nowrap valign="top"> <a class="el" href="structOsclMemPoolResizableAllocator_1_1MemPoolBufferInfo.html">MemPoolBufferInfo</a>* OsclMemPoolResizableAllocator::addnewmempoolbuffer </td>
    162           <td class="md" valign="top">(&nbsp;</td>
    163           <td class="md" nowrap valign="top">uint32&nbsp;</td>
    164           <td class="mdname1" valign="top" nowrap>&nbsp; <em>aBufferSize</em>          </td>
    165           <td class="md" valign="top">)&nbsp;</td>
    166           <td class="md" nowrap><code> [protected]</code></td>
    167         </tr>
    168 
    169       </table>
    170     </td>
    171   </tr>
    172 </table>
    173 <table cellspacing=5 cellpadding=0 border=0>
    174   <tr>
    175     <td>
    176       &nbsp;
    177     </td>
    178     <td>
    179 
    180 <p>
    181     </td>
    182   </tr>
    183 </table>
    184 <a name="a14" doxytag="OsclMemPoolResizableAllocator::addRef"></a><p>
    185 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    186   <tr>
    187     <td class="md">
    188       <table cellpadding="0" cellspacing="0" border="0">
    189         <tr>
    190           <td class="md" nowrap valign="top"> OSCL_IMPORT_REF void OsclMemPoolResizableAllocator::addRef </td>
    191           <td class="md" valign="top">(&nbsp;</td>
    192           <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
    193           <td class="md" valign="top">)&nbsp;</td>
    194           <td class="md" nowrap></td>
    195         </tr>
    196 
    197       </table>
    198     </td>
    199   </tr>
    200 </table>
    201 <table cellspacing=5 cellpadding=0 border=0>
    202   <tr>
    203     <td>
    204       &nbsp;
    205     </td>
    206     <td>
    207 
    208 <p>
    209 Increments the reference count for this memory pool allocator
    210 <p>
    211 <dl compact><dt><b>Returns: </b></dt><dd>
    212 void </dl>    </td>
    213   </tr>
    214 </table>
    215 <a name="a2" doxytag="OsclMemPoolResizableAllocator::allocate"></a><p>
    216 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    217   <tr>
    218     <td class="md">
    219       <table cellpadding="0" cellspacing="0" border="0">
    220         <tr>
    221           <td class="md" nowrap valign="top"> virtual OSCL_IMPORT_REF <a class="el" href="group__osclbase.html#a25">OsclAny</a>* OsclMemPoolResizableAllocator::allocate </td>
    222           <td class="md" valign="top">(&nbsp;</td>
    223           <td class="md" nowrap valign="top">const uint32&nbsp;</td>
    224           <td class="mdname1" valign="top" nowrap>&nbsp; <em>aNumBytes</em>          </td>
    225           <td class="md" valign="top">)&nbsp;</td>
    226           <td class="md" nowrap><code> [virtual]</code></td>
    227         </tr>
    228 
    229       </table>
    230     </td>
    231   </tr>
    232 </table>
    233 <table cellspacing=5 cellpadding=0 border=0>
    234   <tr>
    235     <td>
    236       &nbsp;
    237     </td>
    238     <td>
    239 
    240 <p>
    241 Allocates a block from the memory pool that is at least in size requested This API throws an exception if there isn't enough memory (if "enablenullpointerreturn" has not been called) for the requested amount in the pool or if the extra pool buffer cannot be allocated.
    242 <p>
    243 <dl compact><dt><b>Returns: </b></dt><dd>
    244 Pointer to memory buffer from memory pool </dl>
    245 <p>
    246 Implements <a class="el" href="classOscl__DefAlloc.html#a0">Oscl_DefAlloc</a>.    </td>
    247   </tr>
    248 </table>
    249 <a name="b4" doxytag="OsclMemPoolResizableAllocator::allocateblock"></a><p>
    250 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    251   <tr>
    252     <td class="md">
    253       <table cellpadding="0" cellspacing="0" border="0">
    254         <tr>
    255           <td class="md" nowrap valign="top"> <a class="el" href="group__osclbase.html#a25">OsclAny</a>* OsclMemPoolResizableAllocator::allocateblock </td>
    256           <td class="md" valign="top">(&nbsp;</td>
    257           <td class="md" nowrap valign="top"><a class="el" href="structOsclMemPoolResizableAllocator_1_1MemPoolBlockInfo.html">MemPoolBlockInfo</a> &amp;&nbsp;</td>
    258           <td class="mdname" nowrap>&nbsp; <em>aBlockPtr</em>, </td>
    259         </tr>
    260         <tr>
    261           <td></td>
    262           <td></td>
    263           <td class="md" nowrap>uint32&nbsp;</td>
    264           <td class="mdname" nowrap>&nbsp; <em>aNumBytes</em></td>
    265         </tr>
    266         <tr>
    267           <td></td>
    268           <td class="md">)&nbsp;</td>
    269           <td class="md" colspan="2"><code> [protected]</code></td>
    270         </tr>
    271 
    272       </table>
    273     </td>
    274   </tr>
    275 </table>
    276 <table cellspacing=5 cellpadding=0 border=0>
    277   <tr>
    278     <td>
    279       &nbsp;
    280     </td>
    281     <td>
    282 
    283 <p>
    284     </td>
    285   </tr>
    286 </table>
    287 <a name="a11" doxytag="OsclMemPoolResizableAllocator::CancelFreeChunkAvailableCallback"></a><p>
    288 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    289   <tr>
    290     <td class="md">
    291       <table cellpadding="0" cellspacing="0" border="0">
    292         <tr>
    293           <td class="md" nowrap valign="top"> virtual OSCL_IMPORT_REF void OsclMemPoolResizableAllocator::CancelFreeChunkAvailableCallback </td>
    294           <td class="md" valign="top">(&nbsp;</td>
    295           <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
    296           <td class="md" valign="top">)&nbsp;</td>
    297           <td class="md" nowrap><code> [virtual]</code></td>
    298         </tr>
    299 
    300       </table>
    301     </td>
    302   </tr>
    303 </table>
    304 <table cellspacing=5 cellpadding=0 border=0>
    305   <tr>
    306     <td>
    307       &nbsp;
    308     </td>
    309     <td>
    310 
    311 <p>
    312 This API will cancel any past callback requests..
    313 <p>
    314 <dl compact><dt><b>Returns: </b></dt><dd>
    315 void </dl>    </td>
    316   </tr>
    317 </table>
    318 <a name="a13" doxytag="OsclMemPoolResizableAllocator::CancelFreeMemoryAvailableCallback"></a><p>
    319 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    320   <tr>
    321     <td class="md">
    322       <table cellpadding="0" cellspacing="0" border="0">
    323         <tr>
    324           <td class="md" nowrap valign="top"> OSCL_IMPORT_REF void OsclMemPoolResizableAllocator::CancelFreeMemoryAvailableCallback </td>
    325           <td class="md" valign="top">(&nbsp;</td>
    326           <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
    327           <td class="md" valign="top">)&nbsp;</td>
    328           <td class="md" nowrap></td>
    329         </tr>
    330 
    331       </table>
    332     </td>
    333   </tr>
    334 </table>
    335 <table cellspacing=5 cellpadding=0 border=0>
    336   <tr>
    337     <td>
    338       &nbsp;
    339     </td>
    340     <td>
    341 
    342 <p>
    343     </td>
    344   </tr>
    345 </table>
    346 <a name="a3" doxytag="OsclMemPoolResizableAllocator::deallocate"></a><p>
    347 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    348   <tr>
    349     <td class="md">
    350       <table cellpadding="0" cellspacing="0" border="0">
    351         <tr>
    352           <td class="md" nowrap valign="top"> virtual OSCL_IMPORT_REF void OsclMemPoolResizableAllocator::deallocate </td>
    353           <td class="md" valign="top">(&nbsp;</td>
    354           <td class="md" nowrap valign="top"><a class="el" href="group__osclbase.html#a25">OsclAny</a> *&nbsp;</td>
    355           <td class="mdname1" valign="top" nowrap>&nbsp; <em>aPtr</em>          </td>
    356           <td class="md" valign="top">)&nbsp;</td>
    357           <td class="md" nowrap><code> [virtual]</code></td>
    358         </tr>
    359 
    360       </table>
    361     </td>
    362   </tr>
    363 </table>
    364 <table cellspacing=5 cellpadding=0 border=0>
    365   <tr>
    366     <td>
    367       &nbsp;
    368     </td>
    369     <td>
    370 
    371 <p>
    372 Deallocates and returns a block back to the memory pool This API throws an exception if the pointer passed in is not part of the memory pool, aligned, or has corrupted block header.
    373 <p>
    374 <dl compact><dt><b>Returns: </b></dt><dd>
    375 void </dl>
    376 <p>
    377 Implements <a class="el" href="classOscl__DefAlloc.html#a2">Oscl_DefAlloc</a>.    </td>
    378   </tr>
    379 </table>
    380 <a name="b5" doxytag="OsclMemPoolResizableAllocator::deallocateblock"></a><p>
    381 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    382   <tr>
    383     <td class="md">
    384       <table cellpadding="0" cellspacing="0" border="0">
    385         <tr>
    386           <td class="md" nowrap valign="top"> void OsclMemPoolResizableAllocator::deallocateblock </td>
    387           <td class="md" valign="top">(&nbsp;</td>
    388           <td class="md" nowrap valign="top"><a class="el" href="structOsclMemPoolResizableAllocator_1_1MemPoolBlockInfo.html">MemPoolBlockInfo</a> &amp;&nbsp;</td>
    389           <td class="mdname1" valign="top" nowrap>&nbsp; <em>aBlockPtr</em>          </td>
    390           <td class="md" valign="top">)&nbsp;</td>
    391           <td class="md" nowrap><code> [protected]</code></td>
    392         </tr>
    393 
    394       </table>
    395     </td>
    396   </tr>
    397 </table>
    398 <table cellspacing=5 cellpadding=0 border=0>
    399   <tr>
    400     <td>
    401       &nbsp;
    402     </td>
    403     <td>
    404 
    405 <p>
    406     </td>
    407   </tr>
    408 </table>
    409 <a name="b2" doxytag="OsclMemPoolResizableAllocator::destroyallmempoolbuffers"></a><p>
    410 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    411   <tr>
    412     <td class="md">
    413       <table cellpadding="0" cellspacing="0" border="0">
    414         <tr>
    415           <td class="md" nowrap valign="top"> void OsclMemPoolResizableAllocator::destroyallmempoolbuffers </td>
    416           <td class="md" valign="top">(&nbsp;</td>
    417           <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
    418           <td class="md" valign="top">)&nbsp;</td>
    419           <td class="md" nowrap><code> [protected]</code></td>
    420         </tr>
    421 
    422       </table>
    423     </td>
    424   </tr>
    425 </table>
    426 <table cellspacing=5 cellpadding=0 border=0>
    427   <tr>
    428     <td>
    429       &nbsp;
    430     </td>
    431     <td>
    432 
    433 <p>
    434     </td>
    435   </tr>
    436 </table>
    437 <a name="a1" doxytag="OsclMemPoolResizableAllocator::enablenullpointerreturn"></a><p>
    438 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    439   <tr>
    440     <td class="md">
    441       <table cellpadding="0" cellspacing="0" border="0">
    442         <tr>
    443           <td class="md" nowrap valign="top"> virtual OSCL_IMPORT_REF void OsclMemPoolResizableAllocator::enablenullpointerreturn </td>
    444           <td class="md" valign="top">(&nbsp;</td>
    445           <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
    446           <td class="md" valign="top">)&nbsp;</td>
    447           <td class="md" nowrap><code> [virtual]</code></td>
    448         </tr>
    449 
    450       </table>
    451     </td>
    452   </tr>
    453 </table>
    454 <table cellspacing=5 cellpadding=0 border=0>
    455   <tr>
    456     <td>
    457       &nbsp;
    458     </td>
    459     <td>
    460 
    461 <p>
    462 This API will disable exceptions in case the memory pool runs out of memory Instead of doing "<a class="el" href="group__osclerror.html#a46">OSCL_LEAVE(OsclErrNoResources)</a>" allocate API will return NULL.
    463 <p>
    464 <dl compact><dt><b>Returns: </b></dt><dd>
    465 void </dl>    </td>
    466   </tr>
    467 </table>
    468 <a name="b3" doxytag="OsclMemPoolResizableAllocator::findfreeblock"></a><p>
    469 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    470   <tr>
    471     <td class="md">
    472       <table cellpadding="0" cellspacing="0" border="0">
    473         <tr>
    474           <td class="md" nowrap valign="top"> <a class="el" href="structOsclMemPoolResizableAllocator_1_1MemPoolBlockInfo.html">MemPoolBlockInfo</a>* OsclMemPoolResizableAllocator::findfreeblock </td>
    475           <td class="md" valign="top">(&nbsp;</td>
    476           <td class="md" nowrap valign="top">uint32&nbsp;</td>
    477           <td class="mdname1" valign="top" nowrap>&nbsp; <em>aBlockSize</em>          </td>
    478           <td class="md" valign="top">)&nbsp;</td>
    479           <td class="md" nowrap><code> [protected]</code></td>
    480         </tr>
    481 
    482       </table>
    483     </td>
    484   </tr>
    485 </table>
    486 <table cellspacing=5 cellpadding=0 border=0>
    487   <tr>
    488     <td>
    489       &nbsp;
    490     </td>
    491     <td>
    492 
    493 <p>
    494     </td>
    495   </tr>
    496 </table>
    497 <a name="a6" doxytag="OsclMemPoolResizableAllocator::getAllocatedSize"></a><p>
    498 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    499   <tr>
    500     <td class="md">
    501       <table cellpadding="0" cellspacing="0" border="0">
    502         <tr>
    503           <td class="md" nowrap valign="top"> virtual OSCL_IMPORT_REF uint32 OsclMemPoolResizableAllocator::getAllocatedSize </td>
    504           <td class="md" valign="top">(&nbsp;</td>
    505           <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
    506           <td class="md" valign="top">)&nbsp;</td>
    507           <td class="md" nowrap><code> [virtual]</code></td>
    508         </tr>
    509 
    510       </table>
    511     </td>
    512   </tr>
    513 </table>
    514 <table cellspacing=5 cellpadding=0 border=0>
    515   <tr>
    516     <td>
    517       &nbsp;
    518     </td>
    519     <td>
    520 
    521 <p>
    522 Returns the number of bytes allocated from the buffer&lt;including the overhead bytes that may be allocated by the allocater to keep track of the chunks allocated&gt;     </td>
    523   </tr>
    524 </table>
    525 <a name="a7" doxytag="OsclMemPoolResizableAllocator::getAvailableSize"></a><p>
    526 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    527   <tr>
    528     <td class="md">
    529       <table cellpadding="0" cellspacing="0" border="0">
    530         <tr>
    531           <td class="md" nowrap valign="top"> virtual OSCL_IMPORT_REF uint32 OsclMemPoolResizableAllocator::getAvailableSize </td>
    532           <td class="md" valign="top">(&nbsp;</td>
    533           <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
    534           <td class="md" valign="top">)&nbsp;</td>
    535           <td class="md" nowrap><code> [virtual]</code></td>
    536         </tr>
    537 
    538       </table>
    539     </td>
    540   </tr>
    541 </table>
    542 <table cellspacing=5 cellpadding=0 border=0>
    543   <tr>
    544     <td>
    545       &nbsp;
    546     </td>
    547     <td>
    548 
    549 <p>
    550 Returns the number of bytes available with the buffer     </td>
    551   </tr>
    552 </table>
    553 <a name="a5" doxytag="OsclMemPoolResizableAllocator::getBufferSize"></a><p>
    554 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    555   <tr>
    556     <td class="md">
    557       <table cellpadding="0" cellspacing="0" border="0">
    558         <tr>
    559           <td class="md" nowrap valign="top"> OSCL_IMPORT_REF uint32 OsclMemPoolResizableAllocator::getBufferSize </td>
    560           <td class="md" valign="top">(&nbsp;</td>
    561           <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
    562           <td class="md" valign="top">)&nbsp;</td>
    563           <td class="md" nowrap></td>
    564         </tr>
    565 
    566       </table>
    567     </td>
    568   </tr>
    569 </table>
    570 <table cellspacing=5 cellpadding=0 border=0>
    571   <tr>
    572     <td>
    573       &nbsp;
    574     </td>
    575     <td>
    576 
    577 <p>
    578 Returns the size of the buffer &lt;including the overhead bytes that may be allocated by the allocater&gt;     </td>
    579   </tr>
    580 </table>
    581 <a name="a8" doxytag="OsclMemPoolResizableAllocator::getLargestContiguousFreeBlockSize"></a><p>
    582 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    583   <tr>
    584     <td class="md">
    585       <table cellpadding="0" cellspacing="0" border="0">
    586         <tr>
    587           <td class="md" nowrap valign="top"> virtual OSCL_IMPORT_REF uint32 OsclMemPoolResizableAllocator::getLargestContiguousFreeBlockSize </td>
    588           <td class="md" valign="top">(&nbsp;</td>
    589           <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
    590           <td class="md" valign="top">)&nbsp;</td>
    591           <td class="md" nowrap><code> [virtual]</code></td>
    592         </tr>
    593 
    594       </table>
    595     </td>
    596   </tr>
    597 </table>
    598 <table cellspacing=5 cellpadding=0 border=0>
    599   <tr>
    600     <td>
    601       &nbsp;
    602     </td>
    603     <td>
    604 
    605 <p>
    606 Returns the size of the largest available chunk in the memory.     </td>
    607   </tr>
    608 </table>
    609 <a name="b8" doxytag="OsclMemPoolResizableAllocator::getMemPoolBufferAllocatedSize"></a><p>
    610 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    611   <tr>
    612     <td class="md">
    613       <table cellpadding="0" cellspacing="0" border="0">
    614         <tr>
    615           <td class="md" nowrap valign="top"> uint32 OsclMemPoolResizableAllocator::getMemPoolBufferAllocatedSize </td>
    616           <td class="md" valign="top">(&nbsp;</td>
    617           <td class="md" nowrap valign="top"><a class="el" href="structOsclMemPoolResizableAllocator_1_1MemPoolBufferInfo.html">MemPoolBufferInfo</a> *&nbsp;</td>
    618           <td class="mdname1" valign="top" nowrap>&nbsp; <em>aBufferInfo</em>          </td>
    619           <td class="md" valign="top">)&nbsp;</td>
    620           <td class="md" nowrap> const<code> [protected]</code></td>
    621         </tr>
    622 
    623       </table>
    624     </td>
    625   </tr>
    626 </table>
    627 <table cellspacing=5 cellpadding=0 border=0>
    628   <tr>
    629     <td>
    630       &nbsp;
    631     </td>
    632     <td>
    633 
    634 <p>
    635     </td>
    636   </tr>
    637 </table>
    638 <a name="b7" doxytag="OsclMemPoolResizableAllocator::getMemPoolBufferSize"></a><p>
    639 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    640   <tr>
    641     <td class="md">
    642       <table cellpadding="0" cellspacing="0" border="0">
    643         <tr>
    644           <td class="md" nowrap valign="top"> uint32 OsclMemPoolResizableAllocator::getMemPoolBufferSize </td>
    645           <td class="md" valign="top">(&nbsp;</td>
    646           <td class="md" nowrap valign="top"><a class="el" href="structOsclMemPoolResizableAllocator_1_1MemPoolBufferInfo.html">MemPoolBufferInfo</a> *&nbsp;</td>
    647           <td class="mdname1" valign="top" nowrap>&nbsp; <em>aBufferInfo</em>          </td>
    648           <td class="md" valign="top">)&nbsp;</td>
    649           <td class="md" nowrap> const<code> [protected]</code></td>
    650         </tr>
    651 
    652       </table>
    653     </td>
    654   </tr>
    655 </table>
    656 <table cellspacing=5 cellpadding=0 border=0>
    657   <tr>
    658     <td>
    659       &nbsp;
    660     </td>
    661     <td>
    662 
    663 <p>
    664     </td>
    665   </tr>
    666 </table>
    667 <a name="b9" doxytag="OsclMemPoolResizableAllocator::memoryPoolBufferMgmtOverhead"></a><p>
    668 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    669   <tr>
    670     <td class="md">
    671       <table cellpadding="0" cellspacing="0" border="0">
    672         <tr>
    673           <td class="md" nowrap valign="top"> uint32 OsclMemPoolResizableAllocator::memoryPoolBufferMgmtOverhead </td>
    674           <td class="md" valign="top">(&nbsp;</td>
    675           <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
    676           <td class="md" valign="top">)&nbsp;</td>
    677           <td class="md" nowrap><code> [protected]</code></td>
    678         </tr>
    679 
    680       </table>
    681     </td>
    682   </tr>
    683 </table>
    684 <table cellspacing=5 cellpadding=0 border=0>
    685   <tr>
    686     <td>
    687       &nbsp;
    688     </td>
    689     <td>
    690 
    691 <p>
    692     </td>
    693   </tr>
    694 </table>
    695 <a name="a10" doxytag="OsclMemPoolResizableAllocator::notifyfreeblockavailable"></a><p>
    696 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    697   <tr>
    698     <td class="md">
    699       <table cellpadding="0" cellspacing="0" border="0">
    700         <tr>
    701           <td class="md" nowrap valign="top"> virtual OSCL_IMPORT_REF void OsclMemPoolResizableAllocator::notifyfreeblockavailable </td>
    702           <td class="md" valign="top">(&nbsp;</td>
    703           <td class="md" nowrap valign="top"><a class="el" href="classOsclMemPoolResizableAllocatorObserver.html">OsclMemPoolResizableAllocatorObserver</a> &amp;&nbsp;</td>
    704           <td class="mdname" nowrap>&nbsp; <em>aObserver</em>, </td>
    705         </tr>
    706         <tr>
    707           <td></td>
    708           <td></td>
    709           <td class="md" nowrap>uint32&nbsp;</td>
    710           <td class="mdname" nowrap>&nbsp; <em>aRequestedSize</em> = 0, </td>
    711         </tr>
    712         <tr>
    713           <td></td>
    714           <td></td>
    715           <td class="md" nowrap><a class="el" href="group__osclbase.html#a25">OsclAny</a> *&nbsp;</td>
    716           <td class="mdname" nowrap>&nbsp; <em>aContextData</em> = NULL</td>
    717         </tr>
    718         <tr>
    719           <td></td>
    720           <td class="md">)&nbsp;</td>
    721           <td class="md" colspan="2"><code> [virtual]</code></td>
    722         </tr>
    723 
    724       </table>
    725     </td>
    726   </tr>
    727 </table>
    728 <table cellspacing=5 cellpadding=0 border=0>
    729   <tr>
    730     <td>
    731       &nbsp;
    732     </td>
    733     <td>
    734 
    735 <p>
    736 This API will set the flag to send a callback via specified observer object when the next memory block is deallocated by <a class="el" href="classOsclMemPoolResizableAllocator.html#a3">deallocate()</a> call. If the optional requested size parameter is set, the callback is sent when a free memory space of requested size becomes available. The optional context data is returned with the callback and can be used by the user to differentiate.between different instances of memory pool objects. This memory pool only allows one notify to be queued. Another call to this function will just overwrite the previous call.
    737 <p>
    738 <dl compact><dt><b>Returns: </b></dt><dd>
    739 void </dl>    </td>
    740   </tr>
    741 </table>
    742 <a name="a12" doxytag="OsclMemPoolResizableAllocator::notifyfreememoryavailable"></a><p>
    743 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    744   <tr>
    745     <td class="md">
    746       <table cellpadding="0" cellspacing="0" border="0">
    747         <tr>
    748           <td class="md" nowrap valign="top"> virtual OSCL_IMPORT_REF void OsclMemPoolResizableAllocator::notifyfreememoryavailable </td>
    749           <td class="md" valign="top">(&nbsp;</td>
    750           <td class="md" nowrap valign="top"><a class="el" href="classOsclMemPoolResizableAllocatorMemoryObserver.html">OsclMemPoolResizableAllocatorMemoryObserver</a> &amp;&nbsp;</td>
    751           <td class="mdname" nowrap>&nbsp; <em>aObserver</em>, </td>
    752         </tr>
    753         <tr>
    754           <td></td>
    755           <td></td>
    756           <td class="md" nowrap>uint32&nbsp;</td>
    757           <td class="mdname" nowrap>&nbsp; <em>aRequestedSize</em> = 0, </td>
    758         </tr>
    759         <tr>
    760           <td></td>
    761           <td></td>
    762           <td class="md" nowrap><a class="el" href="group__osclbase.html#a25">OsclAny</a> *&nbsp;</td>
    763           <td class="mdname" nowrap>&nbsp; <em>aContextData</em> = NULL</td>
    764         </tr>
    765         <tr>
    766           <td></td>
    767           <td class="md">)&nbsp;</td>
    768           <td class="md" colspan="2"><code> [virtual]</code></td>
    769         </tr>
    770 
    771       </table>
    772     </td>
    773   </tr>
    774 </table>
    775 <table cellspacing=5 cellpadding=0 border=0>
    776   <tr>
    777     <td>
    778       &nbsp;
    779     </td>
    780     <td>
    781 
    782 <p>
    783     </td>
    784   </tr>
    785 </table>
    786 <a name="a15" doxytag="OsclMemPoolResizableAllocator::removeRef"></a><p>
    787 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    788   <tr>
    789     <td class="md">
    790       <table cellpadding="0" cellspacing="0" border="0">
    791         <tr>
    792           <td class="md" nowrap valign="top"> OSCL_IMPORT_REF void OsclMemPoolResizableAllocator::removeRef </td>
    793           <td class="md" valign="top">(&nbsp;</td>
    794           <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
    795           <td class="md" valign="top">)&nbsp;</td>
    796           <td class="md" nowrap></td>
    797         </tr>
    798 
    799       </table>
    800     </td>
    801   </tr>
    802 </table>
    803 <table cellspacing=5 cellpadding=0 border=0>
    804   <tr>
    805     <td>
    806       &nbsp;
    807     </td>
    808     <td>
    809 
    810 <p>
    811 Decrements the reference count for this memory pool allocator When the reference count goes to 0, this instance of the memory pool object is deleted
    812 <p>
    813 <dl compact><dt><b>Returns: </b></dt><dd>
    814 void </dl>    </td>
    815   </tr>
    816 </table>
    817 <a name="a9" doxytag="OsclMemPoolResizableAllocator::setMaxSzForNewMemPoolBuffer"></a><p>
    818 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    819   <tr>
    820     <td class="md">
    821       <table cellpadding="0" cellspacing="0" border="0">
    822         <tr>
    823           <td class="md" nowrap valign="top"> virtual OSCL_IMPORT_REF bool OsclMemPoolResizableAllocator::setMaxSzForNewMemPoolBuffer </td>
    824           <td class="md" valign="top">(&nbsp;</td>
    825           <td class="md" nowrap valign="top">uint32&nbsp;</td>
    826           <td class="mdname1" valign="top" nowrap>&nbsp; <em>aMaxNewMemPoolBufferSz</em>          </td>
    827           <td class="md" valign="top">)&nbsp;</td>
    828           <td class="md" nowrap><code> [virtual]</code></td>
    829         </tr>
    830 
    831       </table>
    832     </td>
    833   </tr>
    834 </table>
    835 <table cellspacing=5 cellpadding=0 border=0>
    836   <tr>
    837     <td>
    838       &nbsp;
    839     </td>
    840     <td>
    841 
    842 <p>
    843     </td>
    844   </tr>
    845 </table>
    846 <a name="a4" doxytag="OsclMemPoolResizableAllocator::trim"></a><p>
    847 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    848   <tr>
    849     <td class="md">
    850       <table cellpadding="0" cellspacing="0" border="0">
    851         <tr>
    852           <td class="md" nowrap valign="top"> virtual OSCL_IMPORT_REF bool OsclMemPoolResizableAllocator::trim </td>
    853           <td class="md" valign="top">(&nbsp;</td>
    854           <td class="md" nowrap valign="top"><a class="el" href="group__osclbase.html#a25">OsclAny</a> *&nbsp;</td>
    855           <td class="mdname" nowrap>&nbsp; <em>aPtr</em>, </td>
    856         </tr>
    857         <tr>
    858           <td></td>
    859           <td></td>
    860           <td class="md" nowrap>uint32&nbsp;</td>
    861           <td class="mdname" nowrap>&nbsp; <em>aBytesToFree</em></td>
    862         </tr>
    863         <tr>
    864           <td></td>
    865           <td class="md">)&nbsp;</td>
    866           <td class="md" colspan="2"><code> [virtual]</code></td>
    867         </tr>
    868 
    869       </table>
    870     </td>
    871   </tr>
    872 </table>
    873 <table cellspacing=5 cellpadding=0 border=0>
    874   <tr>
    875     <td>
    876       &nbsp;
    877     </td>
    878     <td>
    879 
    880 <p>
    881 Returns a tail segment of a previously allocated memory block back to the memory pool. The passed-in pointer to the memory buffer is still valid after the call completes but the buffer size is smaller by by specified amount that was freed. This function allows the user to allocate a larger size block initially when the amount needed is unknown and then return the unused portion of the block when the amount becomes known. This API throws an exception if the pointer passed in is not part of the memory pool or the size to return is bigger than the size of the passed-in block. Exception will be thrown if the memory pool is not set up yet.
    882 <p>
    883 <dl compact><dt><b>Returns: </b></dt><dd>
    884 bool True if trim operation successful. False if the block wasn't trimmed </dl>    </td>
    885   </tr>
    886 </table>
    887 <a name="b6" doxytag="OsclMemPoolResizableAllocator::validateblock"></a><p>
    888 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    889   <tr>
    890     <td class="md">
    891       <table cellpadding="0" cellspacing="0" border="0">
    892         <tr>
    893           <td class="md" nowrap valign="top"> bool OsclMemPoolResizableAllocator::validateblock </td>
    894           <td class="md" valign="top">(&nbsp;</td>
    895           <td class="md" nowrap valign="top"><a class="el" href="group__osclbase.html#a25">OsclAny</a> *&nbsp;</td>
    896           <td class="mdname1" valign="top" nowrap>&nbsp; <em>aBlockBufPtr</em>          </td>
    897           <td class="md" valign="top">)&nbsp;</td>
    898           <td class="md" nowrap><code> [protected]</code></td>
    899         </tr>
    900 
    901       </table>
    902     </td>
    903   </tr>
    904 </table>
    905 <table cellspacing=5 cellpadding=0 border=0>
    906   <tr>
    907     <td>
    908       &nbsp;
    909     </td>
    910     <td>
    911 
    912 <p>
    913     </td>
    914   </tr>
    915 </table>
    916 <hr><h2>Field Documentation</h2>
    917 <a name="n7" doxytag="OsclMemPoolResizableAllocator::iBlockInfoAlignedSize"></a><p>
    918 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    919   <tr>
    920     <td class="md">
    921       <table cellpadding="0" cellspacing="0" border="0">
    922         <tr>
    923           <td class="md" nowrap valign="top"> uint32 OsclMemPoolResizableAllocator::iBlockInfoAlignedSize<code> [protected]</code>
    924       </table>
    925     </td>
    926   </tr>
    927 </table>
    928 <table cellspacing=5 cellpadding=0 border=0>
    929   <tr>
    930     <td>
    931       &nbsp;
    932     </td>
    933     <td>
    934 
    935 <p>
    936     </td>
    937   </tr>
    938 </table>
    939 <a name="n6" doxytag="OsclMemPoolResizableAllocator::iBufferInfoAlignedSize"></a><p>
    940 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    941   <tr>
    942     <td class="md">
    943       <table cellpadding="0" cellspacing="0" border="0">
    944         <tr>
    945           <td class="md" nowrap valign="top"> uint32 OsclMemPoolResizableAllocator::iBufferInfoAlignedSize<code> [protected]</code>
    946       </table>
    947     </td>
    948   </tr>
    949 </table>
    950 <table cellspacing=5 cellpadding=0 border=0>
    951   <tr>
    952     <td>
    953       &nbsp;
    954     </td>
    955     <td>
    956 
    957 <p>
    958     </td>
    959   </tr>
    960 </table>
    961 <a name="n12" doxytag="OsclMemPoolResizableAllocator::iCheckFreeMemoryAvailable"></a><p>
    962 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    963   <tr>
    964     <td class="md">
    965       <table cellpadding="0" cellspacing="0" border="0">
    966         <tr>
    967           <td class="md" nowrap valign="top"> bool OsclMemPoolResizableAllocator::iCheckFreeMemoryAvailable<code> [protected]</code>
    968       </table>
    969     </td>
    970   </tr>
    971 </table>
    972 <table cellspacing=5 cellpadding=0 border=0>
    973   <tr>
    974     <td>
    975       &nbsp;
    976     </td>
    977     <td>
    978 
    979 <p>
    980     </td>
    981   </tr>
    982 </table>
    983 <a name="n8" doxytag="OsclMemPoolResizableAllocator::iCheckNextAvailable"></a><p>
    984 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    985   <tr>
    986     <td class="md">
    987       <table cellpadding="0" cellspacing="0" border="0">
    988         <tr>
    989           <td class="md" nowrap valign="top"> bool OsclMemPoolResizableAllocator::iCheckNextAvailable<code> [protected]</code>
    990       </table>
    991     </td>
    992   </tr>
    993 </table>
    994 <table cellspacing=5 cellpadding=0 border=0>
    995   <tr>
    996     <td>
    997       &nbsp;
    998     </td>
    999     <td>
   1000 
   1001 <p>
   1002     </td>
   1003   </tr>
   1004 </table>
   1005 <a name="n17" doxytag="OsclMemPoolResizableAllocator::iEnableNullPtrReturn"></a><p>
   1006 <table width="100%" cellpadding="2" cellspacing="0" border="0">
   1007   <tr>
   1008     <td class="md">
   1009       <table cellpadding="0" cellspacing="0" border="0">
   1010         <tr>
   1011           <td class="md" nowrap valign="top"> bool OsclMemPoolResizableAllocator::iEnableNullPtrReturn<code> [protected]</code>
   1012       </table>
   1013     </td>
   1014   </tr>
   1015 </table>
   1016 <table cellspacing=5 cellpadding=0 border=0>
   1017   <tr>
   1018     <td>
   1019       &nbsp;
   1020     </td>
   1021     <td>
   1022 
   1023 <p>
   1024     </td>
   1025   </tr>
   1026 </table>
   1027 <a name="n2" doxytag="OsclMemPoolResizableAllocator::iExpectedNumBlocksPerBuffer"></a><p>
   1028 <table width="100%" cellpadding="2" cellspacing="0" border="0">
   1029   <tr>
   1030     <td class="md">
   1031       <table cellpadding="0" cellspacing="0" border="0">
   1032         <tr>
   1033           <td class="md" nowrap valign="top"> uint32 OsclMemPoolResizableAllocator::iExpectedNumBlocksPerBuffer<code> [protected]</code>
   1034       </table>
   1035     </td>
   1036   </tr>
   1037 </table>
   1038 <table cellspacing=5 cellpadding=0 border=0>
   1039   <tr>
   1040     <td>
   1041       &nbsp;
   1042     </td>
   1043     <td>
   1044 
   1045 <p>
   1046     </td>
   1047   </tr>
   1048 </table>
   1049 <a name="n14" doxytag="OsclMemPoolResizableAllocator::iFreeMemContextData"></a><p>
   1050 <table width="100%" cellpadding="2" cellspacing="0" border="0">
   1051   <tr>
   1052     <td class="md">
   1053       <table cellpadding="0" cellspacing="0" border="0">
   1054         <tr>
   1055           <td class="md" nowrap valign="top"> <a class="el" href="group__osclbase.html#a25">OsclAny</a>* OsclMemPoolResizableAllocator::iFreeMemContextData<code> [protected]</code>
   1056       </table>
   1057     </td>
   1058   </tr>
   1059 </table>
   1060 <table cellspacing=5 cellpadding=0 border=0>
   1061   <tr>
   1062     <td>
   1063       &nbsp;
   1064     </td>
   1065     <td>
   1066 
   1067 <p>
   1068     </td>
   1069   </tr>
   1070 </table>
   1071 <a name="n15" doxytag="OsclMemPoolResizableAllocator::iFreeMemPoolObserver"></a><p>
   1072 <table width="100%" cellpadding="2" cellspacing="0" border="0">
   1073   <tr>
   1074     <td class="md">
   1075       <table cellpadding="0" cellspacing="0" border="0">
   1076         <tr>
   1077           <td class="md" nowrap valign="top"> <a class="el" href="classOsclMemPoolResizableAllocatorMemoryObserver.html">OsclMemPoolResizableAllocatorMemoryObserver</a>* OsclMemPoolResizableAllocator::iFreeMemPoolObserver<code> [protected]</code>
   1078       </table>
   1079     </td>
   1080   </tr>
   1081 </table>
   1082 <table cellspacing=5 cellpadding=0 border=0>
   1083   <tr>
   1084     <td>
   1085       &nbsp;
   1086     </td>
   1087     <td>
   1088 
   1089 <p>
   1090     </td>
   1091   </tr>
   1092 </table>
   1093 <a name="n3" doxytag="OsclMemPoolResizableAllocator::iMaxNewMemPoolBufferSz"></a><p>
   1094 <table width="100%" cellpadding="2" cellspacing="0" border="0">
   1095   <tr>
   1096     <td class="md">
   1097       <table cellpadding="0" cellspacing="0" border="0">
   1098         <tr>
   1099           <td class="md" nowrap valign="top"> uint32 OsclMemPoolResizableAllocator::iMaxNewMemPoolBufferSz<code> [protected]</code>
   1100       </table>
   1101     </td>
   1102   </tr>
   1103 </table>
   1104 <table cellspacing=5 cellpadding=0 border=0>
   1105   <tr>
   1106     <td>
   1107       &nbsp;
   1108     </td>
   1109     <td>
   1110 
   1111 <p>
   1112     </td>
   1113   </tr>
   1114 </table>
   1115 <a name="n4" doxytag="OsclMemPoolResizableAllocator::iMemPoolBufferAllocator"></a><p>
   1116 <table width="100%" cellpadding="2" cellspacing="0" border="0">
   1117   <tr>
   1118     <td class="md">
   1119       <table cellpadding="0" cellspacing="0" border="0">
   1120         <tr>
   1121           <td class="md" nowrap valign="top"> <a class="el" href="classOscl__DefAlloc.html">Oscl_DefAlloc</a>* OsclMemPoolResizableAllocator::iMemPoolBufferAllocator<code> [protected]</code>
   1122       </table>
   1123     </td>
   1124   </tr>
   1125 </table>
   1126 <table cellspacing=5 cellpadding=0 border=0>
   1127   <tr>
   1128     <td>
   1129       &nbsp;
   1130     </td>
   1131     <td>
   1132 
   1133 <p>
   1134     </td>
   1135   </tr>
   1136 </table>
   1137 <a name="n5" doxytag="OsclMemPoolResizableAllocator::iMemPoolBufferList"></a><p>
   1138 <table width="100%" cellpadding="2" cellspacing="0" border="0">
   1139   <tr>
   1140     <td class="md">
   1141       <table cellpadding="0" cellspacing="0" border="0">
   1142         <tr>
   1143           <td class="md" nowrap valign="top"> <a class="el" href="classOscl__Vector.html">Oscl_Vector</a>&lt;<a class="el" href="structOsclMemPoolResizableAllocator_1_1MemPoolBufferInfo.html">MemPoolBufferInfo</a>*, <a class="el" href="classOsclMemAllocator.html">OsclMemAllocator</a>&gt; OsclMemPoolResizableAllocator::iMemPoolBufferList<code> [protected]</code>
   1144       </table>
   1145     </td>
   1146   </tr>
   1147 </table>
   1148 <table cellspacing=5 cellpadding=0 border=0>
   1149   <tr>
   1150     <td>
   1151       &nbsp;
   1152     </td>
   1153     <td>
   1154 
   1155 <p>
   1156     </td>
   1157   </tr>
   1158 </table>
   1159 <a name="n1" doxytag="OsclMemPoolResizableAllocator::iMemPoolBufferNumLimit"></a><p>
   1160 <table width="100%" cellpadding="2" cellspacing="0" border="0">
   1161   <tr>
   1162     <td class="md">
   1163       <table cellpadding="0" cellspacing="0" border="0">
   1164         <tr>
   1165           <td class="md" nowrap valign="top"> uint32 OsclMemPoolResizableAllocator::iMemPoolBufferNumLimit<code> [protected]</code>
   1166       </table>
   1167     </td>
   1168   </tr>
   1169 </table>
   1170 <table cellspacing=5 cellpadding=0 border=0>
   1171   <tr>
   1172     <td>
   1173       &nbsp;
   1174     </td>
   1175     <td>
   1176 
   1177 <p>
   1178     </td>
   1179   </tr>
   1180 </table>
   1181 <a name="n0" doxytag="OsclMemPoolResizableAllocator::iMemPoolBufferSize"></a><p>
   1182 <table width="100%" cellpadding="2" cellspacing="0" border="0">
   1183   <tr>
   1184     <td class="md">
   1185       <table cellpadding="0" cellspacing="0" border="0">
   1186         <tr>
   1187           <td class="md" nowrap valign="top"> uint32 OsclMemPoolResizableAllocator::iMemPoolBufferSize<code> [protected]</code>
   1188       </table>
   1189     </td>
   1190   </tr>
   1191 </table>
   1192 <table cellspacing=5 cellpadding=0 border=0>
   1193   <tr>
   1194     <td>
   1195       &nbsp;
   1196     </td>
   1197     <td>
   1198 
   1199 <p>
   1200     </td>
   1201   </tr>
   1202 </table>
   1203 <a name="n10" doxytag="OsclMemPoolResizableAllocator::iNextAvailableContextData"></a><p>
   1204 <table width="100%" cellpadding="2" cellspacing="0" border="0">
   1205   <tr>
   1206     <td class="md">
   1207       <table cellpadding="0" cellspacing="0" border="0">
   1208         <tr>
   1209           <td class="md" nowrap valign="top"> <a class="el" href="group__osclbase.html#a25">OsclAny</a>* OsclMemPoolResizableAllocator::iNextAvailableContextData<code> [protected]</code>
   1210       </table>
   1211     </td>
   1212   </tr>
   1213 </table>
   1214 <table cellspacing=5 cellpadding=0 border=0>
   1215   <tr>
   1216     <td>
   1217       &nbsp;
   1218     </td>
   1219     <td>
   1220 
   1221 <p>
   1222     </td>
   1223   </tr>
   1224 </table>
   1225 <a name="n11" doxytag="OsclMemPoolResizableAllocator::iObserver"></a><p>
   1226 <table width="100%" cellpadding="2" cellspacing="0" border="0">
   1227   <tr>
   1228     <td class="md">
   1229       <table cellpadding="0" cellspacing="0" border="0">
   1230         <tr>
   1231           <td class="md" nowrap valign="top"> <a class="el" href="classOsclMemPoolResizableAllocatorObserver.html">OsclMemPoolResizableAllocatorObserver</a>* OsclMemPoolResizableAllocator::iObserver<code> [protected]</code>
   1232       </table>
   1233     </td>
   1234   </tr>
   1235 </table>
   1236 <table cellspacing=5 cellpadding=0 border=0>
   1237   <tr>
   1238     <td>
   1239       &nbsp;
   1240     </td>
   1241     <td>
   1242 
   1243 <p>
   1244     </td>
   1245   </tr>
   1246 </table>
   1247 <a name="n16" doxytag="OsclMemPoolResizableAllocator::iRefCount"></a><p>
   1248 <table width="100%" cellpadding="2" cellspacing="0" border="0">
   1249   <tr>
   1250     <td class="md">
   1251       <table cellpadding="0" cellspacing="0" border="0">
   1252         <tr>
   1253           <td class="md" nowrap valign="top"> int32 OsclMemPoolResizableAllocator::iRefCount<code> [protected]</code>
   1254       </table>
   1255     </td>
   1256   </tr>
   1257 </table>
   1258 <table cellspacing=5 cellpadding=0 border=0>
   1259   <tr>
   1260     <td>
   1261       &nbsp;
   1262     </td>
   1263     <td>
   1264 
   1265 <p>
   1266     </td>
   1267   </tr>
   1268 </table>
   1269 <a name="n13" doxytag="OsclMemPoolResizableAllocator::iRequestedAvailableFreeMemSize"></a><p>
   1270 <table width="100%" cellpadding="2" cellspacing="0" border="0">
   1271   <tr>
   1272     <td class="md">
   1273       <table cellpadding="0" cellspacing="0" border="0">
   1274         <tr>
   1275           <td class="md" nowrap valign="top"> uint32 OsclMemPoolResizableAllocator::iRequestedAvailableFreeMemSize<code> [protected]</code>
   1276       </table>
   1277     </td>
   1278   </tr>
   1279 </table>
   1280 <table cellspacing=5 cellpadding=0 border=0>
   1281   <tr>
   1282     <td>
   1283       &nbsp;
   1284     </td>
   1285     <td>
   1286 
   1287 <p>
   1288     </td>
   1289   </tr>
   1290 </table>
   1291 <a name="n9" doxytag="OsclMemPoolResizableAllocator::iRequestedNextAvailableSize"></a><p>
   1292 <table width="100%" cellpadding="2" cellspacing="0" border="0">
   1293   <tr>
   1294     <td class="md">
   1295       <table cellpadding="0" cellspacing="0" border="0">
   1296         <tr>
   1297           <td class="md" nowrap valign="top"> uint32 OsclMemPoolResizableAllocator::iRequestedNextAvailableSize<code> [protected]</code>
   1298       </table>
   1299     </td>
   1300   </tr>
   1301 </table>
   1302 <table cellspacing=5 cellpadding=0 border=0>
   1303   <tr>
   1304     <td>
   1305       &nbsp;
   1306     </td>
   1307     <td>
   1308 
   1309 <p>
   1310     </td>
   1311   </tr>
   1312 </table>
   1313 <hr>The documentation for this class was generated from the following file:<ul>
   1314 <li><a class="el" href="oscl__mem__mempool_8h-source.html">oscl_mem_mempool.h</a></ul>
   1315 <hr size="1"><img src="pvlogo_small.jpg"><address style="align: right;"><small>OSCL API</small>
   1316 <address style="align: left;"><small>Posting Version: OPENCORE_20090310 </small>
   1317 </small></address>
   1318 </body>
   1319 </html>
   1320