Base Framework
Public Member Functions | Protected Member Functions | List of all members
List< TYPE >::ListImpl Class Reference

Inherits ReferenceCountedObject.

Public Member Functions

 ListImpl () noexcept
 
 ListImpl (const ListImpl &copy)
 
 ListImpl (ListImpl &&move) noexcept
 
MemorySize getSize () const noexcept
 
NodegetFirst () noexcept
 
const NodegetFirst () const noexcept
 
NodegetLast () noexcept
 
const NodegetLast () const noexcept
 
void attachBefore (Node *node, Node *next)
 
void attachAfter (Node *node, Node *previous)
 
Nodeinsert (Node *node, const TYPE &value)
 
Nodeinsert (Node *node, TYPE &&value)
 
void remove (Node *node)
 
void append (const TYPE &value)
 
void append (TYPE &&value)
 
void prepend (const TYPE &value)
 
void prepend (TYPE &&value)
 
void removeFirst ()
 
void removeLast ()
 
void shuffle ()
 
void moveToFront (Node *node)
 
void moveToBack (Node *node)
 
void removeAll ()
 
 ~ListImpl ()
 
- Public Member Functions inherited from ReferenceCountedObject
 ReferenceCountedObject () noexcept
 
 ReferenceCountedObject (const ReferenceCountedObject &copy) noexcept
 
 ReferenceCountedObject (ReferenceCountedObject &&move) noexcept
 
ReferenceCountedObjectoperator= (const ReferenceCountedObject &copy) noexcept
 
ReferenceCountedObjectoperator= (ReferenceCountedObject &&move) noexcept
 
MemorySize getNumberOfReferences_INTERNAL () const noexcept
 
virtual bool useGarbageCollector () const noexcept
 
- Public Member Functions inherited from DynamicObject
 DynamicObject () noexcept
 
bool isValidObject () const noexcept
 
virtual ~DynamicObject () noexcept(false)
 
 _COM_AZURE_DEV__BASE__OVERRIDE_ALLOC ()
 

Protected Member Functions

NodedetachNode (Node *node) noexcept
 

Constructor & Destructor Documentation

◆ ListImpl() [1/2]

template<class TYPE >
List< TYPE >::ListImpl::ListImpl ( )
inlinenoexcept

Initializes an empty list.

◆ ListImpl() [2/2]

template<class TYPE >
List< TYPE >::ListImpl::ListImpl ( const ListImpl copy)
inline

Initializes list from other list.

◆ ~ListImpl()

template<class TYPE >
List< TYPE >::ListImpl::~ListImpl ( )
inline

Destroys the list.

Member Function Documentation

◆ append() [1/2]

template<class TYPE >
void List< TYPE >::ListImpl::append ( const TYPE &  value)
inline

Appends the value to the end of this list.

◆ append() [2/2]

template<class TYPE >
void List< TYPE >::ListImpl::append ( TYPE &&  value)
inline

Appends the value to the end of this list.

◆ detachNode()

template<class TYPE >
Node* List< TYPE >::ListImpl::detachNode ( Node node)
inlineprotectednoexcept

Detaches the specified node from this list.

Parameters
nodeThe node to be detached. Must not be nullptr.

◆ getFirst() [1/2]

template<class TYPE >
const Node* List< TYPE >::ListImpl::getFirst ( ) const
inlinenoexcept

Returns the first node of the list.

◆ getFirst() [2/2]

template<class TYPE >
Node* List< TYPE >::ListImpl::getFirst ( )
inlinenoexcept

Returns the first node of the list.

◆ getLast() [1/2]

template<class TYPE >
const Node* List< TYPE >::ListImpl::getLast ( ) const
inlinenoexcept

Returns the last node of the list.

◆ getLast() [2/2]

template<class TYPE >
Node* List< TYPE >::ListImpl::getLast ( )
inlinenoexcept

Returns the last node of the list.

◆ getSize()

template<class TYPE >
MemorySize List< TYPE >::ListImpl::getSize ( ) const
inlinenoexcept

Returns the number of elements of the list.

◆ insert() [1/2]

template<class TYPE >
Node* List< TYPE >::ListImpl::insert ( Node node,
const TYPE &  value 
)
inline

Inserts the value at the specified node of this list.

Parameters
nodeNode specifying the position. Must not be nullptr.
valueThe value to be inserted.

◆ insert() [2/2]

template<class TYPE >
Node* List< TYPE >::ListImpl::insert ( Node node,
TYPE &&  value 
)
inline

Inserts the value at the specified node of this list.

Parameters
nodeNode specifying the position. Must not be nullptr.
valueThe value to be inserted.

◆ moveToBack()

template<class TYPE >
void List< TYPE >::ListImpl::moveToBack ( Node node)
inline

Moves the node to the back.

◆ moveToFront()

template<class TYPE >
void List< TYPE >::ListImpl::moveToFront ( Node node)
inline

Moves the node to the front.

◆ prepend() [1/2]

template<class TYPE >
void List< TYPE >::ListImpl::prepend ( const TYPE &  value)
inline

Prepends the value to the beginning of this list.

◆ prepend() [2/2]

template<class TYPE >
void List< TYPE >::ListImpl::prepend ( TYPE &&  value)
inline

Prepends the value to the beginning of this list.

◆ remove()

template<class TYPE >
void List< TYPE >::ListImpl::remove ( Node node)
inline

Removes the specified node from this list.

Parameters
nodeThe node to be removed. Must not be nullptr.

◆ removeFirst()

template<class TYPE >
void List< TYPE >::ListImpl::removeFirst ( )
inline

Removes this first node of this list.

◆ removeLast()

template<class TYPE >
void List< TYPE >::ListImpl::removeLast ( )
inline

Removes the last node of this list.