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..
![]() ![]() |
A double linked list object. More...
#include <linked.h>
Public Member Functions | |
void | delist (void) |
Remove our object from the list it is currently part of. More... | |
void | enlistHead (OrderedIndex *index) |
Attach our object to the start of a linked list though an ordered index. More... | |
void | enlistTail (OrderedIndex *index) |
Attach our object to the end of a linked list though an ordered index. More... | |
void | enlist (OrderedIndex *index) |
Attach our object to a linked list. More... | |
bool | is_head (void) const |
Test if we are at the head of a list. More... | |
bool | is_tail (void) const |
Test if we are at the end of a list. More... | |
DLinkedObject * | getPrev (void) const |
Get previous node in the list for reverse iteration. More... | |
DLinkedObject * | getNext (void) const |
Get next node in the list when iterating. More... | |
void | insertTail (DLinkedObject *object) |
Insert object behind our object. More... | |
void | insertHead (DLinkedObject *object) |
Insert object in front of our object. More... | |
virtual void | insert (DLinkedObject *object) |
Insert object, method in derived object. More... | |
DLinkedObject & | operator+= (DLinkedObject *object) |
Insert object behind our object. More... | |
DLinkedObject & | operator-= (DLinkedObject *object) |
Insert object in front of our object. More... | |
DLinkedObject & | operator*= (DLinkedObject *object) |
Insert object in list with our object. More... | |
![]() | |
void | enlistTail (OrderedIndex *index) |
List our ordered object at end of a linked list on an index. More... | |
void | enlistHead (OrderedIndex *index) |
List our ordered object at start of a linked list on an index. More... | |
virtual void | enlist (OrderedIndex *index) |
List our ordered object in default strategy mode. More... | |
void | delist (OrderedIndex *index) |
Remove our ordered object from an existing index. More... | |
OrderedObject * | getNext (void) const |
Get next ordered member when iterating. More... | |
![]() | |
virtual | ~LinkedObject () |
virtual void | release (void) __OVERRIDE |
Release list, mark as no longer linked. More... | |
virtual void | retain (void) __OVERRIDE |
Retain by marking as self referenced list. More... | |
void | enlist (LinkedObject **root) |
Add our object to an existing linked list through a pointer. More... | |
void | delist (LinkedObject **root) |
Locate and remove ourselves from a list of objects. More... | |
bool | is_member (LinkedObject *list) const |
Search to see if we are a member of a specific list. More... | |
LinkedObject * | getNext (void) const |
Get next effective object when iterating. More... | |
Protected Member Functions | |
DLinkedObject (OrderedIndex *index) | |
Construct and add our object to an existing double linked list at end. More... | |
DLinkedObject () | |
Construct an unlinked object. More... | |
DLinkedObject (const DLinkedObject &from) | |
virtual | ~DLinkedObject () |
Delete linked list object. More... | |
![]() | |
OrderedObject (OrderedIndex *index) | |
Construct an ordered object aot end of a an index. More... | |
OrderedObject () | |
Construct an ordered object unattached. More... | |
OrderedObject (const OrderedObject &from) | |
![]() | |
LinkedObject (LinkedObject **root) | |
Construct base class attached to a chain of objects. More... | |
LinkedObject () | |
Construct base class unattached to anyone. More... | |
LinkedObject (const LinkedObject &from) | |
Protected Attributes | |
DLinkedObject * | Prev |
OrderedIndex * | Root |
![]() | |
LinkedObject * | Next |
Friends | |
class | ObjectQueue |
Additional Inherited Members | |
![]() | |
static void | purge (LinkedObject *root) |
Release all objects from a list. More... | |
static unsigned | count (const LinkedObject *root) |
Count the number of linked objects in a list. More... | |
static LinkedObject * | getIndexed (LinkedObject *root, unsigned index) |
Get member by index. More... | |
A double linked list object.
This is used as a base class for objects that will be organized through ordered double linked lists which allow convenient insertion and deletion of list members anywhere in the list.
|
protected |
Construct and add our object to an existing double linked list at end.
index | of linked list we are listed in. |
Definition at line 723 of file linked.cpp.
References enlist(), ucommon::LinkedObject::Next, Prev, and Root.
|
protected |
Construct an unlinked object.
Definition at line 709 of file linked.cpp.
References ucommon::LinkedObject::Next, Prev, and Root.
|
protected |
Definition at line 716 of file linked.cpp.
References ucommon::LinkedObject::Next, Prev, and Root.
|
protectedvirtual |
Delete linked list object.
If it is a member of a list of objects, then the list is reformed around us.
Definition at line 846 of file linked.cpp.
References delist().
void ucommon::DLinkedObject::delist | ( | void | ) |
Remove our object from the list it is currently part of.
Definition at line 827 of file linked.cpp.
References ucommon::OrderedIndex::head, ucommon::LinkedObject::Next, Prev, Root, and ucommon::OrderedIndex::tail.
Referenced by enlistHead(), enlistTail(), insertHead(), insertTail(), and ~DLinkedObject().
|
virtual |
Attach our object to a linked list.
The default strategy is to add to tail.
index | of linked list we are joining. |
Reimplemented from ucommon::OrderedObject.
Definition at line 731 of file linked.cpp.
References enlistTail().
Referenced by DLinkedObject().
void ucommon::DLinkedObject::enlistHead | ( | OrderedIndex * | index | ) |
Attach our object to the start of a linked list though an ordered index.
If we are already attached to a list we are delisted first.
index | of linked list we are joining. |
Definition at line 785 of file linked.cpp.
References delist(), ucommon::OrderedIndex::head, ucommon::LinkedObject::Next, Prev, Root, and ucommon::OrderedIndex::tail.
void ucommon::DLinkedObject::enlistTail | ( | OrderedIndex * | index | ) |
Attach our object to the end of a linked list though an ordered index.
If we are already attached to a list we are delisted first.
index | of linked list we are joining. |
Definition at line 807 of file linked.cpp.
References delist(), ucommon::OrderedIndex::head, ucommon::LinkedObject::Next, Prev, Root, and ucommon::OrderedIndex::tail.
Referenced by enlist().
|
inline |
|
inline |
|
virtual |
Insert object, method in derived object.
object | to add to list. |
Definition at line 738 of file linked.cpp.
References insertTail().
void ucommon::DLinkedObject::insertHead | ( | DLinkedObject * | object | ) |
Insert object in front of our object.
object | to add to list. |
Definition at line 745 of file linked.cpp.
References delist(), ucommon::OrderedIndex::head, ucommon::LinkedObject::Next, Prev, and Root.
void ucommon::DLinkedObject::insertTail | ( | DLinkedObject * | object | ) |
Insert object behind our object.
object | to add to list. |
Definition at line 765 of file linked.cpp.
References delist(), ucommon::LinkedObject::Next, Prev, Root, and ucommon::OrderedIndex::tail.
Referenced by insert().
|
inline |
Test if we are at the head of a list.
Definition at line 826 of file linked.h.
References ucommon::OrderedIndex::head.
|
inline |
Test if we are at the end of a list.
Definition at line 834 of file linked.h.
References ucommon::OrderedIndex::tail.
|
inline |
|
inline |
|
inline |
|
protected |
Definition at line 773 of file linked.h.
Referenced by delist(), DLinkedObject(), enlistHead(), enlistTail(), insertHead(), and insertTail().
|
protected |
Definition at line 774 of file linked.h.
Referenced by delist(), DLinkedObject(), enlistHead(), enlistTail(), insertHead(), and insertTail().