---
name: "ost_LinkedDouble"
section: "3"
platform: "linux"
package: "libcommoncpp2-doc"
version: "1.8.1-10"
release: "Debian 11 (Bullseye)"
platforms: ["linux"]
url: "https://new.carta.tech/ost_LinkedDouble"
---

# ost\_LinkedDouble(3)

Self managed double linked list object chain.

## NAME

ost::LinkedDouble - Self managed double linked list object chain.

## SYNOPSIS

`#include <object.h>`

### Public Types

enum **InsertMode** { **modeAtFirst**, **modeAtLast**, **modeBefore**, **modeAfter** }\
 Requested in overloaded **insert()** method to indicate how to insert data into list.

### Public Member Functions

virtual **LinkedDouble** \* **getFirst** (void)\
 Get first linked object in list.  virtual **LinkedDouble** \* **getLast** (void)\
 Gets the last object in the list.  virtual **LinkedDouble** \* **getInsert** (void)\
 Virtual to get the insert point to use when adding new members.  **LinkedDouble** \* **getNext** (void)\
 Get next object, for convenience.  **LinkedDouble** \* **getPrev** (void)\
 Get prev object in the list.  virtual void **insert** (**LinkedDouble** &obj, **InsertMode** position=**modeAtLast**)\
 Insert object into chain at given position, as indicated by **InsertMode**; If no position is given, it defaults to **modeAtLast**, inserting element at list's end.  virtual void **detach** (void)\
 Remove object from chain.  **LinkedDouble** & **operator+=** (**LinkedDouble** &obj)\
 **LinkedDouble** & **operator--** ()\

### Protected Member Functions

**LinkedDouble** ()\
 virtual **~LinkedDouble** ()\
 virtual void **enterLock** (void)\
 virtual void **leaveLock** (void)\
 virtual **LinkedDouble** \* **firstObject** ()\
 virtual **LinkedDouble** \* **lastObject** ()\

### Protected Attributes

**LinkedDouble** \* **nextObject**\
 **LinkedDouble** \* **prevObject**\

## Detailed Description

Self managed double linked list object chain.

This is used for accumulating lists by using as a base class for a derived subclass.

**Author**

David Sugar dyfet@gnutelephony.org

Accumulating double linked list.

## Member Enumeration Documentation

### enum ost::LinkedDouble::InsertMode

Requested in overloaded **insert()** method to indicate how to insert data into list.

**Enumerator**

- *modeAtFirst*

  *insert at first position in list pointed by current object*

- *modeAtLast*

  *insert at last position in list pointed by current object*

- *modeBefore*

  *insert in list before current object*

- *modeAfter*

  *insert in list after current object*

## Constructor & Destructor Documentation

### ost::LinkedDouble::LinkedDouble ()` [inline]`, ` [protected]`

### virtual ost::LinkedDouble::~LinkedDouble ()` [protected]`, ` [virtual]`

## Member Function Documentation

### virtual void ost::LinkedDouble::detach (void)` [virtual]`

*Remove object from chain.*

### virtual void ost::LinkedDouble::enterLock (void)` [protected]`, ` [virtual]`

### virtual LinkedDouble\* ost::LinkedDouble::firstObject ()` [protected]`, ` [virtual]`

### virtual LinkedDouble\* ost::LinkedDouble::getFirst (void)` [virtual]`

*Get first linked object in list. This may be dynamically recast, and may refer to a master static bookmark pointer in a derived class. Otherwise it follows list to front.*

**Returns**

*pointer to first object in list.*

### virtual LinkedDouble\* ost::LinkedDouble::getInsert (void)` [virtual]`

*Virtual to get the insert point to use when adding new members. This may be current, or always head or always tail. As a virtual, this allows derived class to establish 'policy'.*

**Returns**

*pointer to insertion point in list.*

### virtual LinkedDouble\* ost::LinkedDouble::getLast (void)` [virtual]`

*Gets the last object in the list. This normally follows the links to the end. This is a virtual because derived class may include a static member bookmark for the current end.*

**Returns**

*pointer to last object in list.*

### LinkedDouble\* ost::LinkedDouble::getNext (void)` [inline]`

*Get next object, for convenience. Derived class may use this with a dynamic cast.*

**Returns**

*next object in list.*

### LinkedDouble\* ost::LinkedDouble::getPrev (void)` [inline]`

*Get prev object in the list.*

**Returns**

*pointer to previous object.*

### virtual void ost::LinkedDouble::insert (LinkedDouble & obj, InsertMode position = modeAtLast)` [virtual]`

*Insert object into chain at given position, as indicated by* **InsertMode***; If no position is given, it defaults to* **modeAtLast***, inserting element at list's end.*

**Parameters**

*object being inserted.* \
 *position where object is inserted.*

### virtual LinkedDouble\* ost::LinkedDouble::lastObject ()` [protected]`, ` [virtual]`

### virtual void ost::LinkedDouble::leaveLock (void)` [protected]`, ` [virtual]`

### LinkedDouble& ost::LinkedDouble::operator+= (LinkedDouble & obj)

### LinkedDouble& ost::LinkedDouble::operator-- ()

## Member Data Documentation

### LinkedDouble\* ost::LinkedDouble::nextObject` [protected]`

### LinkedDouble \* ost::LinkedDouble::prevObject` [protected]`

## Author

*Generated automatically by Doxygen for GNU CommonC++ from the source code.*
