IOdictionary.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | www.openfoam.com
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8  Copyright (C) 2011-2017 OpenFOAM Foundation
9 -------------------------------------------------------------------------------
10 License
11  This file is part of OpenFOAM.
12 
13  OpenFOAM is free software: you can redistribute it and/or modify it
14  under the terms of the GNU General Public License as published by
15  the Free Software Foundation, either version 3 of the License, or
16  (at your option) any later version.
17 
18  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
19  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21  for more details.
22 
23  You should have received a copy of the GNU General Public License
24  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
25 
26 Class
27  Foam::IOdictionary
28 
29 Description
30  IOdictionary is derived from dictionary and IOobject to give the dictionary
31  automatic IO functionality via the objectRegistry. To facilitate IO,
32  IOdictionary is provided with a constructor from IOobject and with
33  readData/writeData functions.
34 
35 SourceFiles
36  IOdictionary.C
37  IOdictionaryIO.C
38 
39 \*---------------------------------------------------------------------------*/
40 
41 #ifndef IOdictionary_H
42 #define IOdictionary_H
43 
44 #include "baseIOdictionary.H"
45 
46 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
47 
48 namespace Foam
49 {
50 
51 /*---------------------------------------------------------------------------*\
52  Class IOdictionary Declaration
53 \*---------------------------------------------------------------------------*/
54 
55 class IOdictionary
56 :
57  public baseIOdictionary
58 {
59 
60 public:
61 
62  // Constructors
63 
64  //- Construct given an IOobject
65  IOdictionary(const IOobject&);
66 
67  //- Construct given an IOobject and dictionary
68  IOdictionary(const IOobject&, const dictionary&);
69 
70  //- Construct given an IOobject and Istream
71  IOdictionary(const IOobject&, Istream&);
72 
73 
74  //- Destructor
75  virtual ~IOdictionary();
76 
77 
78  // Member functions
79 
80  //- Is object global
81  virtual bool global() const
82  {
83  return true;
84  }
85 
86  //- Return complete path + object name if the file exists
87  // either in the case/processor or case otherwise null
88  virtual fileName filePath() const
89  {
90  return globalFilePath(type());
91  }
92 };
93 
94 
95 //- Template function for obtaining global status
96 template<>
97 inline bool typeGlobal<IOdictionary>()
98 {
99  return true;
100 }
101 
102 
103 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
104 
105 } // End namespace Foam
106 
107 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
108 
109 #endif
110 
111 // ************************************************************************* //
Foam::IOdictionary::filePath
virtual fileName filePath() const
Return complete path + object name if the file exists.
Definition: IOdictionary.H:87
Foam::IOdictionary
IOdictionary is derived from dictionary and IOobject to give the dictionary automatic IO functionalit...
Definition: IOdictionary.H:54
Foam::IOobject
Defines the attributes of an object for which implicit objectRegistry management is supported,...
Definition: IOobject.H:104
Foam::fileName
A class for handling file names.
Definition: fileName.H:69
Foam::typeGlobal< IOdictionary >
bool typeGlobal< IOdictionary >()
Template function for obtaining global status.
Definition: IOdictionary.H:96
Foam::IOdictionary::IOdictionary
IOdictionary(const IOobject &)
Construct given an IOobject.
Definition: IOdictionary.C:35
Foam::IOdictionary::~IOdictionary
virtual ~IOdictionary()
Destructor.
Definition: IOdictionary.C:86
baseIOdictionary.H
Foam::Istream
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
Definition: Istream.H:61
Foam::baseIOdictionary
baseIOdictionary is derived from dictionary and IOobject to give the dictionary automatic IO function...
Definition: baseIOdictionary.H:57
Foam::IOdictionary::global
virtual bool global() const
Is object global.
Definition: IOdictionary.H:80
Foam::IOobject::globalFilePath
fileName globalFilePath(const word &typeName, const bool search=true) const
Helper for filePath that searches up if in parallel.
Definition: IOobject.C:527
Foam::dictionary
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:121
Foam
Namespace for OpenFOAM.
Definition: atmBoundaryLayer.C:33
Foam::type
fileName::Type type(const fileName &name, const bool followLink=true)
Return the file type: DIRECTORY or FILE, normally following symbolic links.
Definition: MSwindows.C:590