From 1e3e700b8483c199f92bc1ab9d33151cdf32ecd2 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Mon, 8 Feb 2016 21:43:56 +0000
Subject: [PATCH] Function1: Rationalized the stream output

---
 .../primitives/functions/Function1/CSV/CSV.H  | 26 ++-----------------
 .../functions/Function1/CSV/CSVIO.C           | 22 ----------------
 .../functions/Function1/Constant/Constant.H   | 20 --------------
 .../functions/Function1/Constant/ConstantIO.C | 20 --------------
 .../Function1/Function1/Function1IO.C         |  5 ++--
 .../PolynomialEntry/PolynomialEntry.H         | 19 --------------
 .../PolynomialEntry/PolynomialEntryIO.C       | 20 --------------
 .../functions/Function1/Table/Table.H         | 10 -------
 .../functions/Function1/Table/TableBase.H     | 19 --------------
 .../functions/Function1/Table/TableBaseIO.C   | 20 --------------
 .../functions/Function1/TableFile/TableFile.H | 10 -------
 11 files changed, 5 insertions(+), 186 deletions(-)

diff --git a/src/OpenFOAM/primitives/functions/Function1/CSV/CSV.H b/src/OpenFOAM/primitives/functions/Function1/CSV/CSV.H
index 08ff3d52ef..fd8f8d2655 100644
--- a/src/OpenFOAM/primitives/functions/Function1/CSV/CSV.H
+++ b/src/OpenFOAM/primitives/functions/Function1/CSV/CSV.H
@@ -61,16 +61,6 @@ SourceFiles
 
 namespace Foam
 {
-
-// Forward declaration of friend functions and operators
-namespace Function1Types
-{
-    template<class Type> class CSV;
-};
-
-template<class Type>
-Ostream& operator<<(Ostream&, const Function1Types::CSV<Type>&);
-
 namespace Function1Types
 {
 
@@ -151,20 +141,8 @@ public:
 
     // Member Functions
 
-        // Access
-
-            //- Return const access to the file name
-            virtual const fileName& fName() const;
-
-
-    // I/O
-
-        //- Ostream Operator
-        friend Ostream& operator<< <Type>
-        (
-            Ostream& os,
-            const CSV<Type>& cnst
-        );
+        //- Return const access to the file name
+        virtual const fileName& fName() const;
 
         //- Write in dictionary format
         virtual void writeData(Ostream& os) const;
diff --git a/src/OpenFOAM/primitives/functions/Function1/CSV/CSVIO.C b/src/OpenFOAM/primitives/functions/Function1/CSV/CSVIO.C
index 5b4785b50d..106ed929cb 100644
--- a/src/OpenFOAM/primitives/functions/Function1/CSV/CSVIO.C
+++ b/src/OpenFOAM/primitives/functions/Function1/CSV/CSVIO.C
@@ -27,28 +27,6 @@ License
 
 // * * * * * * * * * * * * * * * IOstream Operators  * * * * * * * * * * * * //
 
-template<class Type>
-Foam::Ostream& Foam::operator<<
-(
-    Ostream& os,
-    const Function1Types::CSV<Type>& tbl
-)
-{
-    os  << static_cast<const Function1<Type>& >(tbl)
-        << token::SPACE << tbl.nHeaderLine_
-        << token::SPACE << tbl.timeColumn_
-        << token::SPACE << tbl.componentColumns_
-        << token::SPACE << tbl.separator_
-        << token::SPACE << tbl.mergeSeparators_
-        << token::SPACE << tbl.fileName_;
-
-    // Check state of Ostream
-    os.check("Ostream& operator<<(Ostream&, const CSV<Type>&)");
-
-    return os;
-}
-
-
 template<class Type>
 void Foam::Function1Types::CSV<Type>::writeData(Ostream& os) const
 {
diff --git a/src/OpenFOAM/primitives/functions/Function1/Constant/Constant.H b/src/OpenFOAM/primitives/functions/Function1/Constant/Constant.H
index 756e65af53..eda6f21654 100644
--- a/src/OpenFOAM/primitives/functions/Function1/Constant/Constant.H
+++ b/src/OpenFOAM/primitives/functions/Function1/Constant/Constant.H
@@ -46,16 +46,6 @@ SourceFiles
 
 namespace Foam
 {
-
-// Forward declaration of friend functions and operators
-namespace Function1Types
-{
-    template<class Type> class Constant;
-};
-
-template<class Type>
-Ostream& operator<<(Ostream&, const Function1Types::Constant<Type>&);
-
 namespace Function1Types
 {
 
@@ -118,16 +108,6 @@ public:
         //- Integrate between two values
         Type integrate(const scalar x1, const scalar x2) const;
 
-
-    // I/O
-
-        //- Ostream Operator
-        friend Ostream& operator<< <Type>
-        (
-            Ostream& os,
-            const Constant<Type>& cnst
-        );
-
         //- Write in dictionary format
         virtual void writeData(Ostream& os) const;
 };
diff --git a/src/OpenFOAM/primitives/functions/Function1/Constant/ConstantIO.C b/src/OpenFOAM/primitives/functions/Function1/Constant/ConstantIO.C
index bbc5141929..af9f5e439a 100644
--- a/src/OpenFOAM/primitives/functions/Function1/Constant/ConstantIO.C
+++ b/src/OpenFOAM/primitives/functions/Function1/Constant/ConstantIO.C
@@ -27,26 +27,6 @@ License
 
 // * * * * * * * * * * * * * * * IOstream Operators  * * * * * * * * * * * * //
 
-template<class Type>
-Foam::Ostream& Foam::operator<<
-(
-    Ostream& os,
-    const Function1Types::Constant<Type>& cnst
-)
-{
-    os  << static_cast<const Function1<Type>& >(cnst)
-        << token::SPACE << cnst.value_;
-
-    // Check state of Ostream
-    os.check
-    (
-        "Ostream& operator<<(Ostream&, const Constant<Type>&)"
-    );
-
-    return os;
-}
-
-
 template<class Type>
 void Foam::Function1Types::Constant<Type>::writeData(Ostream& os) const
 {
diff --git a/src/OpenFOAM/primitives/functions/Function1/Function1/Function1IO.C b/src/OpenFOAM/primitives/functions/Function1/Function1/Function1IO.C
index a0835be61d..47f7ef9312 100644
--- a/src/OpenFOAM/primitives/functions/Function1/Function1/Function1IO.C
+++ b/src/OpenFOAM/primitives/functions/Function1/Function1/Function1IO.C
@@ -31,7 +31,7 @@ template<class Type>
 Foam::Ostream& Foam::operator<<
 (
     Ostream& os,
-    const Function1<Type>& de
+    const Function1<Type>& f1
 )
 {
     // Check state of Ostream
@@ -40,7 +40,8 @@ Foam::Ostream& Foam::operator<<
         "Ostream& operator<<(Ostream&, const Function1<Type>&)"
     );
 
-    os  << de.name_;
+    os  << f1.name_;
+    f1.writeData(os);
 
     return os;
 }
diff --git a/src/OpenFOAM/primitives/functions/Function1/PolynomialEntry/PolynomialEntry.H b/src/OpenFOAM/primitives/functions/Function1/PolynomialEntry/PolynomialEntry.H
index 04ad5dfb7b..93ddccbe65 100644
--- a/src/OpenFOAM/primitives/functions/Function1/PolynomialEntry/PolynomialEntry.H
+++ b/src/OpenFOAM/primitives/functions/Function1/PolynomialEntry/PolynomialEntry.H
@@ -53,16 +53,6 @@ SourceFiles
 
 namespace Foam
 {
-
-// Forward declaration of friend functions and operators
-namespace Function1Types
-{
-    template<class Type> class Polynomial;
-};
-
-template<class Type>
-Ostream& operator<<(Ostream&, const Function1Types::Polynomial<Type>&);
-
 namespace Function1Types
 {
 
@@ -138,15 +128,6 @@ public:
             Type integrate(const scalar x1, const scalar x2) const;
 
 
-    // I/O
-
-        //- Ostream Operator
-        friend Ostream& operator<< <Type>
-        (
-            Ostream& os,
-            const Polynomial<Type>& cnst
-        );
-
         //- Write in dictionary format
         virtual void writeData(Ostream& os) const;
 };
diff --git a/src/OpenFOAM/primitives/functions/Function1/PolynomialEntry/PolynomialEntryIO.C b/src/OpenFOAM/primitives/functions/Function1/PolynomialEntry/PolynomialEntryIO.C
index 80d4f00bcc..6aa58e405d 100644
--- a/src/OpenFOAM/primitives/functions/Function1/PolynomialEntry/PolynomialEntryIO.C
+++ b/src/OpenFOAM/primitives/functions/Function1/PolynomialEntry/PolynomialEntryIO.C
@@ -27,26 +27,6 @@ License
 
 // * * * * * * * * * * * * * * * IOstream Operators  * * * * * * * * * * * * //
 
-template<class Type>
-Foam::Ostream& Foam::operator<<
-(
-    Ostream& os,
-    const Function1Types::Polynomial<Type>& poly
-)
-{
-    os  << static_cast<const Function1<Type>& >(poly)
-        << token::SPACE << poly.coeffs_;
-
-    // Check state of Ostream
-    os.check
-    (
-        "Ostream& operator<<(Ostream&, const Polynomial&)"
-    );
-
-    return os;
-}
-
-
 template<class Type>
 void Foam::Function1Types::Polynomial<Type>::writeData(Ostream& os) const
 {
diff --git a/src/OpenFOAM/primitives/functions/Function1/Table/Table.H b/src/OpenFOAM/primitives/functions/Function1/Table/Table.H
index afa30eec61..ab1cafd9c5 100644
--- a/src/OpenFOAM/primitives/functions/Function1/Table/Table.H
+++ b/src/OpenFOAM/primitives/functions/Function1/Table/Table.H
@@ -52,16 +52,6 @@ SourceFiles
 
 namespace Foam
 {
-
-// Forward declaration of friend functions and operators
-namespace Function1Types
-{
-    template<class Type> class Table;
-};
-
-template<class Type>
-Ostream& operator<<(Ostream&, const Function1Types::Table<Type>&);
-
 namespace Function1Types
 {
 
diff --git a/src/OpenFOAM/primitives/functions/Function1/Table/TableBase.H b/src/OpenFOAM/primitives/functions/Function1/Table/TableBase.H
index d3eb69e788..1f2ab0f46f 100644
--- a/src/OpenFOAM/primitives/functions/Function1/Table/TableBase.H
+++ b/src/OpenFOAM/primitives/functions/Function1/Table/TableBase.H
@@ -45,15 +45,6 @@ namespace Foam
 
 class interpolationWeights;
 
-// Forward declaration of friend functions and operators
-namespace Function1Types
-{
-    template<class Type> class TableBase;
-};
-
-template<class Type>
-Ostream& operator<<(Ostream&, const Function1Types::TableBase<Type>&);
-
 namespace Function1Types
 {
 
@@ -167,16 +158,6 @@ public:
         //- Return the dependent values
         virtual tmp<Field<Type>> y() const;
 
-
-    // I/O
-
-        //- Ostream Operator
-        friend Ostream& operator<< <Type>
-        (
-            Ostream& os,
-            const TableBase<Type>& tbl
-        );
-
         //- Write all table data in dictionary format
         virtual void writeData(Ostream& os) const;
 
diff --git a/src/OpenFOAM/primitives/functions/Function1/Table/TableBaseIO.C b/src/OpenFOAM/primitives/functions/Function1/Table/TableBaseIO.C
index 372317ae4e..d607649ad5 100644
--- a/src/OpenFOAM/primitives/functions/Function1/Table/TableBaseIO.C
+++ b/src/OpenFOAM/primitives/functions/Function1/Table/TableBaseIO.C
@@ -27,26 +27,6 @@ License
 
 // * * * * * * * * * * * * * * * IOstream Operators  * * * * * * * * * * * * //
 
-template<class Type>
-Foam::Ostream& Foam::operator<<
-(
-    Ostream& os,
-    const Function1Types::TableBase<Type>& tbl
-)
-{
-    os  << static_cast<const Function1<Type>&>(tbl);
-    os << token::SPACE << tbl.table_;
-
-    // Check state of Ostream
-    os.check
-    (
-        "Ostream& operator<<(Ostream&, const TableBase<Type>&, const bool)"
-    );
-
-    return os;
-}
-
-
 template<class Type>
 void Foam::Function1Types::TableBase<Type>::writeData(Ostream& os) const
 {
diff --git a/src/OpenFOAM/primitives/functions/Function1/TableFile/TableFile.H b/src/OpenFOAM/primitives/functions/Function1/TableFile/TableFile.H
index 2ce0e09597..3bb7d0f813 100644
--- a/src/OpenFOAM/primitives/functions/Function1/TableFile/TableFile.H
+++ b/src/OpenFOAM/primitives/functions/Function1/TableFile/TableFile.H
@@ -63,16 +63,6 @@ SourceFiles
 
 namespace Foam
 {
-
-// Forward declaration of friend functions and operators
-namespace Function1Types
-{
-    template<class Type> class TableFile;
-};
-
-template<class Type>
-Ostream& operator<<(Ostream&, const Function1Types::TableFile<Type>&);
-
 namespace Function1Types
 {
 
-- 
GitLab