Foam::TimePaths::TimePaths ( const fileName& rootPath, const fileName& caseName, const word& systemName, const word& constantName ) : processorCase_(caseName.find("processor") != string::npos), rootPath_(rootPath), case_(caseName), system_(systemName), constant_(constantName) {}
//- Converts old scope syntax to new syntax word scope(const fileName& entryName) { if (entryName.find(':') != string::npos) { wordList entryNames(entryName.components(':')); word entry(entryNames[0]); for (label i = 1; i < entryNames.size(); i++) { entry += word('.') + entryNames[i]; } return entry; } else { return entryName; } }
// Return components following the IOobject requirements // // behaviour // input IOobject(instance, local, name) // ----- ------ // "foo" ("", "", "foo") // "foo/bar" ("foo", "", "bar") // "/XXX" ERROR - no absolute path // "foo/bar/" ERROR - no name // "foo/xxx/bar" ("foo", "xxx", "bar") // "foo/xxx/yyy/bar" ("foo", "xxx/yyy", "bar") bool Foam::IOobject::IOobject::fileNameComponents ( const fileName& path, fileName& instance, fileName& local, word& name ) { instance.clear(); local.clear(); name.clear(); // called with directory if (isDir(path)) { WarningIn("IOobject::fileNameComponents(const fileName&, ...)") << " called with directory: " << path << "\n"; return false; } string::size_type first = path.find('/'); if (first == 0) { // called with absolute path WarningIn("IOobject::fileNameComponents(const fileName&, ...)") << "called with absolute path: " << path << "\n"; return false; } if (first == string::npos) { // no '/' found - no instance or local // check afterwards name.string::operator=(path); } else { instance = path.substr(0, first); string::size_type last = path.rfind('/'); if (last > first) { // with local local = path.substr(first+1, last-first-1); } // check afterwards name.string::operator=(path.substr(last+1)); } // check for valid (and stripped) name, regardless of the debug level if (name.empty() || string::stripInvalid<word>(name)) { WarningIn("IOobject::fileNameComponents(const fileName&, ...)") << "has invalid word for name: \"" << name << "\"\nwhile processing path: " << path << "\n"; return false; } return true; }