ucommon
7.0.0
About: GNU uCommon C++ is a portable and optimized class framework for writing C++ applications that need to use threads and support concurrent synchronization, and that use sockets, XML parsing, object serialization, thread-optimized string and data structure classes, etc..
![]() ![]() |
#include <memory.h>
Classes | |
class | member |
Public Types | |
typedef linked_pointer< ObjectPager::member > | iterator |
Convenience typedef for iterative pointer. More... | |
Public Member Functions | |
void | clear (void) |
Purge all members and release pager member. More... | |
ObjectPager::member * | begin (void) |
Get root of pager list. More... | |
operator bool () const | |
bool | operator! () const |
unsigned | count (void) const |
Get the number of items in the pager string list. More... | |
size_t | size (void) |
unsigned | pages (void) |
void | assign (ObjectPager &source) |
Assign foreign pager to us. More... | |
Protected Member Functions | |
ObjectPager (size_t objsize, size_t pagesize=256) | |
void * | get (unsigned item) const |
Get object from list. More... | |
void * | add (void) |
Add object to list. More... | |
void * | push (void) |
void * | pull (void) |
Remove element from front of list. More... | |
void * | pop (void) |
Remove element from back of list. More... | |
void * | invalid (void) const |
Invalid object... More... | |
void ** | list (void) |
Gather index list. More... | |
![]() | |
page_t * | pager (void) |
Acquire a new page from the heap. More... | |
virtual void * | _alloc (size_t size) __OVERRIDE |
Allocate memory from the pager heap. More... | |
memalloc (size_t page=0) | |
Construct a memory pager. More... | |
memalloc (const memalloc ©) | |
virtual | ~memalloc () |
Destroy a memory pager. More... | |
unsigned | pages (void) const |
Get the number of pages that have been allocated from the real heap. More... | |
unsigned | max (void) const |
Get the maximum number of pages that are permitted. More... | |
size_t | size (void) const |
Get the size of a memory page. More... | |
unsigned | utilization (void) const |
Determine fragmentation level of acquired heap pages. More... | |
void | purge (void) |
Purge all allocated memory and heap pages immediately. More... | |
void | assign (memalloc &source) |
Assign foreign pager to us. More... | |
Private Member Functions | |
__DELETE_COPY (ObjectPager) | |
Private Attributes | |
unsigned | members |
LinkedObject * | root |
size_t | typesize |
member * | last |
void ** | index |
Additional Inherited Members | |
![]() | |
unsigned | limit |
|
protected |
|
private |
|
protected |
Add object to list.
object | to add. |
Definition at line 430 of file memory.cpp.
References ucommon::memalloc::_alloc(), index, last, ucommon::ObjectPager::member::mem, members, root, ucommon::ObjectPager::member::set(), and typesize.
void ucommon::ObjectPager::assign | ( | ObjectPager & | source | ) |
Assign foreign pager to us.
This relocates the heap references to our object, clears the other object.
Definition at line 322 of file memory.cpp.
References ucommon::memalloc::assign(), index, last, members, root, and typesize.
|
inline |
void ucommon::ObjectPager::clear | ( | void | ) |
Purge all members and release pager member.
The list can then be added to again.
Definition at line 351 of file memory.cpp.
References index, last, members, ucommon::memalloc::purge(), and root.
|
inline |
|
protected |
Get object from list.
This is useful when objectpager is passed as a pointer and hence inconvenient for the [] operator.
item | to access. |
Definition at line 338 of file memory.cpp.
References invalid(), list(), members, and root.
|
protected |
|
protected |
Gather index list.
Definition at line 447 of file memory.cpp.
References ucommon::memalloc::_alloc(), index, ucommon::is(), members, ucommon::linked_pointer< T >::next(), and root.
Referenced by get().
|
protected |
Remove element from back of list.
Does not release memory.
Definition at line 395 of file memory.cpp.
References index, invalid(), ucommon::is(), last, ucommon::ObjectPager::member::mem, members, ucommon::linked_pointer< T >::next(), out, and root.
|
protected |
Remove element from front of list.
Does not release memory.
Definition at line 360 of file memory.cpp.
References index, invalid(), last, ucommon::ObjectPager::member::mem, members, ucommon::LinkedObject::Next, result(), and root.
|
protected |
Definition at line 378 of file memory.cpp.
References ucommon::memalloc::_alloc(), index, last, ucommon::ObjectPager::member::mem, members, root, and typesize.
|
private |
|
private |
|
private |
|
private |
|
private |