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::OrderedObject Class Reference

A linked object base class for ordered objects. More...

#include <linked.h>

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

Public Member Functions

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...
 
OrderedObjectgetNext (void) const
 Get next ordered member when iterating. More...
 
- Public Member Functions inherited from ucommon::LinkedObject
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...
 
LinkedObjectgetNext (void) const
 Get next effective object when iterating. More...
 

Protected Member Functions

 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)
 
- Protected Member Functions inherited from ucommon::LinkedObject
 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)
 

Friends

class DLinkedObject
 
class OrderedIndex
 

Additional Inherited Members

- Static Public Member Functions inherited from ucommon::LinkedObject
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 LinkedObjectgetIndexed (LinkedObject *root, unsigned index)
 Get member by index. More...
 
- Protected Attributes inherited from ucommon::LinkedObject
LinkedObjectNext
 

Detailed Description

A linked object base class for ordered objects.

This is used for objects that must be ordered and listed through the OrderedIndex class.

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

Definition at line 312 of file linked.h.

Constructor & Destructor Documentation

◆ OrderedObject() [1/3]

ucommon::OrderedObject::OrderedObject ( OrderedIndex index)
protected

Construct an ordered object aot end of a an index.

Parameters
indexwe are listed on.

Definition at line 643 of file linked.cpp.

References enlistTail(), and ucommon::LinkedObject::Next.

Here is the call graph for this function:

◆ OrderedObject() [2/3]

ucommon::OrderedObject::OrderedObject ( )
protected

Construct an ordered object unattached.

Definition at line 635 of file linked.cpp.

◆ OrderedObject() [3/3]

ucommon::OrderedObject::OrderedObject ( const OrderedObject from)
protected

Definition at line 639 of file linked.cpp.

Member Function Documentation

◆ delist()

void ucommon::OrderedObject::delist ( OrderedIndex index)

Remove our ordered object from an existing index.

Parameters
indexwe are listed on.

Definition at line 651 of file linked.cpp.

References getNext(), ucommon::OrderedIndex::head, ucommon::LinkedObject::Next, and ucommon::OrderedIndex::tail.

Referenced by ucommon::keyfile::create(), ucommon::NamedTree::purge(), ucommon::NamedTree::relistHead(), ucommon::NamedTree::relistTail(), and ucommon::NamedTree::remove().

Here is the call graph for this function:

◆ enlist()

void ucommon::OrderedObject::enlist ( OrderedIndex index)
virtual

List our ordered object in default strategy mode.

The default base class uses enlistTail.

Parameters
indexwe are listing on.

Reimplemented in ucommon::DLinkedObject.

Definition at line 676 of file linked.cpp.

References enlistTail(), and ucommon::LinkedObject::Next.

Referenced by ucommon::shell::getargv(), and ucommon::shell::parse().

Here is the call graph for this function:

◆ enlistHead()

void ucommon::OrderedObject::enlistHead ( OrderedIndex index)

List our ordered object at start of a linked list on an index.

Parameters
indexwe are listing on.

Definition at line 696 of file linked.cpp.

References ucommon::OrderedIndex::head, ucommon::LinkedObject::Next, and ucommon::OrderedIndex::tail.

Referenced by ucommon::NamedTree::relistHead().

◆ enlistTail()

void ucommon::OrderedObject::enlistTail ( OrderedIndex index)

List our ordered object at end of a linked list on an index.

Parameters
indexwe are listing on.

Definition at line 684 of file linked.cpp.

References ucommon::OrderedIndex::head, ucommon::LinkedObject::Next, and ucommon::OrderedIndex::tail.

Referenced by enlist(), ucommon::NamedTree::NamedTree(), OrderedObject(), and ucommon::NamedTree::relistTail().

◆ getNext()

OrderedObject * ucommon::OrderedObject::getNext ( void  ) const
inline

Get next ordered member when iterating.

Returns
next ordered object.

Definition at line 362 of file linked.h.

Referenced by delist().

Friends And Related Function Documentation

◆ DLinkedObject

friend class DLinkedObject
friend

Definition at line 315 of file linked.h.

◆ OrderedIndex

friend class OrderedIndex
friend

Definition at line 316 of file linked.h.


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