fileOperation that assumes file operations are local. More...
#include <uncollatedFileOperation.H>


Public Member Functions | |
| TypeName ("uncollated") | |
| Runtime type information. | |
| uncollatedFileOperation (bool verbose=false) | |
| Default construct. | |
| uncollatedFileOperation (const Tuple2< label, labelList > &commAndIORanks, const bool distributedRoots, bool verbose=false) | |
| Construct from communicator with specified io-ranks. | |
| virtual | ~uncollatedFileOperation () |
| Destructor. | |
| virtual void | storeComm () const |
| Transfer ownership of communicator to this fileOperation. Use with caution. | |
| virtual bool | mkDir (const fileName &, mode_t=0777) const |
| Make directory. | |
| virtual bool | chMod (const fileName &, const mode_t) const |
| Set the file mode. | |
| virtual mode_t | mode (const fileName &, const bool followLink=true) const |
| Return the file mode. | |
| virtual fileName::Type | type (const fileName &, const bool followLink=true) const |
| Return the file type: DIRECTORY, FILE or SYMLINK. | |
| virtual bool | exists (const fileName &, const bool checkGzip=true, const bool followLink=true) const |
| Does the name exist (as DIRECTORY or FILE) in the file system? | |
| virtual bool | isDir (const fileName &, const bool followLink=true) const |
| Does the name exist as a DIRECTORY in the file system? | |
| virtual bool | isFile (const fileName &, const bool checkGzip=true, const bool followLink=true) const |
| Does the name exist as a FILE in the file system? | |
| virtual off_t | fileSize (const fileName &, const bool followLink=true) const |
| Return size of file. | |
| virtual time_t | lastModified (const fileName &, const bool followLink=true) const |
| Return time of last file modification. | |
| virtual double | highResLastModified (const fileName &, const bool followLink=true) const |
| Return time of last file modification. | |
| virtual fileNameList | readDir (const fileName &, const fileName::Type=fileName::FILE, const bool filtergz=true, const bool followLink=true) const |
| Read a directory and return the entries as a string list. | |
| virtual bool | cp (const fileName &src, const fileName &dst, const bool followLink=true) const |
| Copy, recursively if necessary, the source to the destination. | |
| virtual bool | ln (const fileName &src, const fileName &dst) const |
| Create a softlink. dst should not exist. Returns true if. | |
| virtual bool | mv (const fileName &src, const fileName &dst, const bool followLink=false) const |
| Rename src to dst. | |
| virtual bool | mvBak (const fileName &, const std::string &ext="bak") const |
| Rename to a corresponding backup file. | |
| virtual bool | rm (const fileName &) const |
| Remove a file, returning true if successful otherwise false. | |
| virtual bool | rmDir (const fileName &dir, const bool silent=false, const bool emptyOnly=false) const |
| Remove a directory and its contents. | |
| virtual fileName | filePath (const bool checkGlobal, const IOobject &io, const word &typeName, const bool search) const |
| Search for an object. | |
| virtual fileName | dirPath (const bool checkGlobal, const IOobject &io, const bool search) const |
| Search for a directory. | |
| virtual fileNameList | readObjects (const objectRegistry &db, const fileName &instance, const fileName &local, word &newInstance) const |
| Search directory for objects. Used in IOobjectList. | |
| virtual bool | readHeader (IOobject &, const fileName &, const word &typeName) const |
| Read object header from supplied file. | |
| virtual autoPtr< ISstream > | readStream (regIOobject &, const fileName &, const word &typeName, const bool readOnProc=true) const |
| Reads header for regIOobject and returns an ISstream to read the contents. | |
| virtual bool | read (regIOobject &, const bool masterOnly, const IOstreamOption::streamFormat format, const word &typeName) const |
| Top-level read. | |
| virtual autoPtr< ISstream > | NewIFstream (const fileName &) const |
| Generate an ISstream that reads a file. | |
| virtual autoPtr< OSstream > | NewOFstream (const fileName &pathname, IOstreamOption streamOpt=IOstreamOption(), const bool writeOnProc=true) const |
| Generate an OSstream that writes a file. | |
| virtual autoPtr< OSstream > | NewOFstream (IOstreamOption::atomicType, const fileName &pathname, IOstreamOption streamOpt=IOstreamOption(), const bool writeOnProc=true) const |
| Generate an OSstream that writes a file. | |
| Public Member Functions inherited from fileOperation | |
| TypeName ("fileOperation") | |
| Runtime type information. | |
| fileOperation (const label comm, const labelUList &ioRanks=labelUList::null(), const bool distributedRoots=false) | |
| Construct from communicator, optionally with specified io-ranks and/or distributed roots. | |
| fileOperation (const Tuple2< label, labelList > &commAndIORanks, const bool distributedRoots=false) | |
| Construct from communicator with specified io-ranks. | |
| declareRunTimeSelectionTable (autoPtr, fileOperation, word,(bool verbose),(verbose)) | |
| declareRunTimeSelectionTable (autoPtr, fileOperation, comm,(const Tuple2< label, labelList > &commAndIORanks, const bool distributedRoots, bool verbose),(commAndIORanks, distributedRoots, verbose)) | |
| virtual | ~fileOperation ()=default |
| Destructor. | |
| label | comm () const noexcept |
| Communicator to use. | |
| label | comm (label communicator) const noexcept |
| Set communicator to use [mutable]. Negative values are a no-op. | |
| bool | distributed () const noexcept |
| Distributed roots (parallel run). | |
| bool | distributed (bool on) const noexcept |
| Set distributed roots on/off [mutable]. | |
| const labelList & | ioRanks () const noexcept |
| The list of IO ranks (global ranks). | |
| InfoProxy< fileOperation > | info () const noexcept |
| Return info proxy, used to print information to a stream. | |
| virtual bool | good () const |
| True if the fileOperation can be considered valid. At the moment, primarily used to detect the dummy fileOperation. | |
| virtual bool | broadcastCopy (const label comm, const bool writeOnProc, const fileName &src, const fileName &dst) const |
| Read dir/file (recursively if necessary) on master of the communicator, send and write contents to all 'writeOnProc' processors with local file name. | |
| virtual fileName | objectPath (const IOobject &io, const word &typeName) const |
| Generate disk file name for object. Opposite of filePath. | |
| virtual bool | writeObject (const regIOobject &io, IOstreamOption streamOpt=IOstreamOption(), const bool writeOnProc=true) const |
| Writes a regIOobject (so header, contents and divider). | |
| virtual fileName | filePath (const fileName &, const bool checkGzip=true, const bool followLink=true) const |
| Search for a file or directory. Use IOobject version in preference. | |
| virtual label | addWatch (const fileName &) const |
| Add watching of a file. Returns handle. | |
| virtual bool | removeWatch (const label) const |
| Remove watch on a file (using handle). | |
| virtual label | findWatch (const labelList &watchIndices, const fileName &) const |
| Find index (or -1) of file in list of handles. | |
| virtual void | addWatches (regIOobject &, const fileNameList &) const |
| Helper: add watches for list of regIOobjects. | |
| virtual fileName | getFile (const label) const |
| Get name of file being watched (using handle). | |
| virtual void | updateStates (const bool masterOnly, const bool syncPar) const |
| Update state of all files. | |
| virtual fileMonitor::fileState | getState (const label) const |
| Get current state of file (using handle). | |
| virtual void | setUnmodified (const label) const |
| Set current state of file (using handle) to unmodified. | |
| virtual word | processorsDir (const IOobject &io) const |
| Actual name of processors dir (for use in mode PROCOBJECT, PROCINSTANCE). | |
| virtual word | processorsDir (const fileName &) const |
| Actual name of processors dir (for use in mode PROCOBJECT, PROCINSTANCE). | |
| label | nProcs () const noexcept |
| Overall number of processors, from UPstream::nProcs() or detected from directories/results. | |
| label | nProcs (const label numProcs) noexcept |
| Set number of processor directories/results. | |
| virtual label | nProcs (const fileName &dir, const fileName &local="", const label wantedNProcs=0) const |
| Get number of processor directories/results. | |
| virtual instantList | findTimes (const fileName &directory, const word &constantName="constant") const |
| Get sorted list of times. | |
| virtual IOobject | findInstance (const IOobject &io, const scalar startValue, const word &stopInstance="", const bool constant_fallback=true) const |
Find time instance where IOobject is located. The name of the IOobject can be empty, in which case only the IOobject::local() is checked. Does not search beyond stopInstance (if set) or constant. | |
| virtual void | setTime (const Time &) const |
| Callback for time change. | |
| virtual void | flush () const |
| Forcibly wait until all output done. Flush any cached data. | |
| virtual void | sync () |
| Forcibly parallel sync. | |
| fileName | processorsCasePath (const IOobject &io, const word &procDir) const |
| Generate path (like io.path) from root+casename with any. | |
| fileName | processorsPath (const IOobject &io, const word &instance, const word &procDir) const |
| Generate path (like io.path) with provided instance and any. | |
| fileName | processorsPath (const fileName &, const word &procDir) const |
| Operating on fileName: replace processorXXX with procDir. | |
| label | setNProcs (label numProcs) |
| Same as nProcs. | |
Protected Member Functions | |
| fileName | filePathInfo (const bool checkGlobal, const bool isFile, const IOobject &io, const bool search) const |
| Search for an object. | |
| virtual refPtr< dirIndexList > | lookupProcessorsPath (const fileName &objectPath) const |
| Lookup name of processorsDDD using cache. | |
| Protected Member Functions inherited from fileOperation | |
| fileMonitor & | monitor () const |
| Get or create fileMonitor singleton. | |
| refPtr< dirIndexList > | lookupAndCacheProcessorsPath (const fileName &objectPath, const bool syncPar) const |
| Lookup name of processorsDDD using cache. | |
| bool | exists (IOobject &io) const |
| Does IOobject exist? Is either a directory (empty name()) or a file. | |
| bool | isIOrank (const label proci) const |
| Is proci a master rank in the communicator (in parallel) or a master rank in the IO ranks (non-parallel). | |
| void | printRanks () const |
| Helper: output which ranks are IO. | |
Additional Inherited Members | |
| Public Types inherited from fileOperation | |
| enum | pathType : int { NOTFOUND = 0 , ABSOLUTE , OBJECT , WRITEOBJECT , PROCUNCOLLATED , PROCBASEOBJECT = PROCUNCOLLATED + 1 , PROCOBJECT = PROCBASEOBJECT + 1 , PARENTOBJECT , FINDINSTANCE , PROCUNCOLLATEDINSTANCE , PROCBASEINSTANCE , PROCINSTANCE } |
| Enumeration for the location of an IOobject. More... | |
| typedef Tuple2< fileName, Tuple2< pathType, int > > | dirIndex |
| Augment fileName with pathType and local offset. | |
| typedef List< dirIndex > | dirIndexList |
| typedef UPstream::rangeType | procRangeType |
| For addressing a range of processors (an int range). | |
| Static Public Member Functions inherited from fileOperation | |
| static refPtr< fileOperation > | null () |
| Reference to a dummy file handler. | |
| static autoPtr< fileOperation > | New (const word &handlerType, bool verbose=false) |
| Select fileHandler-type. Uses defaultFileHandler if the handlerType is empty. | |
| static autoPtr< fileOperation > | New (const word &handlerType, const Tuple2< label, labelList > &commAndIORanks, const bool distributedRoots, bool verbose=false) |
| Select fileHandler-type. Uses defaultFileHandler if the handlerType is empty. | |
| static autoPtr< fileOperation > | New (const fileOperation &origHandler, const boolUList &useProc, bool verbose=false) |
| Replicate the given fileHandler properties with a subset of (global) ranks. | |
| static autoPtr< fileOperation > | New (const fileOperation &origHandler, const bitSet &useProc, bool verbose=false) |
| Replicate the given fileHandler properties with a subset of (global) ranks. | |
| static autoPtr< fileOperation > | NewUncollated () |
| The commonly used uncollatedFileOperation. | |
| static const fileOperation & | fileHandler () |
| Return the current file handler. Will create the default file handler if necessary. | |
| static refPtr< fileOperation > | fileHandler (std::nullptr_t) |
| Delete current file handler. | |
| static refPtr< fileOperation > | fileHandler (refPtr< fileOperation > &newHandler) |
| Replace the current file handler. | |
| static refPtr< fileOperation > | fileHandler (refPtr< fileOperation > &&newHandler) |
| Replace the current file handler. | |
| static refPtr< fileOperation > | fileHandler (autoPtr< fileOperation > &&newHandler) |
| Replace the current file handler. | |
| static int | cacheLevel () noexcept |
| Return cache level. | |
| static int | cacheLevel (int level) noexcept |
| Set cache level (0 = off). | |
| static int | nProcsFilter () noexcept |
| Return collated 'processorsDDD' filtering. | |
| static int | nProcsFilter (int level) noexcept |
| Set collated 'processorsDDD' filtering (0 = off). | |
| static instantList | sortTimes (const fileNameList &dirEntries, const word &constantName="constant") |
| Sort directory entries according to time value,. | |
| static bool | uniformFile (const fileNameList &names) |
| True if the file names are identical. False on an empty list. | |
| static bool | uniformFile (const label comm, const fileName &name) |
| True if the file name is identical on all ranks. | |
| static label | splitProcessorPath (const fileName &objectPath, fileName &path, fileName &procDir, fileName &local, procRangeType &group, label &nProcs) |
| Split objectPath into part before 'processor' and part after. | |
| static label | detectProcessorPath (const fileName &objPath) |
| Detect processor number from '/aa/bb/processorDDD/cc'. | |
| static label | detectProcessorPath (const fileName &objPath, procRangeType &group, label *numProcs=nullptr) |
| Detect processor number from 'path/processorDDD/abc' or 'path/processorsNN/abc', 'path/processorsNN_0-10/abc'. | |
| static labelRange | subRanks (const labelUList &mainIOranks) |
| Get (contiguous) range/bounds of ranks addressed within the given main io-ranks. | |
| static labelList | getGlobalHostIORanks () |
| Get list of global IO master ranks based on the hostname. It is assumed that each host range is contiguous. | |
| static labelList | getGlobalIORanks () |
| Get list of global IO ranks from FOAM_IORANKS env variable. If set, these correspond to the IO master ranks. | |
| Static Public Attributes inherited from fileOperation | |
| static const Enum< pathType > | pathTypeNames_ |
| static word | processorsBaseDir = "processors" |
| Return the processors directory name (usually "processors"). | |
| static word | defaultFileHandler |
| Name of the default fileHandler. | |
| static refPtr< fileOperation > | fileHandlerPtr_ |
| The currently active file handler. Avoid accessing directly. | |
| Static Protected Member Functions inherited from fileOperation | |
| static void | mergeTimes (const UList< instant > &extraTimes, const word &constantName, instantList ×) |
| Merge two times. | |
| static bool | isFileOrDir (const bool isFile, const fileName &) |
| Helper: check for file (isFile) or directory (!isFile). | |
| static label | getManagedComm (const label communicator) |
| Construction helper: check for locally allocated communicator. | |
| Protected Attributes inherited from fileOperation | |
| label | comm_ |
| Communicator to use. | |
| label | nProcs_ |
| Overall number of processors. | |
| bool | distributed_ |
| Distributed roots (parallel run). | |
| const labelList | ioRanks_ |
| The list of IO ranks (global ranks). | |
| HashTable< dirIndexList > | procsDirs_ |
| Detected processors directories. | |
| std::unique_ptr< fileMonitor > | monitorPtr_ |
| File-change monitor for all registered files. | |
| Static Protected Attributes inherited from fileOperation | |
| static int | cacheLevel_ |
| Cache level (eg, for caching time directories). Default: 1. | |
fileOperation that assumes file operations are local.
Definition at line 45 of file uncollatedFileOperation.H.
|
explicit |
Default construct.
Definition at line 227 of file uncollatedFileOperation.C.
References fileOperation::comm_, fileOperation::fileOperation(), Foam::getCommPattern(), and fileOperation::getManagedComm().

|
explicit |
Construct from communicator with specified io-ranks.
Definition at line 242 of file uncollatedFileOperation.C.
References fileOperation::fileOperation().

|
virtual |
Destructor.
Definition at line 265 of file uncollatedFileOperation.C.
References Foam::flush(), and UPstream::freeCommunicator().

|
protected |
Search for an object.
checkGlobal : also check undecomposed case isFile : true:check for file false:check for directory
Definition at line 64 of file uncollatedFileOperation.C.
References io, Foam::isDir(), isFile(), fileOperation::isFileOrDir(), lookupProcessorsPath(), fileOperation::objectPath(), path(), fileOperation::processorsPath(), and Foam::search().
Referenced by dirPath(), and filePath().


|
protectedvirtual |
Lookup name of processorsDDD using cache.
Reimplemented from fileOperation.
Definition at line 172 of file uncollatedFileOperation.C.
References fileOperation::lookupAndCacheProcessorsPath().
Referenced by filePathInfo().


| TypeName | ( | "uncollated" | ) |
Runtime type information.
References fileName::FILE, format(), Foam::GlobalIOList< Tuple2< scalar, vector > >::typeName, io, local, and Foam::search().

|
virtual |
Transfer ownership of communicator to this fileOperation. Use with caution.
Implements fileOperation.
Definition at line 256 of file uncollatedFileOperation.C.
References fileOperation::comm_, and fileOperation::getManagedComm().

|
virtual |
Make directory.
Implements fileOperation.
Definition at line 276 of file uncollatedFileOperation.C.
References Foam::mkDir(), and mode().

|
virtual |
Set the file mode.
Implements fileOperation.
Definition at line 286 of file uncollatedFileOperation.C.
References Foam::chMod(), and mode().

|
virtual |
Return the file mode.
Implements fileOperation.
Definition at line 296 of file uncollatedFileOperation.C.
References Foam::mode().
Referenced by chMod(), and mkDir().


|
virtual |
Return the file type: DIRECTORY, FILE or SYMLINK.
Implements fileOperation.
Definition at line 306 of file uncollatedFileOperation.C.
References Foam::type().
Referenced by readDir().


|
virtual |
Does the name exist (as DIRECTORY or FILE) in the file system?
Optionally enable/disable check for gzip file.
Implements fileOperation.
Definition at line 316 of file uncollatedFileOperation.C.
References Foam::exists().

|
virtual |
Does the name exist as a DIRECTORY in the file system?
Implements fileOperation.
Definition at line 327 of file uncollatedFileOperation.C.
References Foam::isDir().

|
virtual |
Does the name exist as a FILE in the file system?
Optionally enable/disable check for gzip file.
Implements fileOperation.
Definition at line 337 of file uncollatedFileOperation.C.
References Foam::isFile().
Referenced by filePathInfo().


|
virtual |
Return size of file.
Implements fileOperation.
Definition at line 348 of file uncollatedFileOperation.C.
References Foam::fileSize().

|
virtual |
Return time of last file modification.
Implements fileOperation.
Definition at line 358 of file uncollatedFileOperation.C.
References Foam::lastModified().

|
virtual |
Return time of last file modification.
Implements fileOperation.
Definition at line 368 of file uncollatedFileOperation.C.
References Foam::highResLastModified().

|
virtual |
Read a directory and return the entries as a string list.
Implements fileOperation.
Definition at line 408 of file uncollatedFileOperation.C.
References Foam::readDir(), and type().

Copy, recursively if necessary, the source to the destination.
Implements fileOperation.
Definition at line 420 of file uncollatedFileOperation.C.
References Foam::cp().

Create a softlink. dst should not exist. Returns true if.
successful.
Implements fileOperation.
Definition at line 431 of file uncollatedFileOperation.C.
References Foam::ln().

Rename src to dst.
Implements fileOperation.
Definition at line 441 of file uncollatedFileOperation.C.
References Foam::mv().

|
virtual |
Rename to a corresponding backup file.
If the backup file already exists, attempt with "01" .. "99" suffix
Implements fileOperation.
Definition at line 378 of file uncollatedFileOperation.C.
References Foam::mvBak().

|
virtual |
Remove a file, returning true if successful otherwise false.
Implements fileOperation.
Definition at line 388 of file uncollatedFileOperation.C.
References Foam::rm().

|
virtual |
Remove a directory and its contents.
| dir | the directory to remove |
| silent | do not report missing directory |
| emptyOnly | only remove empty directories (recursive) |
Implements fileOperation.
Definition at line 397 of file uncollatedFileOperation.C.
References Foam::rmDir().

|
virtual |
Search for an object.
| checkGlobal | also check undecomposed case |
| typeName | currently unused |
Implements fileOperation.
Definition at line 454 of file uncollatedFileOperation.C.
References Foam::endl(), filePathInfo(), Foam::GlobalIOList< Tuple2< scalar, vector > >::typeName, io, Foam::Pout, and Foam::search().
Referenced by NewIFstream().


|
virtual |
Search for a directory.
| checkGlobal | also check undecomposed case |
Implements fileOperation.
Definition at line 482 of file uncollatedFileOperation.C.
References Foam::endl(), filePathInfo(), io, Foam::Pout, and Foam::search().

|
virtual |
Search directory for objects. Used in IOobjectList.
Use non-time searching version
Reimplemented from fileOperation.
Definition at line 509 of file uncollatedFileOperation.C.
References Foam::endl(), TimePaths::findInstancePath(), local, IOobject::objectPath(), Foam::Pout, fileOperation::readObjects(), and objectRegistry::time().

Read object header from supplied file.
| typeName | currently only for debug info |
Implements fileOperation.
Definition at line 561 of file uncollatedFileOperation.C.
References Foam::endl(), Foam::GlobalIOList< Tuple2< scalar, vector > >::typeName, InfoInFunction, io, NewIFstream(), Foam::Pout, and decomposedBlockData::readHeader().

|
virtual |
Reads header for regIOobject and returns an ISstream to read the contents.
| typeName | currently unused |
Implements fileOperation.
Definition at line 609 of file uncollatedFileOperation.C.
References fileOperation::detectProcessorPath(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, Foam::FatalIOError, FatalIOErrorInFunction, Foam::GlobalIOList< Tuple2< scalar, vector > >::typeName, io, decomposedBlockData::isCollatedType(), dummyISstream::New(), NewIFstream(), and decomposedBlockData::readBlock().

|
virtual |
Top-level read.
| format | The format for parallel send/recv |
| typeName | forwards to regIOobject |
Implements fileOperation.
Definition at line 688 of file uncollatedFileOperation.C.
References Foam::endl(), format(), Foam::GlobalIOList< Tuple2< scalar, vector > >::typeName, io, UPstream::master(), regIOobject::masterOnlyReading, os(), UPstream::parRun(), UPstream::parRun(), Foam::Pout, and UPstream::worldComm.

|
virtual |
Generate an ISstream that reads a file.
Implements fileOperation.
Definition at line 765 of file uncollatedFileOperation.C.
References filePath().
Referenced by readHeader(), and readStream().


|
virtual |
Generate an OSstream that writes a file.
Implements fileOperation.
Definition at line 775 of file uncollatedFileOperation.C.
|
virtual |
Generate an OSstream that writes a file.
Implements fileOperation.
Definition at line 787 of file uncollatedFileOperation.C.