unwatchedIOdictionary.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) 2015-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::unwatchedIOdictionary
28 
29 Description
30  unwatchedIOdictionary is like IOdictionary but stores
31  dependencies as files instead of fileMonitor watchIndices. Used
32  to read controlDict since there fileMonitor not yet setup.
33 
34 \*---------------------------------------------------------------------------*/
35 
36 #ifndef unwatchedIOdictionary_H
37 #define unwatchedIOdictionary_H
38 
39 #include "baseIOdictionary.H"
40 
41 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
42 
43 namespace Foam
44 {
45 
46 /*---------------------------------------------------------------------------*\
47  Class unwatchedIOdictionary Declaration
48 \*---------------------------------------------------------------------------*/
49 
51 :
52  public baseIOdictionary
53 {
54 
55  fileNameList files_;
56 
57 public:
58 
59  // Constructors
60 
61  //- Construct given an IOobject
63 
64  //- Construct given an IOobject and dictionary
66  (
67  const IOobject& io,
68  const dictionary& dict
69  );
70 
71  //- Construct given an IOobject and Istream
72  unwatchedIOdictionary(const IOobject& io, Istream& is);
73 
74  //- Destructor
75  virtual ~unwatchedIOdictionary();
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  //- Add file watch on object (READ_IF_MODIFIED)
94  virtual void addWatch();
95 
96  //- Add file watch for fileName on object if not yet watched. Return
97  // index of watch
98  virtual label addWatch(const fileName&);
99 
100  const fileNameList& files() const
101  {
102  return files_;
103  }
104 
106  {
107  return files_;
108  }
109 
110 };
111 
112 
113 //- Template function for obtaining global status
114 template<>
116 {
117  return true;
118 }
119 
120 
121 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
122 
123 } // End namespace Foam
124 
125 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
126 
127 #endif
128 
129 // ************************************************************************* //
Foam::typeGlobal< unwatchedIOdictionary >
bool typeGlobal< unwatchedIOdictionary >()
Template function for obtaining global status.
Definition: unwatchedIOdictionary.H:114
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::unwatchedIOdictionary::filePath
virtual fileName filePath() const
Return complete path + object name if the file exists.
Definition: unwatchedIOdictionary.H:87
Foam::unwatchedIOdictionary::addWatch
virtual void addWatch()
Add file watch on object (READ_IF_MODIFIED)
Definition: unwatchedIOdictionary.C:110
baseIOdictionary.H
Foam::unwatchedIOdictionary::files
fileNameList & files()
Definition: unwatchedIOdictionary.H:104
Foam::unwatchedIOdictionary
unwatchedIOdictionary is like IOdictionary but stores dependencies as files instead of fileMonitor wa...
Definition: unwatchedIOdictionary.H:49
Foam::Istream
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
Definition: Istream.H:61
Foam::unwatchedIOdictionary::~unwatchedIOdictionary
virtual ~unwatchedIOdictionary()
Destructor.
Definition: unwatchedIOdictionary.C:86
Foam::baseIOdictionary
baseIOdictionary is derived from dictionary and IOobject to give the dictionary automatic IO function...
Definition: baseIOdictionary.H:57
Foam::unwatchedIOdictionary::global
virtual bool global() const
Is object global.
Definition: unwatchedIOdictionary.H:80
dict
dictionary dict
Definition: searchingEngine.H:14
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::unwatchedIOdictionary::files
const fileNameList & files() const
Definition: unwatchedIOdictionary.H:99
Foam::unwatchedIOdictionary::unwatchedIOdictionary
unwatchedIOdictionary(const IOobject &io)
Construct given an IOobject.
Definition: unwatchedIOdictionary.C:35
Foam::List< fileName >
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