UCommon
Public Member Functions | Protected Member Functions | Protected Attributes | Friends
ucommon::OrderedIndex Class Reference

An index container for maintaining an ordered list of objects. More...

#include <linked.h>

Inheritance diagram for ucommon::OrderedIndex:
Inheritance graph
[legend]
Collaboration diagram for ucommon::OrderedIndex:
Collaboration graph
[legend]

Public Member Functions

void add (OrderedObject *ordered)
 Add an object into the ordered index. More...
 
LinkedObject * begin (void) const
 Return first object in list for iterators. More...
 
unsigned count (void) const
 Count of objects this list manages. More...
 
LinkedObject * end (void) const
 Return last object in list for iterators. More...
 
LinkedObject * find (unsigned offset) const
 Find a specific member in the ordered list. More...
 
LinkedObject * get (void)
 Get (pull) object off the list. More...
 
LinkedObject * getIndexed (unsigned index) const
 Get an indexed member from the ordered index. More...
 
LinkedObject ** index (void) const
 Return a pointer to the head of the list. More...
 
virtual void lock_index (void)
 Used to synchronize lists managed by multiple threads. More...
 
LinkedObject * operator* () const
 Return head object pointer. More...
 
void operator*= (OrderedObject *object)
 Add object to our list. More...
 
OrderedIndex & operator= (const OrderedIndex &object)
 Assign ordered index. More...
 
 OrderedIndex ()
 Create and initialize an empty index.
 
 OrderedIndex (const OrderedIndex &source)
 
void purge (void)
 Purge the linked list and then set the index to empty.
 
void reset (void)
 Reset linked list to empty without purging.
 
virtual void unlock_index (void)
 Used to synchronize lists managed by multiple threads. More...
 
virtual ~OrderedIndex ()
 Destroy index.
 

Protected Member Functions

void copy (const OrderedIndex &source)
 

Protected Attributes

OrderedObject * head
 
OrderedObject * tail
 

Friends

class DLinkedObject
 
class LinkedList
 
class NamedObject
 
class OrderedObject
 

Detailed Description

An index container for maintaining an ordered list of objects.

This index holds a pointer to the head and tail of an ordered list of linked objects. Fundamental methods for supporting iterators are also provided.

Author
David Sugar dyfet.nosp@m.@gnu.nosp@m.telep.nosp@m.hony.nosp@m..org

Definition at line 175 of file linked.h.

Member Function Documentation

void ucommon::OrderedIndex::add ( OrderedObject *  ordered)

Add an object into the ordered index.

Parameters
orderedobject to add to the index.
LinkedObject* ucommon::OrderedIndex::begin ( void  ) const
inline

Return first object in list for iterators.

Returns
first object in list.

Definition at line 268 of file linked.h.

unsigned ucommon::OrderedIndex::count ( void  ) const

Count of objects this list manages.

Returns
number of objects in the list.
LinkedObject* ucommon::OrderedIndex::end ( void  ) const
inline

Return last object in list for iterators.

Returns
last object in list.

Definition at line 275 of file linked.h.

LinkedObject* ucommon::OrderedIndex::find ( unsigned  offset) const

Find a specific member in the ordered list.

Parameters
offsetto member to find.
LinkedObject* ucommon::OrderedIndex::get ( void  )

Get (pull) object off the list.

The start of the list is advanced to the next object.

Returns
LinkedObject based object that was head of the list.
LinkedObject* ucommon::OrderedIndex::getIndexed ( unsigned  index) const
inline

Get an indexed member from the ordered index.

Parameters
indexof member to fetch.
Returns
LinkedObject member of index.

Definition at line 261 of file linked.h.

LinkedObject** ucommon::OrderedIndex::index ( void  ) const

Return a pointer to the head of the list.

This allows the head pointer to be used like a simple root list pointer for pure LinkedObject based objects.

Returns
LinkedIndex style object.
virtual void ucommon::OrderedIndex::lock_index ( void  )
virtual

Used to synchronize lists managed by multiple threads.

A derived locking method would be invoked.

LinkedObject* ucommon::OrderedIndex::operator* ( ) const
inline

Return head object pointer.

Returns
head pointer.

Definition at line 282 of file linked.h.

void ucommon::OrderedIndex::operator*= ( OrderedObject *  object)

Add object to our list.

Parameters
objectto add.
OrderedIndex& ucommon::OrderedIndex::operator= ( const OrderedIndex &  object)
inline

Assign ordered index.

Parameters
objectto copy from.

Definition at line 289 of file linked.h.

Here is the call graph for this function:

virtual void ucommon::OrderedIndex::unlock_index ( void  )
virtual

Used to synchronize lists managed by multiple threads.

A derived unlocking method would be invoked.


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