From 8b4fa16d8b84d4edcb3d0a32a46dd8d91cd96d87 Mon Sep 17 00:00:00 2001 From: andy Date: Thu, 17 Nov 2011 18:10:42 +0000 Subject: [PATCH] ENH: Added dictionary write functionality to DataEntry --- .../functions/DataEntry/Constant/Constant.H | 13 +++++++++++-- .../functions/DataEntry/Constant/ConstantIO.C | 10 ++++++++++ .../functions/DataEntry/DataEntry/DataEntry.H | 17 +++++++++++------ .../functions/DataEntry/DataEntry/DataEntryIO.C | 11 ++++++++++- .../functions/DataEntry/Table/Table.H | 17 +++++++++++------ .../functions/DataEntry/Table/TableIO.C | 9 +++++++++ .../functions/DataEntry/polynomial/polynomial.H | 13 +++++++++++-- .../DataEntry/polynomial/polynomialIO.C | 8 ++++++++ 8 files changed, 81 insertions(+), 17 deletions(-) diff --git a/src/OpenFOAM/primitives/functions/DataEntry/Constant/Constant.H b/src/OpenFOAM/primitives/functions/DataEntry/Constant/Constant.H index 6706e54b3a..658a667240 100644 --- a/src/OpenFOAM/primitives/functions/DataEntry/Constant/Constant.H +++ b/src/OpenFOAM/primitives/functions/DataEntry/Constant/Constant.H @@ -108,8 +108,17 @@ public: Type integrate(const scalar x1, const scalar x2) const; - //- Ostream Operator - friend Ostream& operator<< (Ostream&, const Constant&); + // I/O + + //- Ostream Operator + friend Ostream& operator<< + ( + Ostream& os, + const Constant& cnst + ); + + //- Write in dictionary format + virtual void writeData(Ostream& os) const; }; diff --git a/src/OpenFOAM/primitives/functions/DataEntry/Constant/ConstantIO.C b/src/OpenFOAM/primitives/functions/DataEntry/Constant/ConstantIO.C index 3c61fe43b2..46063b5830 100644 --- a/src/OpenFOAM/primitives/functions/DataEntry/Constant/ConstantIO.C +++ b/src/OpenFOAM/primitives/functions/DataEntry/Constant/ConstantIO.C @@ -59,4 +59,14 @@ Foam::Ostream& Foam::operator<< } +template +void Foam::Constant::writeData(Ostream& os) const +{ + DataEntry::writeData(os); + + os << token::SPACE << value_ << token::END_STATEMENT << nl; + +} + + // ************************************************************************* // diff --git a/src/OpenFOAM/primitives/functions/DataEntry/DataEntry/DataEntry.H b/src/OpenFOAM/primitives/functions/DataEntry/DataEntry/DataEntry.H index b97ab8e512..03d1da361a 100644 --- a/src/OpenFOAM/primitives/functions/DataEntry/DataEntry/DataEntry.H +++ b/src/OpenFOAM/primitives/functions/DataEntry/DataEntry/DataEntry.H @@ -142,12 +142,17 @@ public: virtual Type integrate(const scalar x1, const scalar x2) const; - //- Ostream Operator - friend Ostream& operator<< - ( - Ostream&, - const DataEntry& - ); + // I/O + + //- Ostream Operator + friend Ostream& operator<< + ( + Ostream& os, + const DataEntry& de + ); + + //- Write in dictionary format + virtual void writeData(Ostream& os) const; }; diff --git a/src/OpenFOAM/primitives/functions/DataEntry/DataEntry/DataEntryIO.C b/src/OpenFOAM/primitives/functions/DataEntry/DataEntry/DataEntryIO.C index 5d6cb97e70..eabaadbcdc 100644 --- a/src/OpenFOAM/primitives/functions/DataEntry/DataEntry/DataEntryIO.C +++ b/src/OpenFOAM/primitives/functions/DataEntry/DataEntry/DataEntryIO.C @@ -31,7 +31,7 @@ template Foam::Ostream& Foam::operator<< ( Ostream& os, - const DataEntry& + const DataEntry& de ) { // Check state of Ostream @@ -40,8 +40,17 @@ Foam::Ostream& Foam::operator<< "Ostream& operator<<(Ostream&, const DataEntry&)" ); + os << de.name_; + return os; } +template +void Foam::DataEntry::writeData(Ostream& os) const +{ + os.writeKeyword(name_) << type(); +} + + // ************************************************************************* // diff --git a/src/OpenFOAM/primitives/functions/DataEntry/Table/Table.H b/src/OpenFOAM/primitives/functions/DataEntry/Table/Table.H index 9fc4948c3b..ab4ee3dd16 100644 --- a/src/OpenFOAM/primitives/functions/DataEntry/Table/Table.H +++ b/src/OpenFOAM/primitives/functions/DataEntry/Table/Table.H @@ -118,12 +118,17 @@ public: Type integrate(const scalar x1, const scalar x2) const; - //- Ostream Operator - friend Ostream& operator<< - ( - Ostream&, - const Table& - ); + // I/O + + //- Ostream Operator + friend Ostream& operator<< + ( + Ostream& os, + const Table& cnst + ); + + //- Write in dictionary format + virtual void writeData(Ostream& os) const; }; diff --git a/src/OpenFOAM/primitives/functions/DataEntry/Table/TableIO.C b/src/OpenFOAM/primitives/functions/DataEntry/Table/TableIO.C index 04536fd681..6fd26f353f 100644 --- a/src/OpenFOAM/primitives/functions/DataEntry/Table/TableIO.C +++ b/src/OpenFOAM/primitives/functions/DataEntry/Table/TableIO.C @@ -59,4 +59,13 @@ Foam::Ostream& Foam::operator<< } +template +void Foam::Table::writeData(Ostream& os) const +{ + DataEntry::writeData(os); + + os << nl << indent << table_ << token::END_STATEMENT << nl; +} + + // ************************************************************************* // diff --git a/src/OpenFOAM/primitives/functions/DataEntry/polynomial/polynomial.H b/src/OpenFOAM/primitives/functions/DataEntry/polynomial/polynomial.H index fa025e2856..7aa5ecb3fd 100644 --- a/src/OpenFOAM/primitives/functions/DataEntry/polynomial/polynomial.H +++ b/src/OpenFOAM/primitives/functions/DataEntry/polynomial/polynomial.H @@ -119,8 +119,17 @@ public: scalar integrate(const scalar x1, const scalar x2) const; - //- Ostream Operator - friend Ostream& operator<<(Ostream&, const polynomial&); + // I/O + + //- Ostream Operator + friend Ostream& operator<< + ( + Ostream& os, + const polynomial& cnst + ); + + //- Write in dictionary format + virtual void writeData(Ostream& os) const; }; diff --git a/src/OpenFOAM/primitives/functions/DataEntry/polynomial/polynomialIO.C b/src/OpenFOAM/primitives/functions/DataEntry/polynomial/polynomialIO.C index 3fc94dee95..45a3d27989 100644 --- a/src/OpenFOAM/primitives/functions/DataEntry/polynomial/polynomialIO.C +++ b/src/OpenFOAM/primitives/functions/DataEntry/polynomial/polynomialIO.C @@ -58,4 +58,12 @@ Foam::Ostream& Foam::operator<< } +void Foam::polynomial::writeData(Ostream& os) const +{ + DataEntry::writeData(os); + + os << nl << indent << coeffs_ << token::END_STATEMENT << nl; +} + + // ************************************************************************* //