orx  stable
Portable Game Engine
OrxBank

Macros

#define orxBANK_KU32_FLAG_NONE   0x00000000
 
#define orxBANK_KU32_FLAG_NOT_EXPANDABLE   0x00000001
 

Typedefs

typedef struct __orxBANK_t orxBANK
 

Functions

orxDLLAPI void *orxFASTCALL orxBank_Allocate (orxBANK *_pstBank)
 
orxDLLAPI void *orxFASTCALL orxBank_AllocateIndexed (orxBANK *_pstBank, orxU32 *_pu32ItemIndex, void **_ppPrevious)
 
orxDLLAPI void orxFASTCALL orxBank_Clear (orxBANK *_pstBank)
 
orxDLLAPI void orxFASTCALL orxBank_Compact (orxBANK *_pstBank)
 
orxDLLAPI void orxFASTCALL orxBank_CompactAll ()
 
orxDLLAPI orxBANK *orxFASTCALL orxBank_Create (orxU16 _u16NbElem, orxU32 _u32Size, orxU32 _u32Flags, orxMEMORY_TYPE _eMemType)
 
orxDLLAPI void orxFASTCALL orxBank_Delete (orxBANK *_pstBank)
 
orxDLLAPI void orxFASTCALL orxBank_Exit ()
 
orxDLLAPI void orxFASTCALL orxBank_Free (orxBANK *_pstBank, void *_pCell)
 
orxDLLAPI void *orxFASTCALL orxBank_GetAtIndex (const orxBANK *_pstBank, orxU32 _u32Index)
 
orxDLLAPI orxU32 orxFASTCALL orxBank_GetCounter (const orxBANK *_pstBank)
 
orxDLLAPI orxU32 orxFASTCALL orxBank_GetIndex (const orxBANK *_pstBank, const void *_pCell)
 
orxDLLAPI void *orxFASTCALL orxBank_GetNext (const orxBANK *_pstBank, const void *_pCell)
 
orxDLLAPI orxSTATUS orxFASTCALL orxBank_Init ()
 
orxDLLAPI void orxFASTCALL orxBank_Setup ()
 

Detailed Description

Bank module Bank are used to allocate a portion of memory. Applications can get cell from this memory and use it. If the number of allocations requests become bigger than the bank size, a new segment of memory is automatically allocated. Memory bank can be used to try to reduce memory fragmentation.

Macro Definition Documentation

#define orxBANK_KU32_FLAG_NONE   0x00000000

No flags (default behaviour)

Definition at line 59 of file orxBank.h.

#define orxBANK_KU32_FLAG_NOT_EXPANDABLE   0x00000001

The bank will not be expandable

Definition at line 60 of file orxBank.h.

Typedef Documentation

typedef struct __orxBANK_t orxBANK

Definition at line 56 of file orxBank.h.

Function Documentation

orxDLLAPI void* orxFASTCALL orxBank_Allocate ( orxBANK _pstBank)

Allocates a new cell from the bank

Parameters
[in]_pstBankPointer on the memory bank to use
Returns
a new cell of memory (orxNULL if no allocation possible)
orxDLLAPI void* orxFASTCALL orxBank_AllocateIndexed ( orxBANK _pstBank,
orxU32 *  _pu32ItemIndex,
void **  _ppPrevious 
)

Allocates a new cell from the bank and returns its index

Parameters
[in]_pstBankPointer on the memory bank to use
[out]_pu32ItemIndexWill be set with the allocated item index
[out]_ppPreviousIf non-null, will contain previous neighbor if found
Returns
a new cell of memory (orxNULL if no allocation possible)
orxDLLAPI void orxFASTCALL orxBank_Clear ( orxBANK _pstBank)

Frees all allocated cell from a bank

Parameters
[in]_pstBankBank of memory to clear
orxDLLAPI void orxFASTCALL orxBank_Compact ( orxBANK _pstBank)

Compacts a bank by removing all its unused segments

Parameters
[in]_pstBankBank of memory to compact
orxDLLAPI void orxFASTCALL orxBank_CompactAll ( )

Compacts all banks by removing all their unused segments

orxDLLAPI orxBANK* orxFASTCALL orxBank_Create ( orxU16  _u16NbElem,
orxU32  _u32Size,
orxU32  _u32Flags,
orxMEMORY_TYPE  _eMemType 
)

Creates a new bank in memory and returns a pointer on it

Parameters
[in]_u16NbElemNumber of elements per segments
[in]_u32SizeSize of an element
[in]_u32FlagsFlags set for this bank
[in]_eMemTypeMemory type where the data will be allocated
Returns
returns a pointer on the memory bank
orxDLLAPI void orxFASTCALL orxBank_Delete ( orxBANK _pstBank)

Frees a portion of memory allocated with orxMemory_Allocate

Parameters
[in]_pstBankPointer on the memory bank allocated by orx
orxDLLAPI void orxFASTCALL orxBank_Exit ( )

Exits from the bank module

orxDLLAPI void orxFASTCALL orxBank_Free ( orxBANK _pstBank,
void _pCell 
)

Frees an allocated cell

Parameters
[in]_pstBankBank of memory from where _pCell has been allocated
[in]_pCellPointer on the cell to free
Returns
a new cell of memory (orxNULL if no allocation possible)
orxDLLAPI void* orxFASTCALL orxBank_GetAtIndex ( const orxBANK _pstBank,
orxU32  _u32Index 
)

Gets the cell at given index, orxNULL is the cell isn't allocated

Parameters
[in]_pstBankConcerned memory bank
[in]_u32IndexIndex of the cell to retrieve
Returns
The cell at the given index if allocated, orxNULL otherwise
orxDLLAPI orxU32 orxFASTCALL orxBank_GetCounter ( const orxBANK _pstBank)

Gets the bank allocated cell counter

Parameters
[in]_pstBankConcerned bank
Returns
Number of allocated cells
orxDLLAPI orxU32 orxFASTCALL orxBank_GetIndex ( const orxBANK _pstBank,
const void _pCell 
)

Gets the cell's index

Parameters
[in]_pstBankConcerned memory bank
[in]_pCellCell of which we want the index
Returns
The index of the given cell
orxDLLAPI void* orxFASTCALL orxBank_GetNext ( const orxBANK _pstBank,
const void _pCell 
)

Gets the next cell

Parameters
[in]_pstBankBank of memory from where _pCell has been allocated
[in]_pCellPointer on the current cell of memory
Returns
The next cell. If _pCell is orxNULL, the first cell will be returned. Returns orxNULL when no more cell can be returned.
orxDLLAPI orxSTATUS orxFASTCALL orxBank_Init ( )

Inits the bank Module

Returns
orxSTATUS_SUCCESS / orxSTATUS_FAILURE
orxDLLAPI void orxFASTCALL orxBank_Setup ( )

Setups the bank module


Generated for orx by doxygen 1.5.6