Foam::fileName Foam::IOobject::filePath() const { fileName path = this->path(); fileName objectPath = path/name(); if (isFile(objectPath)) { return objectPath; } else { if ( time().processorCase() && ( instance() == time().system() || instance() == time().constant() ) ) { fileName parentObjectPath = rootPath()/caseName() /".."/instance()/db_.dbDir()/local()/name(); if (isFile(parentObjectPath)) { return parentObjectPath; } } if (!isDir(path)) { word newInstancePath = time().findInstancePath(instant(instance())); if (newInstancePath.size()) { fileName fName ( rootPath()/caseName() /newInstancePath/db_.dbDir()/local()/name() ); if (isFile(fName)) { return fName; } } } } return fileName::null; }
void DiscreteTrajectory<Frame>::FillSubTreeFromMessage( serialization::Trajectory const& message, std::vector<DiscreteTrajectory<Frame>**> const& forks) { for (auto timeline_it = message.timeline().begin(); timeline_it != message.timeline().end(); ++timeline_it) { Append(Instant::ReadFromMessage(timeline_it->instant()), DegreesOfFreedom<Frame>::ReadFromMessage( timeline_it->degrees_of_freedom())); } Forkable<DiscreteTrajectory, Iterator>::FillSubTreeFromMessage(message, forks); }
Foam::IOobjectList::IOobjectList ( const objectRegistry& db, const fileName& instance, const fileName& local, IOobject::readOption r, IOobject::writeOption w, bool registerObject ) : HashPtrTable<IOobject>() { word newInstance = instance; if (!isDir(db.path(instance))) { newInstance = db.time().findInstancePath(instant(instance)); if (newInstance.empty()) { return; } } // Create a list of file names in this directory fileNameList ObjectNames = readDir(db.path(newInstance, db.dbDir()/local), fileName::FILE); forAll(ObjectNames, i) { IOobject* objectPtr = new IOobject ( ObjectNames[i], newInstance, local, db, r, w, registerObject ); if (objectPtr->headerOk()) { insert(ObjectNames[i], objectPtr); } else { delete objectPtr; } }
Foam::IOobjectList::IOobjectList ( const objectRegistry& db, const fileName& instance, const fileName& local ) : HashPtrTable<IOobject>() { word newInstance = instance; if (!isDir(db.path(instance))) { newInstance = db.time().findInstancePath(instant(instance)); if (newInstance.empty()) { return; } } // Create list file names in directory fileNameList ObjectNames = readDir(db.path(newInstance, db.dbDir()/local), fileName::FILE); forAll(ObjectNames, i) { IOobject* objectPtr = new IOobject ( ObjectNames[i], newInstance, local, db, IOobject::MUST_READ, IOobject::NO_WRITE ); if (objectPtr->headerOk()) { insert(ObjectNames[i], objectPtr); } else { delete objectPtr; } }