DictionaryBase gets transfer() method

This commit is contained in:
Mark Olesen
2008-12-17 12:36:55 +01:00
parent 84f9fc5c26
commit 239c31f30f
7 changed files with 97 additions and 18 deletions

View File

@ -23,7 +23,7 @@ License
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Application Application
Description Description
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
@ -48,7 +48,6 @@ int main(int argc, char *argv[])
} }
myList.append(100.3); myList.append(100.3);
myList.append(500.3); myList.append(500.3);
Info<< nl << "And again using STL iterator: " << nl << endl; Info<< nl << "And again using STL iterator: " << nl << endl;
@ -120,7 +119,18 @@ int main(int argc, char *argv[])
Info<< "element:" << *iter << endl; Info<< "element:" << *iter << endl;
} }
Info<< nl << "Bye." << endl;
Info<< nl << "Testing transfer: " << nl << endl;
Info<< "original: " << myList << endl;
DLList<scalar> newList;
newList.transfer(myList);
Info<< nl << "source: " << myList << nl
<< nl << "target: " << newList << endl;
Info<< nl << "Done." << endl;
return 0; return 0;
} }

View File

@ -23,7 +23,7 @@ License
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Application Application
Description Description
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
@ -92,12 +92,11 @@ int main(int argc, char *argv[])
Info<< "element : " << *iter; Info<< "element : " << *iter;
} }
Info<< dict.toc() << endl; Info<< "keys: " << dict.toc() << endl;
delete dictPtr; delete dictPtr;
dictPtr = new Dictionary<ent>; Dictionary<ent> dict2;
Dictionary<ent>& dict2 = *dictPtr;
for (int i = 0; i<10; i++) for (int i = 0; i<10; i++)
{ {
@ -106,9 +105,20 @@ int main(int argc, char *argv[])
dict2.swapUp(ePtr); dict2.swapUp(ePtr);
} }
Info<< dict2 << endl; Info<< "dict:\n" << dict2 << endl;
Info<< nl << "Bye." << endl; Info<< nl << "Testing transfer: " << nl << endl;
Info<< "original: " << dict2 << endl;
Dictionary<ent> newDict;
newDict.transfer(dict2);
Info<< nl << "source: " << dict2 << nl
<< "keys: " << dict2.toc() << nl
<< "target: " << newDict << nl
<< "keys: " << newDict.toc() << endl;
Info<< nl << "Done." << endl;
return 0; return 0;
} }

View File

@ -23,7 +23,7 @@ License
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Application Application
Description Description
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
@ -52,6 +52,13 @@ public:
: :
data_(s) data_(s)
{} {}
friend Ostream& operator<<(Ostream& os, const Scalar& s)
{
os << s.data_;
return os;
}
}; };
@ -68,10 +75,8 @@ int main(int argc, char *argv[])
} }
myList.append(new Scalar(100.3)); myList.append(new Scalar(100.3));
myList.append(new Scalar(500.3)); myList.append(new Scalar(500.3));
Info<< nl << "And again using STL iterator: " << nl << endl; Info<< nl << "And again using STL iterator: " << nl << endl;
for for
@ -99,6 +104,15 @@ int main(int argc, char *argv[])
} }
Info<< nl << "Testing transfer: " << nl << endl;
Info<< "original: " << myList << endl;
ISLList<Scalar> newList;
newList.transfer(myList);
Info<< nl << "source: " << myList << nl
<< nl << "target: " << newList << endl;
Info<< nl << "Bye." << endl; Info<< nl << "Bye." << endl;
return 0; return 0;
} }

View File

@ -23,7 +23,7 @@ License
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Application Application
Description Description
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
@ -48,10 +48,8 @@ int main(int argc, char *argv[])
} }
myList.append(100.3); myList.append(100.3);
myList.append(500.3); myList.append(500.3);
Info<< nl << "And again using STL iterator: " << nl << endl; Info<< nl << "And again using STL iterator: " << nl << endl;
for for
@ -99,7 +97,27 @@ int main(int argc, char *argv[])
Info<< "element:" << *iter2 << endl; Info<< "element:" << *iter2 << endl;
} }
Info<< nl << "Bye." << endl;
for (int i = 0; i<10; i++)
{
myList.append(1.3*i);
}
myList.append(100.3);
myList.append(500.3);
Info<< nl << "Testing transfer: " << nl << endl;
Info<< "original: " << myList << endl;
SLList<scalar> newList;
newList.transfer(myList);
Info<< nl << "source: " << myList << nl
<< nl << "target: " << newList << endl;
Info<< nl << "Done." << endl;
return 0; return 0;
} }

View File

@ -23,7 +23,7 @@ License
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Application Application
Description Description
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
@ -113,7 +113,20 @@ int main(int argc, char *argv[])
Info<< dict2 << endl; Info<< dict2 << endl;
Info<< nl << "Bye." << endl;
Info<< nl << "Testing transfer: " << nl << endl;
Info<< "original: " << dict2 << endl;
UDictionary<ent> newDict;
newDict.transfer(dict2);
Info<< nl << "source: " << dict2 << nl
<< "keys: " << dict2.toc() << nl
<< "target: " << newDict << nl
<< "keys: " << newDict.toc() << endl;
Info<< nl << "Done." << endl;
return 0; return 0;
} }

View File

@ -237,6 +237,17 @@ void Foam::DictionaryBase<IDLListType, T>::clear()
} }
template<class IDLListType, class T>
void Foam::DictionaryBase<IDLListType, T>::transfer
(
DictionaryBase<IDLListType, T>& dict
)
{
IDLListType::transfer(dict);
hashedTs_.transfer(dict.hashedTs_);
}
// * * * * * * * * * * * * * * * Member Operators * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * Member Operators * * * * * * * * * * * * * //
template<class IDLListType, class T> template<class IDLListType, class T>

View File

@ -143,6 +143,9 @@ public:
//- Clear the dictionary //- Clear the dictionary
void clear(); void clear();
//- Transfer the contents of the argument into this DictionaryBase
// and annull the argument.
void transfer(DictionaryBase<IDLListType, T>&);
// Member operators // Member operators