Homepage | Demos | Overview | Downloads | Tutorials | Reference | Credits |
#include <ListMemBuf.h>
Inheritance diagram for ListMemBuf< T_t, MAX, idx_t >:
Think of this as a self-contained mini-malloc...
This is handy for classes which inhabit a shared memory region, where it's a bad idea to have pointers to other memory. By instantiating one of these in your class, you can allocate space internally for up to MAX objects of type T_t. ListMemBuf will worry about keeping track of which ones are in use or are free.
Each time you request a entry to be created, the destructor will be called followed by the the defaul constructor before it is given to you, so the fields should be reliably 'fresh', not what was in the entry last time it was used.
Definition at line 20 of file ListMemBuf.h.
Public Types | |
typedef T_t | T |
Allows outside access to storage type. | |
typedef idx_t | index_t |
Allows outside access to index type. | |
Public Member Functions | |
ListMemBuf () | |
constructor | |
index_t | getMaxCapacity () const |
returns the maximum number of objects which can be used at any given time | |
index_t | size () const |
returns the current number of objects in use | |
index_t | countf () const |
for debugging, should equal size | |
index_t | countb () const |
for debugging, should equal size | |
bool | empty () const |
returns true if no objects are in use | |
T & | operator[] (unsigned int x) |
allows direct access to elements - be careful, can access 'free' elements this way | |
const T & | operator[] (unsigned int x) const |
allows direct access to elements - be careful, can access 'free' elements this way | |
index_t | begin () const |
returns index of first used entry | |
T & | front () |
returns reference to first used entry | |
const T & | front () const |
returns const reference to first used entry | |
index_t | end () const |
returns the one-past-end index | |
T & | back () |
returns reference to last used entry | |
const T & | back () const |
returns const reference to last used entry | |
index_t | new_front () |
pushes a 'blank' entry on the front of the used list | |
index_t | push_front (const T &data) |
pushes an entry on the front of the used chain and assigns data to it | |
void | pop_front () |
pops the front of the used chain | |
void | pop_front (T &ret) |
pops the front of the chain into ret | |
index_t | new_back () |
pushes a 'blank' entry on the back of the used list | |
index_t | push_back (const T &data) |
pushes an entry on the back of the used chain and assigns data to it | |
void | pop_back () |
pops the last of the used chain | |
void | pop_back (T &ret) |
pops the last of the used chain into ret | |
index_t | new_before (index_t x) |
inserts a 'blank' entry before element x in the used chain | |
index_t | push_before (index_t x, const T &data) |
inserts a 'blank' entry before element x in the used chain and assigns data to it | |
index_t | new_after (index_t x) |
inserts a 'blank' entry after element x in the used chain | |
index_t | push_after (index_t x, const T &data) |
inserts a 'blank' entry after element x in the used chain and assigns data to it | |
void | erase (index_t x) |
removes element x from the used chain | |
void | clear () |
frees all used entries | |
void | swap (index_t a, index_t b) |
swaps the two entries' position in the list | |
index_t | next (index_t x) const |
returns the next used element following x | |
index_t | prev (index_t x) const |
returns the preceeding used element following x | |
Static Public Attributes | |
const unsigned int | MAX_ENTRIES = MAX |
Allows outside access to number of entries. | |
Protected Member Functions | |
index_t | pop_free () |
removes an element from the front of the free list, returns its index | |
void | push_free (index_t x) |
pushes x onto the back of the free list | |
Protected Attributes | |
entry_t | entries [MAX_ENTRIES] |
the main block of data | |
index_t | activeBegin |
beginning of used chain | |
index_t | activeBack |
end of used chain | |
index_t | freeBegin |
beginning of free chain | |
index_t | freeBack |
end of free chain | |
index_t | cursize |
current number of used elements |
|
|
Allows outside access to storage type.
Definition at line 26 of file ListMemBuf.h. Referenced by ListMemBuf< T_t, MAX, idx_t >::pop_free(). |
|
constructor
Definition at line 94 of file ListMemBuf.h. |
|
returns const reference to last used entry
Definition at line 47 of file ListMemBuf.h. |
|
returns reference to last used entry
Definition at line 46 of file ListMemBuf.h. Referenced by MotionSequenceMC< MAXMOVE >::clear(), and ListMemBuf< Move, MAXMOVE, Move_idx_t >::pop_back(). |
|
returns index of first used entry
Definition at line 41 of file ListMemBuf.h. Referenced by ListMemBuf< T_t, MAX, idx_t >::countb(), ListMemBuf< T_t, MAX, idx_t >::countf(), MotionManager::getOutputs(), SoundManager::lookupPath(), SoundManager::PausePlay(), SoundManager::ReceivedMsg(), SoundManager::ResumePlay(), SoundManager::selectChannels(), MotionManager::setOutput(), SoundManager::StopPlay(), and SoundManager::updateChannels(). |
|
frees all used entries
Definition at line 210 of file ListMemBuf.h. Referenced by MotionSequenceMC< MAXMOVE >::clear(), and MotionManager::getOutputs(). |
|
for debugging, should equal size
Definition at line 112 of file ListMemBuf.h. |
|
for debugging, should equal size
Definition at line 103 of file ListMemBuf.h. |
|
returns true if no objects are in use
Definition at line 36 of file ListMemBuf.h. Referenced by SoundManager::StopPlay(). |
|
|
removes element x from the used chain
Definition at line 194 of file ListMemBuf.h. Referenced by MotionSequenceMC< MAXMOVE >::eraseKeyFrame(), SoundManager::PausePlay(), SoundManager::Release(), and SoundManager::StopPlay(). |
|
returns const reference to first used entry
Definition at line 43 of file ListMemBuf.h. |
|
returns reference to first used entry
Definition at line 42 of file ListMemBuf.h. Referenced by SoundManager::CopyTo(), and ListMemBuf< Move, MAXMOVE, Move_idx_t >::pop_front(). |
|
returns the maximum number of objects which can be used at any given time
Definition at line 32 of file ListMemBuf.h. Referenced by MotionSequenceMC< MAXMOVE >::getMaxFrames(). |
|
inserts a 'blank' entry after element x in the used chain
Definition at line 62 of file ListMemBuf.h. Referenced by ListMemBuf< Move, MAXMOVE, Move_idx_t >::push_after(). |
|
pushes a 'blank' entry on the back of the used list
Definition at line 137 of file ListMemBuf.h. Referenced by MotionSequenceMC< MAXMOVE >::clear(), ListMemBuf< T_t, MAX, idx_t >::new_before(), and ListMemBuf< Move, MAXMOVE, Move_idx_t >::push_back(). |
|
inserts a 'blank' entry before element x in the used chain
Definition at line 153 of file ListMemBuf.h. Referenced by ListMemBuf< Move, MAXMOVE, Move_idx_t >::new_after(), and ListMemBuf< Move, MAXMOVE, Move_idx_t >::push_before(). |
|
pushes a 'blank' entry on the front of the used list
Definition at line 121 of file ListMemBuf.h. Referenced by SoundManager::Chain(), SoundManager::ChainBuffer(), SoundManager::ChainFile(), SoundManager::LoadBuffer(), ListMemBuf< T_t, MAX, idx_t >::new_before(), MotionSequenceMC< MAXMOVE >::newKeyFrame(), SoundManager::Play(), and ListMemBuf< Move, MAXMOVE, Move_idx_t >::push_front(). |
|
returns the next used element following x
Definition at line 70 of file ListMemBuf.h. Referenced by ListMemBuf< T_t, MAX, idx_t >::countf(), MotionManager::getOutputs(), SoundManager::lookupPath(), ListMemBuf< Move, MAXMOVE, Move_idx_t >::new_after(), SoundManager::PausePlay(), SoundManager::ReceivedMsg(), SoundManager::ResumePlay(), SoundManager::selectChannels(), and SoundManager::updateChannels(). |
|
allows direct access to elements - be careful, can access 'free' elements this way
Definition at line 39 of file ListMemBuf.h. |
|
allows direct access to elements - be careful, can access 'free' elements this way
Definition at line 38 of file ListMemBuf.h. Referenced by ListMemBuf< Move, MAXMOVE, Move_idx_t >::push_after(), ListMemBuf< Move, MAXMOVE, Move_idx_t >::push_back(), ListMemBuf< Move, MAXMOVE, Move_idx_t >::push_before(), ListMemBuf< T_t, MAX, idx_t >::push_free(), and ListMemBuf< Move, MAXMOVE, Move_idx_t >::push_front(). |
|
pops the last of the used chain into ret
Definition at line 57 of file ListMemBuf.h. |
|
pops the last of the used chain
Definition at line 182 of file ListMemBuf.h. Referenced by SoundManager::CopyTo(), ListMemBuf< T_t, MAX, idx_t >::erase(), and ListMemBuf< Move, MAXMOVE, Move_idx_t >::pop_back(). |
|
removes an element from the front of the free list, returns its index free list is a queue... pop front, push back - hopefully more robust with multi-threads is purposely sloppy with unused links, a little faster Definition at line 306 of file ListMemBuf.h. Referenced by ListMemBuf< T_t, MAX, idx_t >::new_back(), ListMemBuf< T_t, MAX, idx_t >::new_before(), and ListMemBuf< T_t, MAX, idx_t >::new_front(). |
|
pops the front of the chain into ret
Definition at line 52 of file ListMemBuf.h. |
|
pops the front of the used chain
Definition at line 170 of file ListMemBuf.h. Referenced by ListMemBuf< T_t, MAX, idx_t >::erase(), and ListMemBuf< Move, MAXMOVE, Move_idx_t >::pop_front(). |
|
returns the preceeding used element following x
Definition at line 71 of file ListMemBuf.h. Referenced by ListMemBuf< T_t, MAX, idx_t >::countb(), SoundManager::selectChannels(), and SoundManager::StopPlay(). |
|
inserts a 'blank' entry after element x in the used chain and assigns data to it
Definition at line 63 of file ListMemBuf.h. |
|
pushes an entry on the back of the used chain and assigns data to it
Definition at line 55 of file ListMemBuf.h. Referenced by SoundManager::CopyTo(). |
|
inserts a 'blank' entry before element x in the used chain and assigns data to it
Definition at line 60 of file ListMemBuf.h. |
|
pushes x onto the back of the free list
Definition at line 322 of file ListMemBuf.h. Referenced by ListMemBuf< T_t, MAX, idx_t >::erase(), ListMemBuf< T_t, MAX, idx_t >::ListMemBuf(), ListMemBuf< T_t, MAX, idx_t >::pop_back(), and ListMemBuf< T_t, MAX, idx_t >::pop_front(). |
|
pushes an entry on the front of the used chain and assigns data to it
Definition at line 50 of file ListMemBuf.h. Referenced by SoundManager::Play(), SoundManager::ResumePlay(), and MotionManager::setOutput(). |
|
returns the current number of objects in use
Definition at line 33 of file ListMemBuf.h. Referenced by SoundManager::CopyTo(), SoundManager::GetNumPlaying(), MotionSequenceMC< MAXMOVE >::getUsedFrames(), SoundManager::PlayBuffer(), and SoundManager::PlayFile(). |
|
swaps the two entries' position in the list
Definition at line 224 of file ListMemBuf.h. |
|
|
|
current number of used elements
Definition at line 90 of file ListMemBuf.h. Referenced by ListMemBuf< T_t, MAX, idx_t >::clear(), ListMemBuf< Move, MAXMOVE, Move_idx_t >::empty(), ListMemBuf< T_t, MAX, idx_t >::ListMemBuf(), ListMemBuf< T_t, MAX, idx_t >::pop_free(), ListMemBuf< T_t, MAX, idx_t >::push_free(), and ListMemBuf< Move, MAXMOVE, Move_idx_t >::size(). |
|
|
end of free chain
Definition at line 89 of file ListMemBuf.h. Referenced by ListMemBuf< T_t, MAX, idx_t >::clear(), ListMemBuf< T_t, MAX, idx_t >::ListMemBuf(), ListMemBuf< T_t, MAX, idx_t >::pop_free(), and ListMemBuf< T_t, MAX, idx_t >::push_free(). |
|
beginning of free chain
Definition at line 88 of file ListMemBuf.h. Referenced by ListMemBuf< T_t, MAX, idx_t >::clear(), ListMemBuf< T_t, MAX, idx_t >::pop_free(), and ListMemBuf< T_t, MAX, idx_t >::push_free(). |
|
Allows outside access to number of entries.
Definition at line 28 of file ListMemBuf.h. Referenced by ListMemBuf< Move, MAXMOVE, Move_idx_t >::getMaxCapacity(), and ListMemBuf< T_t, MAX, idx_t >::ListMemBuf(). |
Tekkotsu v2.0 |
Generated Wed Jan 21 03:23:15 2004 by Doxygen 1.3.4 |