fieldDictionary.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration | Website: https://openfoam.org
5  \\ / A nd | Copyright (C) 2011-2021 OpenFOAM Foundation
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
11  OpenFOAM is free software: you can redistribute it and/or modify it
12  under the terms of the GNU General Public License as published by
13  the Free Software Foundation, either version 3 of the License, or
14  (at your option) any later version.
15 
16  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
19  for more details.
20 
21  You should have received a copy of the GNU General Public License
22  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
23 
24 Class
25  Foam::fieldDictionary
26 
27 Description
28  Read field as dictionary (without mesh).
29 
30 \*---------------------------------------------------------------------------*/
31 
32 #ifndef fieldDictionary_H
33 #define fieldDictionary_H
34 
35 #include "regIOobject.H"
36 #include "dictionary.H"
37 
38 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
39 
40 namespace Foam
41 {
42 
43 
44 /*---------------------------------------------------------------------------*\
45  Class fieldDictionary Declaration
46 \*---------------------------------------------------------------------------*/
47 
48 class fieldDictionary
49 :
50  public regIOobject,
51  public dictionary
52 {
53  const word type_;
54 
55 public:
56 
57  // Redefine type name to be of the instantiated type
58  virtual const word& type() const
59  {
60  return type_;
61  }
62 
63 
64  // Constructors
65 
66  //- Construct from ioobject and overloaded typename.
67  fieldDictionary(const IOobject& io, const word& type)
68  :
69  regIOobject(io),
70  dictionary(readStream(type)),
71  type_(type)
72  {
73  close();
74  }
75 
76 
77 
78  // Member Functions
79 
80  bool writeData(Ostream& os) const
81  {
82  static_cast<const dictionary&>(*this).write(os, false);
83 
84  return os.good();
85  }
86 };
87 
88 
89 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
90 
91 } // End namespace Foam
92 
93 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
94 
95 #endif
96 
97 // ************************************************************************* //
void write(Ostream &, const bool subDict=true) const
Write dictionary, normally with sub-dictionary formatting.
Definition: dictionaryIO.C:207
bool writeData(Ostream &os) const
Pure virtual writaData function.
A list of keyword definitions, which are a keyword followed by any number of values (e...
Definition: dictionary.H:156
virtual const word & type() const
bool good() const
Return true if next operation might succeed.
Definition: IOstream.H:330
void close()
Close Istream.
A class for handling words, derived from string.
Definition: word.H:59
Istream & readStream(const word &, const bool read=true)
Return Istream and check object type against that given.
Read field as dictionary (without mesh).
An Ostream is an abstract base class for all output systems (streams, files, token lists...
Definition: Ostream.H:54
fieldDictionary(const IOobject &io, const word &type)
Construct from ioobject and overloaded typename.
regIOobject is an abstract class derived from IOobject to handle automatic object registration with t...
Definition: regIOobject.H:52
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
Definition: IOobject.H:98
Namespace for OpenFOAM.