Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include <OpenFOAM/LPtrList.H>
00027
00028
00029
00030 template<class LListBase, class T>
00031 Foam::LPtrList<LListBase, T>::LPtrList(const LPtrList<LListBase, T>& lst)
00032 :
00033 LList<LListBase, T*>()
00034 {
00035 for (const_iterator iter = lst.begin(); iter != lst.end(); ++iter)
00036 {
00037 append(iter().clone().ptr());
00038 }
00039 }
00040
00041
00042
00043
00044 template<class LListBase, class T>
00045 Foam::LPtrList<LListBase, T>::~LPtrList()
00046 {
00047 clear();
00048 }
00049
00050
00051
00052
00053 template<class LListBase, class T>
00054 bool Foam::LPtrList<LListBase, T>::eraseHead()
00055 {
00056 T* tPtr;
00057 if ((tPtr = this->removeHead()))
00058 {
00059 delete tPtr;
00060 return true;
00061 }
00062 else
00063 {
00064 return false;
00065 }
00066 }
00067
00068
00069 template<class LListBase, class T>
00070 void Foam::LPtrList<LListBase, T>::clear()
00071 {
00072 label oldSize = this->size();
00073 for (label i=0; i<oldSize; i++)
00074 {
00075 eraseHead();
00076 }
00077
00078 LList<LListBase, T*>::clear();
00079 }
00080
00081
00082 template<class LListBase, class T>
00083 void Foam::LPtrList<LListBase, T>::transfer(LPtrList<LListBase, T>& lst)
00084 {
00085 clear();
00086 LList<LListBase, T*>::transfer(lst);
00087 }
00088
00089
00090
00091
00092 template<class LListBase, class T>
00093 void Foam::LPtrList<LListBase, T>::operator=(const LPtrList<LListBase, T>& lst)
00094 {
00095 clear();
00096
00097 for (const_iterator iter = lst.begin(); iter != lst.end(); ++iter)
00098 {
00099 append(iter().clone().ptr());
00100 }
00101 }
00102
00103
00104
00105
00106 #include <OpenFOAM/LPtrListIO.C>
00107
00108
00109