DLListBase / SLListBase get transfer() method

This commit is contained in:
Mark Olesen
2008-12-17 11:51:56 +01:00
parent d5ac9d4c36
commit 9681a66a80
4 changed files with 74 additions and 26 deletions

View File

@ -167,6 +167,9 @@ public:
//- Clear the list
inline void clear();
//- Transfer the contents of the argument into this List
// and annull the argument list.
inline void transfer(DLListBase&);
// STL iterator

View File

@ -81,7 +81,8 @@ inline Foam::label Foam::DLListBase::size() const
}
inline Foam::DLListBase::link* Foam::DLListBase::first()
inline Foam::DLListBase::link*
Foam::DLListBase::first()
{
if (!nElmts_)
{
@ -93,7 +94,8 @@ inline Foam::DLListBase::link* Foam::DLListBase::first()
}
inline const Foam::DLListBase::link* Foam::DLListBase::first() const
inline const Foam::DLListBase::link*
Foam::DLListBase::first() const
{
if (!nElmts_)
{
@ -105,7 +107,8 @@ inline const Foam::DLListBase::link* Foam::DLListBase::first() const
}
inline Foam::DLListBase::link* Foam::DLListBase::last()
inline Foam::DLListBase::link*
Foam::DLListBase::last()
{
if (!nElmts_)
{
@ -117,7 +120,8 @@ inline Foam::DLListBase::link* Foam::DLListBase::last()
}
inline const Foam::DLListBase::link* Foam::DLListBase::last() const
inline const Foam::DLListBase::link*
Foam::DLListBase::last() const
{
if (!nElmts_)
{
@ -131,13 +135,24 @@ inline const Foam::DLListBase::link* Foam::DLListBase::last() const
inline void Foam::DLListBase::clear()
{
nElmts_ = 0;
first_ = 0;
last_ = 0;
last_ = 0;
nElmts_ = 0;
}
inline Foam::DLListBase::link* Foam::DLListBase::remove
inline void Foam::DLListBase::transfer(DLListBase& lst)
{
first_ = lst.first_;
last_ = lst.last_;
nElmts_ = lst.nElmts_;
lst.clear();
}
inline Foam::DLListBase::link*
Foam::DLListBase::remove
(
DLListBase::iterator& it
)
@ -146,7 +161,8 @@ inline Foam::DLListBase::link* Foam::DLListBase::remove
}
inline Foam::DLListBase::link* Foam::DLListBase::replace
inline Foam::DLListBase::link*
Foam::DLListBase::replace
(
DLListBase::iterator& oldIter,
DLListBase::link* newLink
@ -193,13 +209,15 @@ inline bool Foam::DLListBase::iterator::operator!=(const iterator& iter) const
}
inline Foam::DLListBase::link& Foam::DLListBase::iterator::operator*()
inline Foam::DLListBase::link&
Foam::DLListBase::iterator::operator*()
{
return *curElmt_;
}
inline Foam::DLListBase::iterator& Foam::DLListBase::iterator::operator++()
inline Foam::DLListBase::iterator&
Foam::DLListBase::iterator::operator++()
{
// Check if the curElmt_ is the last element (if it points to itself)
// or if the list is empty because the last element may have been removed
@ -217,7 +235,8 @@ inline Foam::DLListBase::iterator& Foam::DLListBase::iterator::operator++()
}
inline Foam::DLListBase::iterator Foam::DLListBase::iterator::operator++(int)
inline Foam::DLListBase::iterator
Foam::DLListBase::iterator::operator++(int)
{
iterator tmp = *this;
++*this;
@ -225,7 +244,8 @@ inline Foam::DLListBase::iterator Foam::DLListBase::iterator::operator++(int)
}
inline Foam::DLListBase::iterator Foam::DLListBase::begin()
inline Foam::DLListBase::iterator
Foam::DLListBase::begin()
{
if (size())
{
@ -291,7 +311,8 @@ inline bool Foam::DLListBase::const_iterator::operator!=
}
inline const Foam::DLListBase::link& DLListBase::const_iterator::operator*()
inline const Foam::DLListBase::link&
Foam::DLListBase::const_iterator::operator*()
{
return *curElmt_;
}
@ -322,7 +343,8 @@ Foam::DLListBase::const_iterator::operator++(int)
}
inline Foam::DLListBase::const_iterator Foam::DLListBase::begin() const
inline Foam::DLListBase::const_iterator
Foam::DLListBase::begin() const
{
if (size())
{
@ -335,7 +357,8 @@ inline Foam::DLListBase::const_iterator Foam::DLListBase::begin() const
}
inline const Foam::DLListBase::const_iterator& Foam::DLListBase::end() const
inline const Foam::DLListBase::const_iterator&
Foam::DLListBase::end() const
{
return endConstIter;
}

View File

@ -152,6 +152,9 @@ public:
//- Clear the list
inline void clear();
//- Transfer the contents of the argument into this List
// and annull the argument list.
inline void transfer(SLListBase&);
// STL iterator

View File

@ -71,7 +71,8 @@ inline Foam::label Foam::SLListBase::size() const
}
inline Foam::SLListBase::link* Foam::SLListBase::first()
inline Foam::SLListBase::link*
Foam::SLListBase::first()
{
if (!nElmts_)
{
@ -83,7 +84,8 @@ inline Foam::SLListBase::link* Foam::SLListBase::first()
}
inline const Foam::SLListBase::link* Foam::SLListBase::first() const
inline const Foam::SLListBase::link*
Foam::SLListBase::first() const
{
if (!nElmts_)
{
@ -95,7 +97,8 @@ inline const Foam::SLListBase::link* Foam::SLListBase::first() const
}
inline Foam::SLListBase::link* Foam::SLListBase::last()
inline Foam::SLListBase::link*
Foam::SLListBase::last()
{
if (!nElmts_)
{
@ -107,7 +110,8 @@ inline Foam::SLListBase::link* Foam::SLListBase::last()
}
inline const Foam::SLListBase::link* Foam::SLListBase::last() const
inline const Foam::SLListBase::link*
Foam::SLListBase::last() const
{
if (!nElmts_)
{
@ -121,8 +125,17 @@ inline const Foam::SLListBase::link* Foam::SLListBase::last() const
inline void Foam::SLListBase::clear()
{
nElmts_ = 0;
last_ = 0;
nElmts_ = 0;
}
inline void Foam::SLListBase::transfer(SLListBase& lst)
{
last_ = lst.last_;
nElmts_ = lst.nElmts_;
lst.clear();
}
@ -194,7 +207,8 @@ inline Foam::SLListBase::iterator& Foam::SLListBase::iterator::operator++()
}
inline Foam::SLListBase::iterator Foam::SLListBase::iterator::operator++(int)
inline Foam::SLListBase::iterator
Foam::SLListBase::iterator::operator++(int)
{
iterator tmp = *this;
++*this;
@ -202,7 +216,8 @@ inline Foam::SLListBase::iterator Foam::SLListBase::iterator::operator++(int)
}
inline Foam::SLListBase::iterator Foam::SLListBase::begin()
inline Foam::SLListBase::iterator
Foam::SLListBase::begin()
{
if (size())
{
@ -215,7 +230,8 @@ inline Foam::SLListBase::iterator Foam::SLListBase::begin()
}
inline const Foam::SLListBase::iterator& Foam::SLListBase::end()
inline const Foam::SLListBase::iterator&
Foam::SLListBase::end()
{
return endIter;
}
@ -268,7 +284,8 @@ inline bool Foam::SLListBase::const_iterator::operator!=
}
inline const Foam::SLListBase::link& SLListBase::const_iterator::operator*()
inline const Foam::SLListBase::link&
Foam::SLListBase::const_iterator::operator*()
{
return *curElmt_;
}
@ -299,7 +316,8 @@ Foam::SLListBase::const_iterator::operator++(int)
}
inline Foam::SLListBase::const_iterator Foam::SLListBase::begin() const
inline Foam::SLListBase::const_iterator
Foam::SLListBase::begin() const
{
if (size())
{
@ -312,7 +330,8 @@ inline Foam::SLListBase::const_iterator Foam::SLListBase::begin() const
}
inline const Foam::SLListBase::const_iterator& Foam::SLListBase::end() const
inline const Foam::SLListBase::const_iterator&
Foam::SLListBase::end() const
{
return endConstIter;
}