fileOperation that assumes file operations are local. More...
Public Member Functions | |
TypeName ("uncollated") | |
Runtime type information. More... | |
uncollatedFileOperation (bool verbose=false) | |
Default construct. More... | |
uncollatedFileOperation (const Tuple2< label, labelList > &commAndIORanks, const bool distributedRoots, bool verbose=false) | |
Construct from communicator with specified io-ranks. More... | |
virtual | ~uncollatedFileOperation () |
Destructor. More... | |
virtual void | storeComm () const |
Transfer ownership of communicator to this fileOperation. Use with caution. More... | |
virtual bool | mkDir (const fileName &, mode_t=0777) const |
Make directory. More... | |
virtual bool | chMod (const fileName &, const mode_t) const |
Set the file mode. More... | |
virtual mode_t | mode (const fileName &, const bool followLink=true) const |
Return the file mode. More... | |
virtual fileName::Type | type (const fileName &, const bool followLink=true) const |
Return the file type: DIRECTORY, FILE or SYMLINK. More... | |
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? More... | |
virtual bool | isDir (const fileName &, const bool followLink=true) const |
Does the name exist as a DIRECTORY in the file system? More... | |
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? More... | |
virtual off_t | fileSize (const fileName &, const bool followLink=true) const |
Return size of file. More... | |
virtual time_t | lastModified (const fileName &, const bool followLink=true) const |
Return time of last file modification. More... | |
virtual double | highResLastModified (const fileName &, const bool followLink=true) const |
Return time of last file modification. More... | |
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. More... | |
virtual bool | cp (const fileName &src, const fileName &dst, const bool followLink=true) const |
Copy, recursively if necessary, the source to the destination. More... | |
virtual bool | ln (const fileName &src, const fileName &dst) const |
Create a softlink. dst should not exist. Returns true if. More... | |
virtual bool | mv (const fileName &src, const fileName &dst, const bool followLink=false) const |
Rename src to dst. More... | |
virtual bool | mvBak (const fileName &, const std::string &ext="bak") const |
Rename to a corresponding backup file. More... | |
virtual bool | rm (const fileName &) const |
Remove a file, returning true if successful otherwise false. More... | |
virtual bool | rmDir (const fileName &dir, const bool silent=false, const bool emptyOnly=false) const |
Remove a directory and its contents. More... | |
virtual fileName | filePath (const bool checkGlobal, const IOobject &io, const word &typeName, const bool search) const |
Search for an object. checkGlobal : also check undecomposed case. More... | |
virtual fileName | dirPath (const bool checkGlobal, const IOobject &io, const bool search) const |
Search for a directory. checkGlobal : also check undecomposed. More... | |
virtual fileNameList | readObjects (const objectRegistry &db, const fileName &instance, const fileName &local, word &newInstance) const |
Search directory for objects. Used in IOobjectList. More... | |
virtual bool | readHeader (IOobject &, const fileName &, const word &typeName) const |
Read object header from supplied file. More... | |
virtual autoPtr< ISstream > | readStream (regIOobject &, const fileName &, const word &typeName, const bool readOnProc=true) const |
Reads header for regIOobject and returns an ISstream. More... | |
virtual bool | read (regIOobject &, const bool masterOnly, const IOstreamOption::streamFormat format, const word &typeName) const |
Top-level read. More... | |
virtual autoPtr< ISstream > | NewIFstream (const fileName &) const |
Generate an ISstream that reads a file. More... | |
virtual autoPtr< OSstream > | NewOFstream (const fileName &pathname, IOstreamOption streamOpt=IOstreamOption(), const bool writeOnProc=true) const |
Generate an OSstream that writes a file. More... | |
virtual autoPtr< OSstream > | NewOFstream (IOstreamOption::atomicType, const fileName &pathname, IOstreamOption streamOpt=IOstreamOption(), const bool writeOnProc=true) const |
Generate an OSstream that writes a file. More... | |
Public Member Functions inherited from fileOperation | |
TypeName ("fileOperation") | |
Runtime type information. More... | |
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. More... | |
fileOperation (const Tuple2< label, labelList > &commAndIORanks, const bool distributedRoots=false) | |
Construct from communicator with specified io-ranks. More... | |
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. More... | |
label | comm () const noexcept |
Communicator to use. More... | |
label | comm (label communicator) const noexcept |
Set communicator to use [mutable]. Negative values are a no-op. More... | |
bool | distributed () const noexcept |
Distributed roots (parallel run) More... | |
bool | distributed (bool on) const noexcept |
Set distributed roots on/off [mutable]. More... | |
const labelList & | ioRanks () const noexcept |
The list of IO ranks (global ranks) More... | |
InfoProxy< fileOperation > | info () const noexcept |
Return info proxy, used to print information to a stream. More... | |
virtual bool | good () const |
True if the fileOperation can be considered valid. At the moment, primarily used to detect the dummy fileOperation. More... | |
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. More... | |
virtual fileName | objectPath (const IOobject &io, const word &typeName) const |
Generate disk file name for object. Opposite of filePath. More... | |
virtual bool | writeObject (const regIOobject &io, IOstreamOption streamOpt=IOstreamOption(), const bool writeOnProc=true) const |
Writes a regIOobject (so header, contents and divider). More... | |
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. More... | |
virtual label | addWatch (const fileName &) const |
Add watching of a file. Returns handle. More... | |
virtual bool | removeWatch (const label) const |
Remove watch on a file (using handle) More... | |
virtual label | findWatch (const labelList &watchIndices, const fileName &) const |
Find index (or -1) of file in list of handles. More... | |
virtual void | addWatches (regIOobject &, const fileNameList &) const |
Helper: add watches for list of regIOobjects. More... | |
virtual fileName | getFile (const label) const |
Get name of file being watched (using handle) More... | |
virtual void | updateStates (const bool masterOnly, const bool syncPar) const |
Update state of all files. More... | |
virtual fileMonitor::fileState | getState (const label) const |
Get current state of file (using handle) More... | |
virtual void | setUnmodified (const label) const |
Set current state of file (using handle) to unmodified. More... | |
virtual word | processorsDir (const IOobject &io) const |
Actual name of processors dir (for use in mode PROCOBJECT, PROCINSTANCE) More... | |
virtual word | processorsDir (const fileName &) const |
Actual name of processors dir (for use in mode PROCOBJECT, PROCINSTANCE) More... | |
label | nProcs () const noexcept |
Overall number of processors, from UPstream::nProcs() or detected from directories/results. More... | |
label | nProcs (const label numProcs) noexcept |
Set number of processor directories/results. More... | |
virtual label | nProcs (const fileName &dir, const fileName &local="") const |
Get number of processor directories/results. More... | |
virtual instantList | findTimes (const fileName &, const word &) const |
Get sorted list of times. More... | |
virtual IOobject | findInstance (const IOobject &io, const scalar startValue, const word &stopInstance) const |
Find instance where IOobject is. More... | |
virtual void | setTime (const Time &) const |
Callback for time change. More... | |
virtual void | flush () const |
Forcibly wait until all output done. Flush any cached data. More... | |
virtual void | sync () |
Forcibly parallel sync. More... | |
fileName | processorsCasePath (const IOobject &io, const word &procDir) const |
Generate path (like io.path) from root+casename with any. More... | |
fileName | processorsPath (const IOobject &io, const word &instance, const word &procDir) const |
Generate path (like io.path) with provided instance and any. More... | |
fileName | processorsPath (const fileName &, const word &procDir) const |
Operating on fileName: replace processorXXX with procDir. More... | |
label | setNProcs (label numProcs) |
Same as nProcs. More... | |
Protected Member Functions | |
fileName | filePathInfo (const bool checkGlobal, const bool isFile, const IOobject &io, const bool search) const |
Search for an object. More... | |
virtual refPtr< dirIndexList > | lookupProcessorsPath (const fileName &) const |
Lookup name of processorsDDD using cache. More... | |
Protected Member Functions inherited from fileOperation | |
fileMonitor & | monitor () const |
Get or create fileMonitor singleton. More... | |
refPtr< dirIndexList > | lookupAndCacheProcessorsPath (const fileName &objectPath, const bool syncPar) const |
Lookup name of processorsDDD using cache. More... | |
bool | exists (IOobject &io) const |
Does IOobject exist? Is either a directory (empty name()) or a file. More... | |
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) More... | |
void | printRanks () const |
Helper: output which ranks are IO. More... | |
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. More... | |
typedef List< dirIndex > | dirIndexList |
typedef IntRange< int > | procRangeType |
For addressing a range of processors, identical to UPstream::rangeType. More... | |
Static Public Member Functions inherited from fileOperation | |
static refPtr< fileOperation > | null () |
Reference to a dummy file handler. More... | |
static autoPtr< fileOperation > | New (const word &handlerType, bool verbose=false) |
Select fileHandler-type. Uses defaultFileHandler if the handlerType is empty. More... | |
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. More... | |
static autoPtr< fileOperation > | New (const fileOperation &origHandler, const boolUList &useProc, bool verbose=false) |
Replicate the given fileHandler properties with a subset of (global) ranks. More... | |
static autoPtr< fileOperation > | New (const fileOperation &origHandler, const bitSet &useProc, bool verbose=false) |
Replicate the given fileHandler properties with a subset of (global) ranks. More... | |
static autoPtr< fileOperation > | NewUncollated () |
The commonly used uncollatedFileOperation. More... | |
static const fileOperation & | fileHandler () |
Return the current file handler. Will create the default file handler if necessary. More... | |
static refPtr< fileOperation > | fileHandler (std::nullptr_t) |
Delete current file handler. More... | |
static refPtr< fileOperation > | fileHandler (refPtr< fileOperation > &newHandler) |
Replace the current file handler. More... | |
static refPtr< fileOperation > | fileHandler (refPtr< fileOperation > &&newHandler) |
Replace the current file handler. More... | |
static refPtr< fileOperation > | fileHandler (autoPtr< fileOperation > &&newHandler) |
Replace the current file handler. More... | |
static int | cacheLevel () noexcept |
Return cache level. More... | |
static int | cacheLevel (int level) noexcept |
Set cache level (0 = off). More... | |
static instantList | sortTimes (const fileNameList &dirEntries, const word &constantName="constant") |
Sort directory entries according to time value,. More... | |
static bool | uniformFile (const fileNameList &names) |
True if the file names are identical. False on an empty list. More... | |
static bool | uniformFile (const label comm, const fileName &name) |
True if the file name is identical on all ranks. More... | |
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. More... | |
static label | detectProcessorPath (const fileName &objPath) |
Detect processor number from '/aa/bb/processorDDD/cc'. More... | |
static labelRange | subRanks (const labelUList &mainIOranks) |
Get (contiguous) range/bounds of ranks addressed within the given main io-ranks. More... | |
static labelList | getGlobalHostIORanks () |
Get list of global IO master ranks based on the hostname. It is assumed that each host range is contiguous. More... | |
static labelList | getGlobalIORanks () |
Get list of global IO ranks from FOAM_IORANKS env variable. If set, these correspond to the IO master ranks. More... | |
Static Public Attributes inherited from fileOperation | |
static const Enum< pathType > | pathTypeNames_ |
static word | processorsBaseDir = "processors" |
Return the processors directory name (usually "processors") More... | |
static word | defaultFileHandler |
Name of the default fileHandler. More... | |
static refPtr< fileOperation > | fileHandlerPtr_ |
The currently active file handler. Avoid accessing directly. More... | |
Static Protected Member Functions inherited from fileOperation | |
static void | mergeTimes (const instantList &extraTimes, const word &constantName, instantList ×) |
Merge two times. More... | |
static bool | isFileOrDir (const bool isFile, const fileName &) |
Helper: check for file (isFile) or directory (!isFile) More... | |
static label | getManagedComm (const label communicator) |
Construction helper: check for locally allocated communicator. More... | |
Protected Attributes inherited from fileOperation | |
label | comm_ |
Communicator to use. More... | |
label | nProcs_ |
Overall number of processors. More... | |
bool | distributed_ |
Distributed roots (parallel run) More... | |
const labelList | ioRanks_ |
The list of IO ranks (global ranks) More... | |
HashTable< dirIndexList > | procsDirs_ |
Detected processors directories. More... | |
std::unique_ptr< fileMonitor > | monitorPtr_ |
File-change monitor for all registered files. More... | |
Static Protected Attributes inherited from fileOperation | |
static int | cacheLevel_ |
Cache level (eg, for caching time directories). Default: 1. More... | |
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.
|
explicit |
Construct from communicator with specified io-ranks.
Definition at line 242 of file uncollatedFileOperation.C.
|
virtual |
Destructor.
Definition at line 264 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 65 of file uncollatedFileOperation.C.
References io(), Foam::isDir(), Foam::isFile(), path(), and Foam::search().
|
protectedvirtual |
Lookup name of processorsDDD using cache.
Reimplemented from fileOperation.
Definition at line 172 of file uncollatedFileOperation.C.
TypeName | ( | "uncollated" | ) |
Runtime type information.
|
virtual |
Transfer ownership of communicator to this fileOperation. Use with caution.
Implements fileOperation.
Definition at line 255 of file uncollatedFileOperation.C.
|
virtual |
Make directory.
Implements fileOperation.
Definition at line 276 of file uncollatedFileOperation.C.
References Foam::mkDir(), and Foam::mode().
|
virtual |
Set the file mode.
Implements fileOperation.
Definition at line 286 of file uncollatedFileOperation.C.
References Foam::chMod(), and Foam::mode().
|
virtual |
Return the file mode.
Implements fileOperation.
Definition at line 296 of file uncollatedFileOperation.C.
References Foam::mode().
|
virtual |
Return the file type: DIRECTORY, FILE or SYMLINK.
Implements fileOperation.
Definition at line 306 of file uncollatedFileOperation.C.
References Foam::type().
|
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().
|
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 Foam::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.
Implements fileOperation.
Definition at line 454 of file uncollatedFileOperation.C.
References Foam::ensightOutput::debug, Foam::endl(), io(), Foam::Pout, and Foam::search().
|
virtual |
Search for a directory. checkGlobal : also check undecomposed.
case
Implements fileOperation.
Definition at line 482 of file uncollatedFileOperation.C.
References Foam::ensightOutput::debug, Foam::endl(), 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::ensightOutput::debug, Foam::endl(), Time::findInstancePath(), local, IOobject::objectPath(), Foam::Pout, fileOperation::readObjects(), and objectRegistry::time().
Read object header from supplied file.
Implements fileOperation.
Definition at line 560 of file uncollatedFileOperation.C.
References Foam::ensightOutput::debug, Foam::endl(), autoPtr< T >::good(), InfoInFunction, io(), Foam::Pout, and decomposedBlockData::readHeader().
|
virtual |
Reads header for regIOobject and returns an ISstream.
to read the contents.
Implements fileOperation.
Definition at line 608 of file uncollatedFileOperation.C.
References Foam::exit(), Foam::FatalError, FatalErrorInFunction, Foam::FatalIOError, FatalIOErrorInFunction, autoPtr< T >::good(), Foam::constant::atomic::group, io(), decomposedBlockData::isCollatedType(), local, path(), and decomposedBlockData::readBlock().
|
virtual |
Top-level read.
Implements fileOperation.
Definition at line 689 of file uncollatedFileOperation.C.
References Pstream::broadcasts(), Foam::ensightOutput::debug, Foam::endl(), format(), io(), UPstream::master(), UPstream::masterNo(), regIOobject::masterOnlyReading, UPstream::parRun(), Foam::Pout, and UPstream::worldComm.
|
virtual |
Generate an ISstream that reads a file.
Implements fileOperation.
Definition at line 769 of file uncollatedFileOperation.C.
|
virtual |
Generate an OSstream that writes a file.
Implements fileOperation.
Definition at line 779 of file uncollatedFileOperation.C.
|
virtual |
Generate an OSstream that writes a file.
Implements fileOperation.
Definition at line 791 of file uncollatedFileOperation.C.
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.