57 fileCheckTypesNames.read
61 "fileModificationChecking" 98 "fileModificationChecking" 121 <<
" called with directory: " << path <<
endl;
129 instance = path.substr(0, last);
132 name.string::operator=(path.substr(last+1));
138 if (first == string::npos)
143 name.string::operator=(
path);
147 instance = path.substr(0, first);
153 local = path.substr(first+1, last-first-1);
157 name.string::operator=(path.substr(last+1));
163 if (name.empty() || string::stripInvalid<word>(
name))
166 <<
"has invalid word for name: \"" << name
167 <<
"\"\nwhile processing path: " << path <<
endl;
180 if (i == word::npos || i == 0)
186 return name.substr(i+1, word::npos);
195 if (i == word::npos || i == 0)
201 return name.substr(0, i);
219 headerClassName_(typeName),
226 registerObject_(registerObject),
229 if (objectRegistry::debug)
232 <<
"Constructing IOobject called " << name_
233 <<
" of type " << headerClassName_
251 headerClassName_(typeName),
258 registerObject_(registerObject),
261 if (objectRegistry::debug)
264 <<
"Constructing IOobject called " << name_
265 <<
" of type " << headerClassName_
281 headerClassName_(typeName),
288 registerObject_(registerObject),
291 if (!fileNameComponents(path, instance_, local_, name_))
294 <<
" invalid path specification" 298 if (objectRegistry::debug)
301 <<
"Constructing IOobject called " << name_
302 <<
" of type " << headerClassName_
315 headerClassName_(io.headerClassName_),
317 instance_(io.instance_),
322 registerObject_(io.registerObject_),
323 objState_(io.objState_)
334 headerClassName_(io.headerClassName_),
336 instance_(io.instance_),
341 registerObject_(io.registerObject_),
342 objState_(io.objState_)
380 return member(name_);
386 return time().rootPath();
392 if (instance().isAbsolute())
398 return rootPath()/caseName()/instance()/db_.dbDir()/local();
405 const word& instance,
410 return rootPath()/caseName()/instance/db_.dbDir()/local;
430 if (objState_ != GOOD)
433 <<
"Recurrent failure for object " << s
440 <<
"Broken object " << s << info() <<
endl;
450 headerClassName_ = io.headerClassName_;
452 instance_ = io.instance_;
456 objState_ = io.objState_;
fileCheckTypes
Enumeration defining the file checking options.
const char *const group
Group name for atomic constants.
Abstract base class for registered object with I/O. Used in debug symbol registration.
writeOption
Enumeration defining the write options.
static bool fileNameComponents(const fileName &path, fileName &instance, fileName &local, word &name)
Split path into instance, local, name components.
A class for handling file names.
addfileModificationCheckingToOpt(const char *name)
errorManipArg< error, int > exit(error &err, const int errNo=1)
void operator=(const IOobject &)
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
virtual void readData(Foam::Istream &is)
Read.
string caseName() const
Return file name (part beyond last /), substitute for FOAM_CASE.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)...
IOobject(const word &name, const fileName &instance, const objectRegistry ®istry, readOption r=NO_READ, writeOption w=NO_WRITE, bool registerObject=true)
Construct from name, instance, registry, io options.
Ostream & endl(Ostream &os)
Add newline and flush stream.
word member() const
Return member (name without the extension)
virtual ~IOobject()
Destructor.
word group() const
Return group (extension part of name)
readOption
Enumeration defining the read options.
Initialise the NamedEnum HashTable from the static list of names.
Class to control time during OpenFOAM simulations that is also the top-level objectRegistry.
fileName path() const
Return complete path.
fileName localFilePath(const word &typeName) const
Helper for filePath that searches locally.
gmvFile<< "tracers "<< particles.size()<< nl;forAllConstIter(Cloud< passiveParticle >, particles, iter){ gmvFile<< iter().position().x()<< " ";}gmvFile<< nl;forAllConstIter(Cloud< passiveParticle >, particles, iter){ gmvFile<< iter().position().y()<< " ";}gmvFile<< nl;forAllConstIter(Cloud< passiveParticle >, particles, iter){ gmvFile<< iter().position().z()<< " ";}gmvFile<< nl;forAll(lagrangianScalarNames, i){ word name=lagrangianScalarNames[i];IOField< scalar > s(IOobject(name, runTime.timeName(), cloud::prefix, mesh, IOobject::MUST_READ, IOobject::NO_WRITE))
bool isAbsolute() const
Return true if file name is absolute.
bool isDir(const fileName &, const bool followLink=true)
Does the name exist as a directory in the file system?
A class for handling words, derived from string.
void setBad(const string &)
Set the object state to bad.
fileName globalFilePath(const word &typeName) const
Helper for filePath that searches up if in parallel.
static const word null
An empty word.
virtual fileName filePath(const bool checkGlobal, const IOobject &, const word &typeName) const =0
Search for an object. checkGlobal : also check undecomposed case.
const fileOperation & fileHandler()
Get current file handler.
graph_traits< Graph >::vertices_size_type size_type
An Ostream is an abstract base class for all output systems (streams, files, token lists...
addfileModificationCheckingToOpt addfileModificationCheckingToOpt_("fileModificationChecking")
const Time & time() const
Return time.
defineTypeNameAndDebug(combustionModel, 0)
static fileCheckTypes fileModificationChecking
Type of file modification checking.
word name(const complex &)
Return a string representation of a complex.
virtual void writeData(Foam::Ostream &os) const
Write.
const fileName & rootPath() const
static const NamedEnum< fileCheckTypes, 4 > fileCheckTypesNames
#define WarningInFunction
Report a warning using Foam::Warning.
const Time & time() const
Return time.
Enum read(Istream &) const
Read a word from Istream and return the corresponding.
dictionary & optimisationSwitches()
The OptimisationSwitches sub-dictionary in the central controlDict.
virtual ~addfileModificationCheckingToOpt()
Registry of regIOobjects.
const objectRegistry & db() const
Return the local objectRegistry.
void addOptimisationObject(const char *name, simpleRegIOobject *obj)
Register optimisation switch read/write object.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
const fileName & caseName() const
ITstream & lookup(const word &, bool recursive=false, bool patternMatch=true) const
Find and return an entry data stream.
fileName path(UMean.rootPath()/UMean.caseName()/functionObjects::writeFile::outputPrefix/"graphs"/UMean.instance())
#define InfoInFunction
Report an information message using Foam::Info.