orx  1.11
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_GetCount (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 some 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 to 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 to 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 to 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 to the memory bank
orxDLLAPI void orxFASTCALL orxBank_Delete ( orxBANK _pstBank)

Frees some memory allocated with orxMemory_Allocate

Parameters
[in]_pstBankPointer to 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 to the cell to free
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_GetCount ( const orxBANK _pstBank)

Gets the bank allocated cell count

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 to 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.8.11