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..
  Fossies Dox: ucommon-7.0.0.tar.gz  ("unofficial" and yet experimental doxygen-generated source code documentation)  

Loading...
Searching...
No Matches
ucommon::ObjectPager Class Reference

#include <memory.h>

Inheritance diagram for ucommon::ObjectPager:
[legend]
Collaboration diagram for ucommon::ObjectPager:
[legend]

Classes

class  member
 

Public Types

typedef linked_pointer< ObjectPager::memberiterator
 Convenience typedef for iterative pointer. More...
 

Public Member Functions

void clear (void)
 Purge all members and release pager member. More...
 
ObjectPager::memberbegin (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...
 
- Protected Member Functions inherited from ucommon::memalloc
page_tpager (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 &copy)
 
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
 
LinkedObjectroot
 
size_t typesize
 
memberlast
 
void ** index
 

Additional Inherited Members

- Protected Attributes inherited from ucommon::memalloc
unsigned limit
 

Detailed Description

Definition at line 262 of file memory.h.

Member Typedef Documentation

◆ iterator

Convenience typedef for iterative pointer.

Definition at line 371 of file memory.h.

Constructor & Destructor Documentation

◆ ObjectPager()

ucommon::ObjectPager::ObjectPager ( size_t  objsize,
size_t  pagesize = 256 
)
protected

Definition at line 312 of file memory.cpp.

References index, last, members, root, and typesize.

Member Function Documentation

◆ __DELETE_COPY()

ucommon::ObjectPager::__DELETE_COPY ( ObjectPager  )
private

References ucommon::clear().

Here is the call graph for this function:

◆ add()

void * ucommon::ObjectPager::add ( void  )
protected

Add object to list.

Parameters
objectto 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.

Here is the call graph for this function:

◆ assign()

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.

Here is the call graph for this function:

◆ begin()

ObjectPager::member * ucommon::ObjectPager::begin ( void  )
inline

Get root of pager list.

This is useful for externally enumerating the list of strings.

Returns
first member of list or NULL if empty.

Definition at line 348 of file memory.h.

◆ clear()

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.

Here is the call graph for this function:

◆ count()

unsigned ucommon::ObjectPager::count ( void  ) const
inline

Get the number of items in the pager string list.

Returns
number of items stored.

Definition at line 364 of file memory.h.

◆ get()

void * ucommon::ObjectPager::get ( unsigned  item) const
protected

Get object from list.

This is useful when objectpager is passed as a pointer and hence inconvenient for the [] operator.

Parameters
itemto access.
Returns
pointer to text for item, or NULL if out of range.

Definition at line 338 of file memory.cpp.

References invalid(), list(), members, and root.

Here is the call graph for this function:

◆ invalid()

void * ucommon::ObjectPager::invalid ( void  ) const
protected

Invalid object...

Returns
typically NULL.

Definition at line 425 of file memory.cpp.

Referenced by get(), pop(), and pull().

◆ list()

void ** ucommon::ObjectPager::list ( void  )
protected

Gather index list.

Returns
index.

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().

Here is the call graph for this function:

◆ operator bool()

ucommon::ObjectPager::operator bool ( ) const
inline

Definition at line 352 of file memory.h.

◆ operator!()

bool ucommon::ObjectPager::operator! ( ) const
inline

Definition at line 356 of file memory.h.

◆ pages()

unsigned ucommon::ObjectPager::pages ( void  )
inline

Definition at line 377 of file memory.h.

◆ pop()

void * ucommon::ObjectPager::pop ( void  )
protected

Remove element from back of list.

Does not release memory.

Returns
object removed.

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.

Here is the call graph for this function:

◆ pull()

void * ucommon::ObjectPager::pull ( void  )
protected

Remove element from front of list.

Does not release memory.

Returns
object removed.

Definition at line 360 of file memory.cpp.

References index, invalid(), last, ucommon::ObjectPager::member::mem, members, ucommon::LinkedObject::Next, result(), and root.

Here is the call graph for this function:

◆ push()

void * ucommon::ObjectPager::push ( void  )
protected

Definition at line 378 of file memory.cpp.

References ucommon::memalloc::_alloc(), index, last, ucommon::ObjectPager::member::mem, members, root, and typesize.

Here is the call graph for this function:

◆ size()

size_t ucommon::ObjectPager::size ( void  )
inline

Definition at line 373 of file memory.h.

Member Data Documentation

◆ index

void** ucommon::ObjectPager::index
private

Definition at line 295 of file memory.h.

Referenced by add(), assign(), clear(), list(), ObjectPager(), pop(), pull(), and push().

◆ last

member* ucommon::ObjectPager::last
private

Definition at line 294 of file memory.h.

Referenced by add(), assign(), clear(), ObjectPager(), pop(), pull(), and push().

◆ members

unsigned ucommon::ObjectPager::members
private

Definition at line 291 of file memory.h.

Referenced by add(), assign(), clear(), get(), list(), ObjectPager(), pop(), pull(), and push().

◆ root

LinkedObject* ucommon::ObjectPager::root
private

Definition at line 292 of file memory.h.

Referenced by add(), assign(), clear(), get(), list(), ObjectPager(), pop(), pull(), and push().

◆ typesize

size_t ucommon::ObjectPager::typesize
private

Definition at line 293 of file memory.h.

Referenced by add(), assign(), ObjectPager(), and push().


The documentation for this class was generated from the following files: