Loading...
Searching...
No Matches
fileOperation Class Referenceabstract

An encapsulation of filesystem-related operations. More...

#include <fileOperation.H>

Inheritance diagram for fileOperation:
Collaboration diagram for fileOperation:

Public Types

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< dirIndexdirIndexList
typedef UPstream::rangeType procRangeType
 For addressing a range of processors (an int range).

Public Member Functions

 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 labelListioRanks () const noexcept
 The list of IO ranks (global ranks).
InfoProxy< fileOperationinfo () 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 void storeComm () const =0
 Transfer ownership of communicator to this fileOperation. Use with caution.
virtual bool mkDir (const fileName &, mode_t=0777) const =0
 Make directory.
virtual bool chMod (const fileName &, const mode_t) const =0
 Set the file mode.
virtual mode_t mode (const fileName &, const bool followLink=true) const =0
 Return the file mode.
virtual fileName::Type type (const fileName &, const bool followLink=true) const =0
 Return the file type: DIRECTORY, FILE or SYMLINK.
virtual bool exists (const fileName &, const bool checkGzip=true, const bool followLink=true) const =0
 Does the name exist (as DIRECTORY or FILE) in the file system?
virtual bool isDir (const fileName &, const bool followLink=true) const =0
 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 =0
 Does the name exist as a FILE in the file system?
virtual off_t fileSize (const fileName &, const bool followLink=true) const =0
 Return size of file.
virtual time_t lastModified (const fileName &, const bool followLink=true) const =0
 Return time of last file modification.
virtual double highResLastModified (const fileName &, const bool followLink=true) const =0
 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 =0
 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 =0
 Copy, recursively if necessary, the source to the destination.
virtual bool ln (const fileName &src, const fileName &dst) const =0
 Create a softlink. dst should not exist. Returns true if.
virtual bool mv (const fileName &src, const fileName &dst, const bool followLink=false) const =0
 Rename src to dst.
virtual bool mvBak (const fileName &, const std::string &ext="bak") const =0
 Rename to a corresponding backup file.
virtual bool rm (const fileName &) const =0
 Remove a file, returning true if successful otherwise false.
virtual bool rmDir (const fileName &dir, const bool silent=false, const bool emptyOnly=false) const =0
 Remove a directory and its contents.
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 fileName filePath (const bool checkGlobal, const IOobject &, const word &typeName, const bool search=true) const =0
 Search for an object.
virtual fileName dirPath (const bool checkGlobal, const IOobject &io, const bool search=true) const =0
 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 =0
 Read object header from supplied file.
virtual autoPtr< ISstreamreadStream (regIOobject &, const fileName &, const word &typeName, const bool readOnProc=true) const =0
 Reads header for regIOobject and returns an ISstream.
virtual bool read (regIOobject &, const bool masterOnly, const IOstreamOption::streamFormat format, const word &typeName) const =0
 Top-level read.
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 autoPtr< ISstreamNewIFstream (const fileName &) const =0
 Generate an ISstream that reads a file.
virtual autoPtr< OSstreamNewOFstream (const fileName &pathname, IOstreamOption streamOpt=IOstreamOption(), const bool writeOnProc=true) const =0
 Generate an OSstream that writes a file.
virtual autoPtr< OSstreamNewOFstream (IOstreamOption::atomicType atomic, const fileName &pathname, IOstreamOption streamOpt=IOstreamOption(), const bool writeOnProc=true) const =0
 Generate an OSstream that writes a file.
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.

Static Public Member Functions

static refPtr< fileOperationnull ()
 Reference to a dummy file handler.
static autoPtr< fileOperationNew (const word &handlerType, bool verbose=false)
 Select fileHandler-type. Uses defaultFileHandler if the handlerType is empty.
static autoPtr< fileOperationNew (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< fileOperationNew (const fileOperation &origHandler, const boolUList &useProc, bool verbose=false)
 Replicate the given fileHandler properties with a subset of (global) ranks.
static autoPtr< fileOperationNew (const fileOperation &origHandler, const bitSet &useProc, bool verbose=false)
 Replicate the given fileHandler properties with a subset of (global) ranks.
static autoPtr< fileOperationNewUncollated ()
 The commonly used uncollatedFileOperation.
static const fileOperationfileHandler ()
 Return the current file handler. Will create the default file handler if necessary.
static refPtr< fileOperationfileHandler (std::nullptr_t)
 Delete current file handler.
static refPtr< fileOperationfileHandler (refPtr< fileOperation > &newHandler)
 Replace the current file handler.
static refPtr< fileOperationfileHandler (refPtr< fileOperation > &&newHandler)
 Replace the current file handler.
static refPtr< fileOperationfileHandler (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

static const Enum< pathTypepathTypeNames_
static word processorsBaseDir = "processors"
 Return the processors directory name (usually "processors").
static word defaultFileHandler
 Name of the default fileHandler.
static refPtr< fileOperationfileHandlerPtr_
 The currently active file handler. Avoid accessing directly.

Protected Member Functions

fileMonitormonitor () const
 Get or create fileMonitor singleton.
refPtr< dirIndexListlookupAndCacheProcessorsPath (const fileName &objectPath, const bool syncPar) const
 Lookup name of processorsDDD using cache.
virtual refPtr< dirIndexListlookupProcessorsPath (const fileName &objectPath) 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.

Static Protected Member Functions

static void mergeTimes (const UList< instant > &extraTimes, const word &constantName, instantList &times)
 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

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< dirIndexListprocsDirs_
 Detected processors directories.
std::unique_ptr< fileMonitormonitorPtr_
 File-change monitor for all registered files.

Static Protected Attributes

static int cacheLevel_
 Cache level (eg, for caching time directories). Default: 1.

Detailed Description

An encapsulation of filesystem-related operations.

Several of the file handlers can be configured to use specific ranks for IO operations. These can either be defined from the command-line -ioRanks option, or via the FOAM_ENV environment variable. In either case, the list of IO ranks shall always include the value 0 (master rank). The ranks may be specified as a plain list, or as an OpenFOAM list. The special value host can be used to specify selection based on hostname.

For example,

    FOAM_IORANKS='0 4 8'   decomposePar -fileHandler hostCollated
    FOAM_IORANKS='0,4,8'   decomposePar -fileHandler hostCollated
    FOAM_IORANKS='(0 4 8)' decomposePar -fileHandler hostCollated

will generate

    processors12_0-3/   : containing data for processors 0 to 3
    processors12_4-7/   : containing data for processors 4 to 7
    processors12_8-11/  : containing data for processors 8 to 11

The value host can be used to specify a single IO rank for each host. For example,

    decomposePar -fileHandler collated -ioRanks host
    decomposePar -fileHandler hostCollated
Environment
  • FOAM_ENV : list of io-ranks as plain space or comma separated list or as an OpenFOAM formatted list. Eg, '(0 4 8)'

Definition at line 100 of file fileOperation.H.

Member Typedef Documentation

◆ dirIndex

Augment fileName with pathType and local offset.

Definition at line 136 of file fileOperation.H.

◆ dirIndexList

Definition at line 137 of file fileOperation.H.

◆ procRangeType

For addressing a range of processors (an int range).

Definition at line 142 of file fileOperation.H.

Member Enumeration Documentation

◆ pathType

enum pathType : int

Enumeration for the location of an IOobject.

Enumerator
NOTFOUND 

Not found.

ABSOLUTE 

instance is absolute directory

OBJECT 

io.objectPath() exists

WRITEOBJECT 

write path exists

PROCUNCOLLATED 

objectPath exists in 'processorN'

PROCBASEOBJECT 

objectPath exists in 'processorsNN'

PROCOBJECT 

objectPath exists in 'processorsNN_first-last'

PARENTOBJECT 

parent of object path

FINDINSTANCE 

file found in time directory

PROCUNCOLLATEDINSTANCE 

as PROCUNCOLLATED but with instance

PROCBASEINSTANCE 

as PROCBASEOBJECT but with instance

PROCINSTANCE 

as PROCOBJECT but with instance

Definition at line 109 of file fileOperation.H.

Constructor & Destructor Documentation

◆ fileOperation() [1/2]

fileOperation ( const label comm,
const labelUList & ioRanks = labelUList::null(),
const bool distributedRoots = false )
explicit

◆ fileOperation() [2/2]

fileOperation ( const Tuple2< label, labelList > & commAndIORanks,
const bool distributedRoots = false )
explicit

Construct from communicator with specified io-ranks.

Definition at line 748 of file fileOperation.C.

References comm_, distributed_, ioRanks_, nProcs(), and nProcs_.

Here is the call graph for this function:

◆ ~fileOperation()

virtual ~fileOperation ( )
virtualdefault

Destructor.

References fileOperation().

Here is the call graph for this function:

Member Function Documentation

◆ monitor()

◆ mergeTimes()

void mergeTimes ( const UList< instant > & extraTimes,
const word & constantName,
instantList & times )
staticprotected

Merge two times.

Parameters
constantNameThe "constant" name
[in,out]timesUpdated with any extra times

Definition at line 329 of file fileOperation.C.

References UList< T >::end(), forAll, name, List< T >::setSize(), UList< T >::size(), and List< T >::transfer().

Referenced by findTimes().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ isFileOrDir()

bool isFileOrDir ( const bool isFile,
const fileName & f )
staticprotected

Helper: check for file (isFile) or directory (!isFile).

Definition at line 403 of file fileOperation.C.

References f(), Foam::isDir(), isFile(), and Foam::isFile().

Referenced by masterUncollatedFileOperation::exists(), masterUncollatedFileOperation::filePathInfo(), and uncollatedFileOperation::filePathInfo().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ lookupAndCacheProcessorsPath()

◆ lookupProcessorsPath()

Foam::refPtr< Foam::fileOperation::dirIndexList > lookupProcessorsPath ( const fileName & objectPath) const
protectedvirtual

Lookup name of processorsDDD using cache.

Note
To be called on all processors
Returns
empty fileName if not found.

Reimplemented in uncollatedFileOperation.

Definition at line 691 of file fileOperation.C.

References lookupAndCacheProcessorsPath().

Referenced by masterUncollatedFileOperation::dirPath(), filePath(), masterUncollatedFileOperation::filePath(), masterUncollatedFileOperation::findInstance(), and findTimes().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ exists() [1/2]

bool exists ( IOobject & io) const
protected

Does IOobject exist? Is either a directory (empty name()) or a file.

Definition at line 697 of file fileOperation.C.

References filePath(), io, Foam::isDir(), Foam::isFile(), word::null, and objectPath().

Here is the call graph for this function:

◆ isIOrank()

bool isIOrank ( const label proci) const
protected

Is proci a master rank in the communicator (in parallel) or a master rank in the IO ranks (non-parallel).

Definition at line 227 of file fileOperationRanks.C.

References comm_, ioRanks_, UPstream::master(), and UPstream::parRun().

Referenced by collatedFileOperation::appendObject().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ printRanks()

void printRanks ( ) const
protected

Helper: output which ranks are IO.

Definition at line 240 of file fileOperationRanks.C.

References comm_, DetailInfo, forAll, UPstream::gatherList, Foam::hostName(), UPstream::master(), UPstream::msgType(), UPstream::myProcNo(), Foam::nl, UPstream::nProcs(), DynamicList< T, SizeMin >::push_back(), DynamicList< T, SizeMin >::reserve(), UList< T >::size(), and UPstream::worldComm.

Referenced by collatedFileOperation::printBanner().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getManagedComm()

◆ TypeName()

TypeName ( "fileOperation" )

Runtime type information.

◆ null()

Foam::refPtr< Foam::fileOperation > null ( )
static

Reference to a dummy file handler.

Definition at line 34 of file fileOperationNew.C.

◆ declareRunTimeSelectionTable() [1/2]

declareRunTimeSelectionTable ( autoPtr ,
fileOperation ,
word ,
(bool verbose) ,
(verbose)  )

References fileOperation().

Here is the call graph for this function:

◆ declareRunTimeSelectionTable() [2/2]

declareRunTimeSelectionTable ( autoPtr ,
fileOperation ,
comm ,
(const Tuple2< label, labelList > &commAndIORanks, const bool distributedRoots, bool verbose) ,
(commAndIORanks, distributedRoots, verbose)  )

References comm(), and fileOperation().

Here is the call graph for this function:

◆ New() [1/4]

Foam::autoPtr< Foam::fileOperation > New ( const word & handlerType,
bool verbose = false )
static

Select fileHandler-type. Uses defaultFileHandler if the handlerType is empty.

Definition at line 144 of file fileOperationNew.C.

References Foam::abort(), DebugInFunction, defaultFileHandler, Foam::endl(), Foam::FatalError, FatalErrorInFunction, FatalErrorInLookup, New(), and Foam::nl.

Referenced by fileHandler(), New(), New(), argList::parse(), and Time::readDict().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ New() [2/4]

Foam::autoPtr< Foam::fileOperation > New ( const word & handlerType,
const Tuple2< label, labelList > & commAndIORanks,
const bool distributedRoots,
bool verbose = false )
static

Select fileHandler-type. Uses defaultFileHandler if the handlerType is empty.

Definition at line 183 of file fileOperationNew.C.

References Foam::abort(), DebugInFunction, defaultFileHandler, Foam::endl(), Foam::FatalError, FatalErrorInFunction, FatalErrorInLookup, New(), and Foam::nl.

Here is the call graph for this function:

◆ New() [3/4]

Foam::autoPtr< Foam::fileOperation > New ( const fileOperation & origHandler,
const boolUList & useProc,
bool verbose = false )
static

Replicate the given fileHandler properties with a subset of (global) ranks.

Always includes rank 0 and constrained by the global numProcs Returns nullptr if myProcNo is not involved.

Parameters
origHandlerThe original file handler
useProcThe selected sub-ranks (in comm-world)

Definition at line 398 of file fileOperationNew.C.

References fileOperation(), and Foam::getSelectedProcs().

Here is the call graph for this function:

◆ New() [4/4]

Foam::autoPtr< Foam::fileOperation > New ( const fileOperation & origHandler,
const bitSet & useProc,
bool verbose = false )
static

Replicate the given fileHandler properties with a subset of (global) ranks.

Always includes rank 0 and constrained by the global numProcs Returns nullptr if myProcNo is not involved.

Parameters
origHandlerThe original file handler
useProcThe selected sub-ranks (in comm-world). Monotonic order!

Definition at line 412 of file fileOperationNew.C.

References fileOperation(), and Foam::getSelectedProcs().

Here is the call graph for this function:

◆ NewUncollated()

Foam::autoPtr< Foam::fileOperation > NewUncollated ( )
static

The commonly used uncollatedFileOperation.

Definition at line 132 of file fileOperationNew.C.

◆ fileHandler() [1/5]

const Foam::fileOperation & fileHandler ( )
static

Return the current file handler. Will create the default file handler if necessary.

Definition at line 46 of file fileOperationNew.C.

References defaultFileHandler, fileHandlerPtr_, Foam::getEnv(), and New().

Referenced by Foam::fileHandler(), fileHandler(), argList::parse(), Time::readDict(), fvMeshTools::writeProcAddressing(), and argList::~argList().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ fileHandler() [2/5]

Foam::refPtr< Foam::fileOperation > fileHandler ( std::nullptr_t )
static

Delete current file handler.

Returns
the old handler. Should have [[nodiscard]], but gcc ignores void casting.

Definition at line 65 of file fileOperationNew.C.

References fileHandlerPtr_.

◆ fileHandler() [3/5]

Foam::refPtr< Foam::fileOperation > fileHandler ( refPtr< fileOperation > & newHandler)
static

Replace the current file handler.

The following are considered no-ops:

  • an empty/invalid newHandler does not delete, use a literal nullptr (std::nullptr_t) for that
  • if new handler and current handler are identical (same pointer).
Returns
the old handler (on change), nullptr otherwise Should have [[nodiscard]], but gcc ignores void casting.

Definition at line 72 of file fileOperationNew.C.

References fileHandlerPtr_, refPtr< T >::get(), and refPtr< T >::swap().

Here is the call graph for this function:

◆ fileHandler() [4/5]

Foam::refPtr< Foam::fileOperation > fileHandler ( refPtr< fileOperation > && newHandler)
static

Replace the current file handler.

The following are considered no-ops:

  • an empty/invalid newHandler does not delete, use a literal nullptr (std::nullptr_t) for that
  • if new handler and current handler are identical (same pointer).
Returns
the old handler (on change), nullptr otherwise Should have [[nodiscard]], but gcc ignores void casting.

Definition at line 126 of file fileOperationNew.C.

References fileHandler().

Here is the call graph for this function:

◆ fileHandler() [5/5]

Foam::refPtr< Foam::fileOperation > fileHandler ( autoPtr< fileOperation > && newHandler)
static

Replace the current file handler.

The following are considered no-ops:

  • an empty/invalid newHandler does not delete, use a literal nullptr (std::nullptr_t) for that
  • if new handler and current handler are identical (same pointer).
Returns
the old handler (on change), nullptr otherwise Should have [[nodiscard]], but gcc ignores void casting.

Definition at line 105 of file fileOperationNew.C.

References fileHandlerPtr_, refPtr< T >::reset(), and refPtr< T >::swap().

Here is the call graph for this function:

◆ cacheLevel() [1/2]

◆ cacheLevel() [2/2]

int cacheLevel ( int level)
inlinestaticnoexcept

Set cache level (0 = off).

Returns
the previous value

Definition at line 545 of file fileOperation.H.

References cacheLevel_.

◆ nProcsFilter() [1/2]

int nProcsFilter ( )
inlinestaticnoexcept

Return collated 'processorsDDD' filtering.

Definition at line 555 of file fileOperation.H.

References Foam::noexcept.

Referenced by argList::parse().

Here is the caller graph for this function:

◆ nProcsFilter() [2/2]

int nProcsFilter ( int level)
inlinestaticnoexcept

Set collated 'processorsDDD' filtering (0 = off).

Returns
the previous value

Definition at line 565 of file fileOperation.H.

◆ sortTimes()

Foam::instantList sortTimes ( const fileNameList & dirEntries,
const word & constantName = "constant" )
static

Sort directory entries according to time value,.

with "constant" appearing first (if it exists)

Definition at line 215 of file fileOperation.C.

References UList< T >::begin(), UList< T >::end(), List< T >::resize(), and UList< T >::size().

Referenced by findTimes().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ uniformFile() [1/2]

bool uniformFile ( const fileNameList & names)
static

True if the file names are identical. False on an empty list.

Definition at line 274 of file fileOperation.C.

References names.

Referenced by masterUncollatedFileOperation::NewIFstream(), masterUncollatedFileOperation::readHeader(), and masterUncollatedFileOperation::readStream().

Here is the caller graph for this function:

◆ uniformFile() [2/2]

bool uniformFile ( const label comm,
const fileName & name )
static

True if the file name is identical on all ranks.

Definition at line 295 of file fileOperation.C.

References UPstream::broadcast, comm(), Foam::name(), UPstream::parRun(), and Foam::returnReduceAnd().

Here is the call graph for this function:

◆ comm() [1/2]

label comm ( ) const
inlinenoexcept

◆ comm() [2/2]

label comm ( label communicator) const
inlinenoexcept

Set communicator to use [mutable]. Negative values are a no-op.

Returns
old value

Definition at line 611 of file fileOperation.H.

References comm_.

◆ distributed() [1/2]

bool distributed ( ) const
inlinenoexcept

Distributed roots (parallel run).

Definition at line 621 of file fileOperation.H.

References distributed_, and Foam::noexcept.

Referenced by lookupAndCacheProcessorsPath().

Here is the caller graph for this function:

◆ distributed() [2/2]

bool distributed ( bool on) const
inlinenoexcept

Set distributed roots on/off [mutable].

Returns
old value

Definition at line 631 of file fileOperation.H.

References distributed_.

◆ ioRanks()

const labelList & ioRanks ( ) const
inlinenoexcept

The list of IO ranks (global ranks).

Primarily for additional bookkeeping in non-parallel

Definition at line 643 of file fileOperation.H.

References ioRanks_, and Foam::noexcept.

Referenced by fileOperation().

Here is the caller graph for this function:

◆ info()

InfoProxy< fileOperation > info ( ) const
inlinenoexcept

Return info proxy, used to print information to a stream.

Definition at line 649 of file fileOperation.H.

References Foam::noexcept.

◆ good()

virtual bool good ( ) const
inlinevirtual

True if the fileOperation can be considered valid. At the moment, primarily used to detect the dummy fileOperation.

Reimplemented in dummyFileOperation.

Definition at line 658 of file fileOperation.H.

◆ storeComm()

virtual void storeComm ( ) const
pure virtual

◆ mkDir()

virtual bool mkDir ( const fileName & ,
mode_t = 0777 ) const
pure virtual

◆ chMod()

virtual bool chMod ( const fileName & ,
const mode_t  ) const
pure virtual

◆ mode()

virtual mode_t mode ( const fileName & ,
const bool followLink = true ) const
pure virtual

Return the file mode.

Implemented in dummyFileOperation, masterUncollatedFileOperation, and uncollatedFileOperation.

◆ type()

virtual fileName::Type type ( const fileName & ,
const bool followLink = true ) const
pure virtual

Return the file type: DIRECTORY, FILE or SYMLINK.

Implemented in dummyFileOperation, masterUncollatedFileOperation, and uncollatedFileOperation.

◆ exists() [2/2]

virtual bool exists ( const fileName & ,
const bool checkGzip = true,
const bool followLink = true ) const
pure virtual

Does the name exist (as DIRECTORY or FILE) in the file system?

Optionally enable/disable check for gzip file.

Implemented in dummyFileOperation, masterUncollatedFileOperation, and uncollatedFileOperation.

◆ isDir()

virtual bool isDir ( const fileName & ,
const bool followLink = true ) const
pure virtual

Does the name exist as a DIRECTORY in the file system?

Implemented in dummyFileOperation, masterUncollatedFileOperation, and uncollatedFileOperation.

◆ isFile()

virtual bool isFile ( const fileName & ,
const bool checkGzip = true,
const bool followLink = true ) const
pure virtual

Does the name exist as a FILE in the file system?

Optionally enable/disable check for gzip file.

Implemented in dummyFileOperation, masterUncollatedFileOperation, and uncollatedFileOperation.

Referenced by isFileOrDir().

Here is the caller graph for this function:

◆ fileSize()

virtual off_t fileSize ( const fileName & ,
const bool followLink = true ) const
pure virtual

Return size of file.

Implemented in dummyFileOperation, masterUncollatedFileOperation, and uncollatedFileOperation.

◆ lastModified()

virtual time_t lastModified ( const fileName & ,
const bool followLink = true ) const
pure virtual

Return time of last file modification.

Implemented in dummyFileOperation, masterUncollatedFileOperation, and uncollatedFileOperation.

◆ highResLastModified()

virtual double highResLastModified ( const fileName & ,
const bool followLink = true ) const
pure virtual

Return time of last file modification.

Implemented in dummyFileOperation, masterUncollatedFileOperation, and uncollatedFileOperation.

◆ readDir()

virtual fileNameList readDir ( const fileName & ,
const fileName::Type = fileName::FILE,
const bool filtergz = true,
const bool followLink = true ) const
pure virtual

Read a directory and return the entries as a string list.

Implemented in dummyFileOperation, masterUncollatedFileOperation, and uncollatedFileOperation.

References fileName::FILE.

◆ cp()

virtual bool cp ( const fileName & src,
const fileName & dst,
const bool followLink = true ) const
pure virtual

Copy, recursively if necessary, the source to the destination.

Implemented in dummyFileOperation, masterUncollatedFileOperation, and uncollatedFileOperation.

◆ ln()

virtual bool ln ( const fileName & src,
const fileName & dst ) const
pure virtual

Create a softlink. dst should not exist. Returns true if.

successful.

Implemented in dummyFileOperation, masterUncollatedFileOperation, and uncollatedFileOperation.

◆ mv()

virtual bool mv ( const fileName & src,
const fileName & dst,
const bool followLink = false ) const
pure virtual

◆ mvBak()

virtual bool mvBak ( const fileName & ,
const std::string & ext = "bak" ) const
pure virtual

Rename to a corresponding backup file.

If the backup file already exists, attempt with "01" .. "99" suffix

Implemented in dummyFileOperation, masterUncollatedFileOperation, and uncollatedFileOperation.

◆ rm()

virtual bool rm ( const fileName & ) const
pure virtual

Remove a file, returning true if successful otherwise false.

Implemented in dummyFileOperation, masterUncollatedFileOperation, and uncollatedFileOperation.

◆ rmDir()

virtual bool rmDir ( const fileName & dir,
const bool silent = false,
const bool emptyOnly = false ) const
pure virtual

Remove a directory and its contents.

Parameters
dirthe directory to remove
silentdo not report missing directory
emptyOnlyonly remove empty directories (recursive)

Implemented in dummyFileOperation, masterUncollatedFileOperation, and uncollatedFileOperation.

References comm(), Foam::GlobalIOList< Tuple2< scalar, vector > >::typeName, and io.

Here is the call graph for this function:

◆ broadcastCopy()

bool broadcastCopy ( const label comm,
const bool writeOnProc,
const fileName & src,
const fileName & dst ) const
virtual

Read dir/file (recursively if necessary) on master of the communicator, send and write contents to all 'writeOnProc' processors with local file name.

Parameters
commthe communicator for broadcasting
writeOnProcwrite on the processor
srcthe source file/directory
dstthe target file/directory. If empty, treat as being identical to the src.

Definition at line 353 of file fileOperationBroadcast.C.

References Foam::broadcastFile_recursive(), comm(), fileName::DIRECTORY, and fileName::FILE.

Here is the call graph for this function:

◆ objectPath()

Foam::fileName objectPath ( const IOobject & io,
const word & typeName ) const
virtual

Generate disk file name for object. Opposite of filePath.

Parameters
typeNameThe wanted object typeName [optional, likely unused]

Reimplemented in collatedFileOperation.

Definition at line 777 of file fileOperation.C.

References Foam::GlobalIOList< Tuple2< scalar, vector > >::typeName, and io.

Referenced by exists(), masterUncollatedFileOperation::exists(), masterUncollatedFileOperation::filePathInfo(), uncollatedFileOperation::filePathInfo(), and masterUncollatedFileOperation::localObjectPath().

Here is the caller graph for this function:

◆ filePath() [1/2]

virtual fileName filePath ( const bool checkGlobal,
const IOobject & ,
const word & typeName,
const bool search = true ) const
pure virtual

Search for an object.

Parameters
checkGlobalalso check undecomposed case
typeNameThe wanted object typeName [optional, likely unused]

Implemented in dummyFileOperation, masterUncollatedFileOperation, and uncollatedFileOperation.

References Foam::GlobalIOList< Tuple2< scalar, vector > >::typeName, and Foam::search().

Referenced by exists(), and readObjects().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ dirPath()

virtual fileName dirPath ( const bool checkGlobal,
const IOobject & io,
const bool search = true ) const
pure virtual

Search for a directory.

Parameters
checkGlobalalso check undecomposed case

Implemented in dummyFileOperation, masterUncollatedFileOperation, and uncollatedFileOperation.

References io, local, and Foam::search().

Here is the call graph for this function:

◆ readObjects()

Foam::fileNameList readObjects ( const objectRegistry & db,
const fileName & instance,
const fileName & local,
word & newInstance ) const
virtual

◆ readHeader()

virtual bool readHeader ( IOobject & ,
const fileName & ,
const word & typeName ) const
pure virtual

Read object header from supplied file.

Parameters
typeNamefrequently unused?

Implemented in dummyFileOperation, masterUncollatedFileOperation, and uncollatedFileOperation.

References Foam::GlobalIOList< Tuple2< scalar, vector > >::typeName.

◆ readStream()

virtual autoPtr< ISstream > readStream ( regIOobject & ,
const fileName & ,
const word & typeName,
const bool readOnProc = true ) const
pure virtual

Reads header for regIOobject and returns an ISstream.

to read the contents.

Parameters
typeNamefrequently unused?

Implemented in dummyFileOperation, masterUncollatedFileOperation, and uncollatedFileOperation.

References Foam::GlobalIOList< Tuple2< scalar, vector > >::typeName.

◆ read()

virtual bool read ( regIOobject & ,
const bool masterOnly,
const IOstreamOption::streamFormat format,
const word & typeName ) const
pure virtual

Top-level read.

Parameters
formatThe format for parallel send/recv
typeNameforwards to regIOobject

Implemented in dummyFileOperation, masterUncollatedFileOperation, and uncollatedFileOperation.

References format(), Foam::GlobalIOList< Tuple2< scalar, vector > >::typeName, and io.

Here is the call graph for this function:

◆ writeObject()

bool writeObject ( const regIOobject & io,
IOstreamOption streamOpt = IOstreamOption(),
const bool writeOnProc = true ) const
virtual

Writes a regIOobject (so header, contents and divider).

Returns success state. Default action is to write to the objectPath using writeData. If !writeOnProc the file does not need to be written (this is used e.g. to suppress empty local lagrangian data)

Reimplemented in collatedFileOperation, and masterUncollatedFileOperation.

Definition at line 787 of file fileOperation.C.

References io, Foam::mkDir(), NewOFstream(), os(), fileName::path(), and IOobject::writeEndDivider().

Here is the call graph for this function:

◆ filePath() [2/2]

Foam::fileName filePath ( const fileName & fName,
const bool checkGzip = true,
const bool followLink = true ) const
virtual

Search for a file or directory. Use IOobject version in preference.

Definition at line 832 of file fileOperation.C.

References Foam::endl(), Foam::exists(), local, lookupProcessorsPath(), path(), Foam::Pout, splitProcessorPath(), and WarningInFunction.

Here is the call graph for this function:

◆ NewIFstream()

virtual autoPtr< ISstream > NewIFstream ( const fileName & ) const
pure virtual

Generate an ISstream that reads a file.

Implemented in dummyFileOperation, masterUncollatedFileOperation, and uncollatedFileOperation.

◆ NewOFstream() [1/2]

virtual autoPtr< OSstream > NewOFstream ( const fileName & pathname,
IOstreamOption streamOpt = IOstreamOption(),
const bool writeOnProc = true ) const
pure virtual

Generate an OSstream that writes a file.

Implemented in dummyFileOperation, masterUncollatedFileOperation, and uncollatedFileOperation.

Referenced by writeObject().

Here is the caller graph for this function:

◆ NewOFstream() [2/2]

virtual autoPtr< OSstream > NewOFstream ( IOstreamOption::atomicType atomic,
const fileName & pathname,
IOstreamOption streamOpt = IOstreamOption(),
const bool writeOnProc = true ) const
pure virtual

Generate an OSstream that writes a file.

Implemented in dummyFileOperation, masterUncollatedFileOperation, and uncollatedFileOperation.

◆ addWatch()

Foam::label addWatch ( const fileName & fName) const
virtual

Add watching of a file. Returns handle.

Reimplemented in masterUncollatedFileOperation.

Definition at line 909 of file fileOperation.C.

References monitor().

Referenced by addWatches().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ removeWatch()

bool removeWatch ( const label watchIndex) const
virtual

Remove watch on a file (using handle).

Reimplemented in masterUncollatedFileOperation.

Definition at line 915 of file fileOperation.C.

References monitor().

Referenced by addWatches().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ findWatch()

Foam::label findWatch ( const labelList & watchIndices,
const fileName & fName ) const
virtual

Find index (or -1) of file in list of handles.

Reimplemented in masterUncollatedFileOperation.

Definition at line 921 of file fileOperation.C.

References forAll, and getFile().

Referenced by addWatches().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ addWatches()

void addWatches ( regIOobject & rio,
const fileNameList & files ) const
virtual

Helper: add watches for list of regIOobjects.

Reimplemented in masterUncollatedFileOperation.

Definition at line 938 of file fileOperation.C.

References addWatch(), DynamicList< T, SizeMin >::append(), HashTable< T, Key, Hash >::erase(), f(), findWatch(), removeWatch(), and regIOobject::watchIndices().

Here is the call graph for this function:

◆ getFile()

Foam::fileName getFile ( const label watchIndex) const
virtual

Get name of file being watched (using handle).

Reimplemented in masterUncollatedFileOperation.

Definition at line 975 of file fileOperation.C.

References monitor().

Referenced by findWatch().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ updateStates()

void updateStates ( const bool masterOnly,
const bool syncPar ) const
virtual

Update state of all files.

Reimplemented in masterUncollatedFileOperation.

Definition at line 981 of file fileOperation.C.

References monitor(), and UPstream::parRun().

Here is the call graph for this function:

◆ getState()

Foam::fileMonitor::fileState getState ( const label watchFd) const
virtual

Get current state of file (using handle).

Reimplemented in masterUncollatedFileOperation.

Definition at line 991 of file fileOperation.C.

References monitor().

Here is the call graph for this function:

◆ setUnmodified()

void setUnmodified ( const label watchFd) const
virtual

Set current state of file (using handle) to unmodified.

Reimplemented in masterUncollatedFileOperation.

Definition at line 1000 of file fileOperation.C.

References monitor().

Here is the call graph for this function:

◆ processorsDir() [1/2]

virtual word processorsDir ( const IOobject & io) const
inlinevirtual

Actual name of processors dir (for use in mode PROCOBJECT, PROCINSTANCE).

Reimplemented in collatedFileOperation.

Definition at line 1043 of file fileOperation.H.

References io, and processorsBaseDir.

Referenced by masterUncollatedFileOperation::localObjectPath().

Here is the caller graph for this function:

◆ processorsDir() [2/2]

virtual word processorsDir ( const fileName & ) const
inlinevirtual

Actual name of processors dir (for use in mode PROCOBJECT, PROCINSTANCE).

Reimplemented in collatedFileOperation.

Definition at line 1052 of file fileOperation.H.

References processorsBaseDir.

◆ nProcs() [1/3]

◆ nProcs() [2/3]

label nProcs ( const label numProcs)
inlinenoexcept

Set number of processor directories/results.

Used to cache format of e.g. processorsDDD. Returns old number of processors. Only used in decomposePar

Definition at line 1070 of file fileOperation.H.

References nProcs_.

◆ nProcs() [3/3]

Foam::label nProcs ( const fileName & dir,
const fileName & local = "",
const label wantedNProcs = 0 ) const
virtual

Get number of processor directories/results.

Used for e.g. reconstructPar, argList checking

if wanted is 2 then processor0,1 is enough if wanted is not set then return highest valid range

(processors10 in above case) if wanted cannot be matched (e.g. 37) return 0

Parameters
wantedNProcs>0 if we know in advance what we're looking for

Definition at line 1305 of file fileOperation.C.

References UPstream::broadcast, comm_, fileName::DIRECTORY, Foam::endl(), bitSet::find_first_not(), Foam::isDir(), local, UPstream::master(), Foam::max(), Foam::nl, nProcs(), processorsBaseDir, Foam::readDir(), PackedList< Width >::resize(), rp(), bitSet::set(), splitProcessorPath(), and WarningInFunction.

Here is the call graph for this function:

◆ findTimes()

Foam::instantList findTimes ( const fileName & directory,
const word & constantName = "constant" ) const
virtual

Get sorted list of times.

Parameters
directoryThe directory to search
constantNameThe "constant" name

Reimplemented in masterUncollatedFileOperation.

Definition at line 1006 of file fileOperation.C.

References fileName::DIRECTORY, Foam::endl(), Foam::flatOutput(), lookupProcessorsPath(), mergeTimes(), Foam::Pout, processorsPath(), Foam::readDir(), and sortTimes().

Referenced by findInstance(), masterUncollatedFileOperation::findTimes(), and masterUncollatedFileOperation::readObjects().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ findInstance()

Foam::IOobject findInstance ( const IOobject & io,
const scalar startValue,
const word & stopInstance = "",
const bool constant_fallback = true ) const
virtual

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.

If the instance cannot be found:

  • FatalError when readOpt is (MUST_READ or READ_MODIFIED)
  • returns the stopInstance (if set and reached)
  • return constant if constant_fallback is true.
  • return an empty word if constant_fallback is false.
Parameters
stopInstanceThe search stop instance
constant_fallbackReturn "constant" instead of "" if the search failed

Reimplemented in masterUncollatedFileOperation.

Definition at line 1060 of file fileOperation.C.

References TimePaths::constant(), DebugInFunction, UList< T >::empty(), Foam::endl(), Foam::exists(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, findTimes(), IOobject::instance(), io, IOobjectOption::isReadRequired(), Time::path(), UList< T >::size(), and IOobject::time().

Here is the call graph for this function:

◆ setTime()

virtual void setTime ( const Time & ) const
inlinevirtual

Callback for time change.

Reimplemented in masterUncollatedFileOperation.

Definition at line 1127 of file fileOperation.H.

Referenced by masterUncollatedFileOperation::setTime().

Here is the caller graph for this function:

◆ flush()

void flush ( ) const
virtual

Forcibly wait until all output done. Flush any cached data.

Reimplemented in collatedFileOperation, and masterUncollatedFileOperation.

Definition at line 1400 of file fileOperation.C.

References Foam::endl(), Foam::Pout, and procsDirs_.

Referenced by masterUncollatedFileOperation::flush().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sync()

void sync ( )
virtual

Forcibly parallel sync.

Reimplemented in masterUncollatedFileOperation.

Definition at line 1411 of file fileOperation.C.

References Pstream::broadcasts(), Foam::endl(), nProcs_, Foam::Pout, procsDirs_, and UPstream::worldComm.

Referenced by masterUncollatedFileOperation::sync().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ processorsCasePath()

Foam::fileName processorsCasePath ( const IOobject & io,
const word & procDir ) const

Generate path (like io.path) from root+casename with any.

'processorXXX' replaced by procDir (usually 'processsors')

Definition at line 1428 of file fileOperation.C.

References io.

Referenced by processorsPath().

Here is the caller graph for this function:

◆ processorsPath() [1/2]

Foam::fileName processorsPath ( const IOobject & io,
const word & instance,
const word & procDir ) const

Generate path (like io.path) with provided instance and any.

'processorXXX' replaced by procDir (usually 'processsors')

Definition at line 1438 of file fileOperation.C.

References io, and processorsCasePath().

Referenced by masterUncollatedFileOperation::exists(), masterUncollatedFileOperation::filePathInfo(), uncollatedFileOperation::filePathInfo(), findTimes(), masterUncollatedFileOperation::localObjectPath(), and collatedFileOperation::writeObject().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ processorsPath() [2/2]

Foam::fileName processorsPath ( const fileName & dir,
const word & procDir ) const

Operating on fileName: replace processorXXX with procDir.

Definition at line 1453 of file fileOperation.C.

References Foam::endl(), fileName::name(), fileName::path(), string::starts_with(), and WarningInFunction.

Here is the call graph for this function:

◆ splitProcessorPath()

Foam::label splitProcessorPath ( const fileName & objectPath,
fileName & path,
fileName & procDir,
fileName & local,
procRangeType & group,
label & nProcs )
static

Split objectPath into part before 'processor' and part after.

Returns -1 or processor number and optionally number of processors. Use with care.

  • path/"processor"+Foam::name(proci)/local reconstructs input
  • path/"processors"+Foam::name(nProcs)/local reconstructs collated processors equivalence
Parameters
[out]paththe leading part of the path
[out]procDirthe processor directory name
[out]localthe local path
[out]groupany detected collated grouping
[out]nProcsdetected number of processors, -1 if none detected

Definition at line 1479 of file fileOperation.C.

References string::length(), local, nProcs(), path(), Foam::pos(), and Foam::read().

Referenced by detectProcessorPath(), filePath(), lookupAndCacheProcessorsPath(), nProcs(), and masterUncollatedFileOperation::sync().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ detectProcessorPath() [1/2]

Foam::label detectProcessorPath ( const fileName & objPath)
static

Detect processor number from '/aa/bb/processorDDD/cc'.

Definition at line 1669 of file fileOperation.C.

References detectProcessorPath().

Referenced by collatedFileOperation::appendObject(), detectProcessorPath(), lookupAndCacheProcessorsPath(), collatedFileOperation::processorsDir(), masterUncollatedFileOperation::readStream(), and uncollatedFileOperation::readStream().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ detectProcessorPath() [2/2]

Foam::label detectProcessorPath ( const fileName & objPath,
procRangeType & group,
label * numProcs = nullptr )
static

Detect processor number from 'path/processorDDD/abc' or 'path/processorsNN/abc', 'path/processorsNN_0-10/abc'.

Parameters
[out]groupany detected collated grouping
[out]numProcsdetected number of collated processors, -1 if none

Definition at line 1640 of file fileOperation.C.

References local, nProcs(), path(), and splitProcessorPath().

Here is the call graph for this function:

◆ subRanks()

Foam::labelRange subRanks ( const labelUList & mainIOranks)
static

Get (contiguous) range/bounds of ranks addressed within the given main io-ranks.

Definition at line 66 of file fileOperationRanks.C.

References UList< T >::empty(), forAllReverse, UPstream::myProcNo(), UPstream::nProcs(), UList< T >::size(), and UPstream::worldComm.

Referenced by Foam::getCommPattern().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getGlobalHostIORanks()

Foam::labelList getGlobalHostIORanks ( )
static

Get list of global IO master ranks based on the hostname. It is assumed that each host range is contiguous.

Definition at line 100 of file fileOperationRanks.C.

References UList< T >::data_bytes(), Foam::hostName(), UPstream::mpiAllGather(), UPstream::myProcNo(), UPstream::nProcs(), UPstream::numNodes(), DynamicList< T, SizeMin >::push_back(), UList< T >::size(), SHA1Digest::size_bytes(), and UPstream::worldComm.

Referenced by Foam::getCommPattern(), and getGlobalIORanks().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getGlobalIORanks()

Foam::labelList getGlobalIORanks ( )
static

Get list of global IO ranks from FOAM_IORANKS env variable. If set, these correspond to the IO master ranks.

Definition at line 143 of file fileOperationRanks.C.

References UList< T >::begin(), string::contains(), UList< T >::contains(), UList< T >::empty(), UList< T >::end(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, Foam::flatOutput(), UList< T >::front(), Foam::getEnv(), getGlobalHostIORanks(), Foam::nl, UList< T >::size(), UList< T >::slice(), and Foam::splitStringToList().

Referenced by dummyFileOperation::dummyFileOperation(), and Foam::getCommPattern().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setNProcs()

label setNProcs ( label numProcs)
inline

Same as nProcs.

Definition at line 1238 of file fileOperation.H.

References nProcs().

Here is the call graph for this function:

Member Data Documentation

◆ pathTypeNames_

◆ cacheLevel_

int cacheLevel_
staticprotected

Cache level (eg, for caching time directories). Default: 1.

Caching (e.g. of time directories) - enabled by default.

Definition at line 172 of file fileOperation.H.

Referenced by cacheLevel(), and cacheLevel().

◆ comm_

label comm_
mutableprotected

Communicator to use.

Definition at line 180 of file fileOperation.H.

Referenced by masterUncollatedFileOperation::chMod(), collatedFileOperation::collatedFileOperation(), collatedFileOperation::collatedFileOperation(), comm(), comm(), masterUncollatedFileOperation::cp(), masterUncollatedFileOperation::dirPath(), masterUncollatedFileOperation::exists(), fileOperation(), fileOperation(), masterUncollatedFileOperation::filePath(), masterUncollatedFileOperation::fileSize(), hostCollatedFileOperation::hostCollatedFileOperation(), hostUncollatedFileOperation::hostUncollatedFileOperation(), masterUncollatedFileOperation::isDir(), masterUncollatedFileOperation::isFile(), isIOrank(), masterUncollatedFileOperation::ln(), masterUncollatedFileOperation::masterUncollatedFileOperation(), masterUncollatedFileOperation::masterUncollatedFileOperation(), masterUncollatedFileOperation::mkDir(), masterUncollatedFileOperation::mode(), masterUncollatedFileOperation::mv(), masterUncollatedFileOperation::mvBak(), masterUncollatedFileOperation::NewIFstream(), masterUncollatedFileOperation::NewOFstream(), masterUncollatedFileOperation::NewOFstream(), nProcs(), printRanks(), collatedFileOperation::processorsDir(), masterUncollatedFileOperation::readDir(), masterUncollatedFileOperation::readHeader(), masterUncollatedFileOperation::readStream(), masterUncollatedFileOperation::rm(), masterUncollatedFileOperation::rmDir(), collatedFileOperation::storeComm(), hostCollatedFileOperation::storeComm(), hostUncollatedFileOperation::storeComm(), masterUncollatedFileOperation::storeComm(), uncollatedFileOperation::storeComm(), masterUncollatedFileOperation::type(), uncollatedFileOperation::uncollatedFileOperation(), and collatedFileOperation::writeObject().

◆ nProcs_

label nProcs_
protected

Overall number of processors.

Used to synthesise processor directory naming:

  • parallel: UPstream::nProcs(UPstream::commWorld())
  • non-parallel: detected from processor dir naming ('processorsNN')

Definition at line 189 of file fileOperation.H.

Referenced by fileOperation(), fileOperation(), nProcs(), nProcs(), collatedFileOperation::processorsDir(), and sync().

◆ distributed_

bool distributed_
mutableprotected

Distributed roots (parallel run).

Definition at line 194 of file fileOperation.H.

Referenced by distributed(), distributed(), fileOperation(), and fileOperation().

◆ ioRanks_

const labelList ioRanks_
protected

The list of IO ranks (global ranks).

Primarily for additional bookkeeping in non-parallel

Definition at line 201 of file fileOperation.H.

Referenced by fileOperation(), fileOperation(), ioRanks(), isIOrank(), collatedFileOperation::processorsDir(), and masterUncollatedFileOperation::readStream().

◆ procsDirs_

HashTable<dirIndexList> procsDirs_
mutableprotected

Detected processors directories.

Definition at line 206 of file fileOperation.H.

Referenced by flush(), lookupAndCacheProcessorsPath(), and sync().

◆ monitorPtr_

std::unique_ptr<fileMonitor> monitorPtr_
mutableprotected

File-change monitor for all registered files.

Definition at line 211 of file fileOperation.H.

Referenced by monitor().

◆ processorsBaseDir

Foam::word processorsBaseDir = "processors"
static

Return the processors directory name (usually "processors").

Definition at line 321 of file fileOperation.H.

Referenced by lookupAndCacheProcessorsPath(), nProcs(), processorsDir(), processorsDir(), and collatedFileOperation::processorsDir().

◆ defaultFileHandler

word defaultFileHandler
static

Name of the default fileHandler.

Definition at line 326 of file fileOperation.H.

Referenced by fileHandler(), New(), New(), and argList::parse().

◆ fileHandlerPtr_

Foam::refPtr< Foam::fileOperation > fileHandlerPtr_
static

The currently active file handler. Avoid accessing directly.

Definition at line 340 of file fileOperation.H.

Referenced by fileHandler(), fileHandler(), fileHandler(), fileHandler(), and argList::parse().


The documentation for this class was generated from the following files: