IOdictionary.C
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-2019 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 \*---------------------------------------------------------------------------*/
25 
26 #include "IOdictionary.H"
27 
28 // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
29 
31 :
33 {
34  readHeaderOk(IOstream::ASCII, typeName);
35 
36  // For if MUST_READ_IF_MODIFIED
37  addWatch();
38 }
39 
40 
42 (
43  const IOobject& io,
44  const dictionary& dict
45 )
46 :
47  baseIOdictionary(io, dict)
48 {
49  if (!readHeaderOk(IOstream::ASCII, typeName))
50  {
52  }
53 
54  // For if MUST_READ_IF_MODIFIED
55  addWatch();
56 }
57 
58 
60 (
61  const IOobject& io,
62  Istream& is
63 )
64 :
65  baseIOdictionary(io, is)
66 {
67  // Note that we do construct the dictionary null and read in
68  // afterwards
69  // so that if there is some fancy massaging due to a
70  // functionEntry in
71  // the dictionary at least the type information is already complete.
72  is >> *this;
73 
74  // For if MUST_READ_IF_MODIFIED
75  addWatch();
76 }
77 
78 
80 (
81  const IOdictionary& dict
82 )
83 :
84  baseIOdictionary(dict)
85 {}
86 
87 
89 (
90  IOdictionary&& dict
91 )
92 :
93  baseIOdictionary(move(dict))
94 {}
95 
96 
97 // * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * * //
98 
100 {}
101 
102 
103 // * * * * * * * * * * * * * * * Member Operators * * * * * * * * * * * * * //
104 
106 {
107  baseIOdictionary::operator=(move(rhs));
108 }
109 
110 
111 // ************************************************************************* //
void operator=(const baseIOdictionary &)
Assignment of other baseIOdictionary&#39;s entries to this.
baseIOdictionary(const IOobject &)
Construct given an IOobject.
baseIOdictionary is derived from dictionary and IOobject to give the dictionary automatic IO function...
void operator=(const dictionary &)
Definition: dictionary.C:1418
A list of keyword definitions, which are a keyword followed by any number of values (e...
Definition: dictionary.H:158
An Istream is an abstract base class for all input systems (streams, files, token lists etc)...
Definition: Istream.H:57
void operator=(IOdictionary &&)
Move assignment.
Definition: IOdictionary.C:105
IOdictionary is derived from dictionary and IOobject to give the dictionary automatic IO functionalit...
Definition: IOdictionary.H:52
virtual ~IOdictionary()
Destructor.
Definition: IOdictionary.C:99
virtual void addWatch()
Add file watch on object (if registered and READ_IF_MODIFIED)
Definition: regIOobject.C:242
IOdictionary(const IOobject &)
Construct given an IOobject.
Definition: IOdictionary.C:30
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
Definition: IOobject.H:92
bool readHeaderOk(const IOstream::streamFormat PstreamFormat, const word &typeName)
Helper: check readOpt flags and read if necessary.