mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
STYLE: pass autoPtr for fileHandler and matrix solver as moveable
- clearer than passing a reference to a dummy variable, or relying on move occuring within the copy constructor (historical, but should be deprecated) STYLE: consistent autoPtr syntax for uncollated file operations
This commit is contained in:
@ -255,9 +255,9 @@ Foam::autoPtr<Foam::ISstream> Foam::decomposedBlockData::readBlock
|
|||||||
realIsPtr->name() = is.name();
|
realIsPtr->name() = is.name();
|
||||||
|
|
||||||
// Read header
|
// Read header
|
||||||
if (!headerIO.readHeader(realIsPtr()))
|
if (!headerIO.readHeader(*realIsPtr))
|
||||||
{
|
{
|
||||||
FatalIOErrorInFunction(realIsPtr())
|
FatalIOErrorInFunction(*realIsPtr)
|
||||||
<< "problem while reading header for object "
|
<< "problem while reading header for object "
|
||||||
<< is.name() << exit(FatalIOError);
|
<< is.name() << exit(FatalIOError);
|
||||||
}
|
}
|
||||||
@ -319,7 +319,7 @@ bool Foam::decomposedBlockData::readBlocks
|
|||||||
if (debug)
|
if (debug)
|
||||||
{
|
{
|
||||||
Pout<< "decomposedBlockData::readBlocks:"
|
Pout<< "decomposedBlockData::readBlocks:"
|
||||||
<< " stream:" << (isPtr.valid() ? isPtr().name() : "invalid")
|
<< " stream:" << (isPtr ? isPtr->name() : "invalid")
|
||||||
<< " commsType:" << Pstream::commsTypeNames[commsType]
|
<< " commsType:" << Pstream::commsTypeNames[commsType]
|
||||||
<< " comm:" << comm << endl;
|
<< " comm:" << comm << endl;
|
||||||
}
|
}
|
||||||
@ -330,7 +330,7 @@ bool Foam::decomposedBlockData::readBlocks
|
|||||||
{
|
{
|
||||||
if (UPstream::master(comm))
|
if (UPstream::master(comm))
|
||||||
{
|
{
|
||||||
Istream& is = isPtr();
|
Istream& is = *isPtr;
|
||||||
is.fatalCheck("read(Istream&)");
|
is.fatalCheck("read(Istream&)");
|
||||||
|
|
||||||
// Read master data
|
// Read master data
|
||||||
@ -387,7 +387,7 @@ bool Foam::decomposedBlockData::readBlocks
|
|||||||
|
|
||||||
if (UPstream::master(comm))
|
if (UPstream::master(comm))
|
||||||
{
|
{
|
||||||
Istream& is = isPtr();
|
Istream& is = *isPtr;
|
||||||
is.fatalCheck("read(Istream&)");
|
is.fatalCheck("read(Istream&)");
|
||||||
|
|
||||||
// Read master data
|
// Read master data
|
||||||
@ -440,7 +440,7 @@ Foam::autoPtr<Foam::ISstream> Foam::decomposedBlockData::readBlocks
|
|||||||
if (debug)
|
if (debug)
|
||||||
{
|
{
|
||||||
Pout<< "decomposedBlockData::readBlocks:"
|
Pout<< "decomposedBlockData::readBlocks:"
|
||||||
<< " stream:" << (isPtr.valid() ? isPtr().name() : "invalid")
|
<< " stream:" << (isPtr ? isPtr->name() : "invalid")
|
||||||
<< " commsType:" << Pstream::commsTypeNames[commsType] << endl;
|
<< " commsType:" << Pstream::commsTypeNames[commsType] << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -453,7 +453,7 @@ Foam::autoPtr<Foam::ISstream> Foam::decomposedBlockData::readBlocks
|
|||||||
{
|
{
|
||||||
if (UPstream::master(comm))
|
if (UPstream::master(comm))
|
||||||
{
|
{
|
||||||
Istream& is = isPtr();
|
Istream& is = *isPtr;
|
||||||
is.fatalCheck("read(Istream&)");
|
is.fatalCheck("read(Istream&)");
|
||||||
|
|
||||||
// Read master data
|
// Read master data
|
||||||
@ -465,9 +465,9 @@ Foam::autoPtr<Foam::ISstream> Foam::decomposedBlockData::readBlocks
|
|||||||
realIsPtr->name() = fName;
|
realIsPtr->name() = fName;
|
||||||
|
|
||||||
// Read header
|
// Read header
|
||||||
if (!headerIO.readHeader(realIsPtr()))
|
if (!headerIO.readHeader(*realIsPtr))
|
||||||
{
|
{
|
||||||
FatalIOErrorInFunction(realIsPtr())
|
FatalIOErrorInFunction(*realIsPtr)
|
||||||
<< "problem while reading header for object "
|
<< "problem while reading header for object "
|
||||||
<< is.name() << exit(FatalIOError);
|
<< is.name() << exit(FatalIOError);
|
||||||
}
|
}
|
||||||
@ -524,7 +524,7 @@ Foam::autoPtr<Foam::ISstream> Foam::decomposedBlockData::readBlocks
|
|||||||
|
|
||||||
if (UPstream::master(comm))
|
if (UPstream::master(comm))
|
||||||
{
|
{
|
||||||
Istream& is = isPtr();
|
Istream& is = *isPtr;
|
||||||
is.fatalCheck("read(Istream&)");
|
is.fatalCheck("read(Istream&)");
|
||||||
|
|
||||||
// Read master data
|
// Read master data
|
||||||
@ -536,9 +536,9 @@ Foam::autoPtr<Foam::ISstream> Foam::decomposedBlockData::readBlocks
|
|||||||
realIsPtr->name() = fName;
|
realIsPtr->name() = fName;
|
||||||
|
|
||||||
// Read header
|
// Read header
|
||||||
if (!headerIO.readHeader(realIsPtr()))
|
if (!headerIO.readHeader(*realIsPtr))
|
||||||
{
|
{
|
||||||
FatalIOErrorInFunction(realIsPtr())
|
FatalIOErrorInFunction(*realIsPtr)
|
||||||
<< "problem while reading header for object "
|
<< "problem while reading header for object "
|
||||||
<< is.name() << exit(FatalIOError);
|
<< is.name() << exit(FatalIOError);
|
||||||
}
|
}
|
||||||
@ -769,7 +769,7 @@ bool Foam::decomposedBlockData::writeBlocks
|
|||||||
if (debug)
|
if (debug)
|
||||||
{
|
{
|
||||||
Pout<< "decomposedBlockData::writeBlocks:"
|
Pout<< "decomposedBlockData::writeBlocks:"
|
||||||
<< " stream:" << (osPtr.valid() ? osPtr().name() : "invalid")
|
<< " stream:" << (osPtr ? osPtr->name() : "invalid")
|
||||||
<< " data:" << data.size()
|
<< " data:" << data.size()
|
||||||
<< " (master only) slaveData:" << slaveData.size()
|
<< " (master only) slaveData:" << slaveData.size()
|
||||||
<< " commsType:" << Pstream::commsTypeNames[commsType] << endl;
|
<< " commsType:" << Pstream::commsTypeNames[commsType] << endl;
|
||||||
@ -786,7 +786,7 @@ bool Foam::decomposedBlockData::writeBlocks
|
|||||||
|
|
||||||
if (UPstream::master(comm))
|
if (UPstream::master(comm))
|
||||||
{
|
{
|
||||||
OSstream& os = osPtr();
|
OSstream& os = *osPtr;
|
||||||
|
|
||||||
start.setSize(nProcs);
|
start.setSize(nProcs);
|
||||||
|
|
||||||
@ -819,7 +819,7 @@ bool Foam::decomposedBlockData::writeBlocks
|
|||||||
{
|
{
|
||||||
start.setSize(nProcs);
|
start.setSize(nProcs);
|
||||||
|
|
||||||
OSstream& os = osPtr();
|
OSstream& os = *osPtr;
|
||||||
|
|
||||||
// Write master data
|
// Write master data
|
||||||
{
|
{
|
||||||
@ -869,7 +869,7 @@ bool Foam::decomposedBlockData::writeBlocks
|
|||||||
{
|
{
|
||||||
start.setSize(nProcs);
|
start.setSize(nProcs);
|
||||||
|
|
||||||
OSstream& os = osPtr();
|
OSstream& os = *osPtr;
|
||||||
|
|
||||||
os << nl << "// Processor" << UPstream::masterNo() << nl;
|
os << nl << "// Processor" << UPstream::masterNo() << nl;
|
||||||
start[UPstream::masterNo()] = os.stdStream().tellp();
|
start[UPstream::masterNo()] = os.stdStream().tellp();
|
||||||
@ -922,7 +922,7 @@ bool Foam::decomposedBlockData::writeBlocks
|
|||||||
|
|
||||||
if (UPstream::master(comm))
|
if (UPstream::master(comm))
|
||||||
{
|
{
|
||||||
OSstream& os = osPtr();
|
OSstream& os = *osPtr;
|
||||||
|
|
||||||
// Write slaves
|
// Write slaves
|
||||||
for
|
for
|
||||||
@ -950,7 +950,7 @@ bool Foam::decomposedBlockData::writeBlocks
|
|||||||
|
|
||||||
if (UPstream::master(comm))
|
if (UPstream::master(comm))
|
||||||
{
|
{
|
||||||
ok = osPtr().good();
|
ok = osPtr->good();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -972,7 +972,7 @@ bool Foam::decomposedBlockData::read()
|
|||||||
if (UPstream::master(comm_))
|
if (UPstream::master(comm_))
|
||||||
{
|
{
|
||||||
isPtr.reset(new IFstream(objPath));
|
isPtr.reset(new IFstream(objPath));
|
||||||
IOobject::readHeader(isPtr());
|
IOobject::readHeader(*isPtr);
|
||||||
}
|
}
|
||||||
|
|
||||||
List<char>& data = *this;
|
List<char>& data = *this;
|
||||||
@ -1063,7 +1063,7 @@ bool Foam::decomposedBlockData::writeObject
|
|||||||
// Note: always write binary. These are strings so readable anyway.
|
// Note: always write binary. These are strings so readable anyway.
|
||||||
// They have already be tokenised on the sending side.
|
// They have already be tokenised on the sending side.
|
||||||
osPtr.reset(new OFstream(objectPath(), streamOpt));
|
osPtr.reset(new OFstream(objectPath(), streamOpt));
|
||||||
IOobject::writeHeader(osPtr());
|
IOobject::writeHeader(*osPtr);
|
||||||
}
|
}
|
||||||
|
|
||||||
labelList recvSizes;
|
labelList recvSizes;
|
||||||
|
|||||||
@ -166,8 +166,7 @@ void Foam::Time::readDict()
|
|||||||
controlDict_.watchIndices().clear();
|
controlDict_.watchIndices().clear();
|
||||||
|
|
||||||
// Installing the new handler
|
// Installing the new handler
|
||||||
auto handler = fileOperation::New(fileHandlerName, true);
|
Foam::fileHandler(fileOperation::New(fileHandlerName, true));
|
||||||
Foam::fileHandler(handler);
|
|
||||||
|
|
||||||
// Reinstall old watches
|
// Reinstall old watches
|
||||||
fileHandler().addWatches(controlDict_, oldWatched);
|
fileHandler().addWatches(controlDict_, oldWatched);
|
||||||
|
|||||||
@ -1070,16 +1070,17 @@ void Foam::argList::parse
|
|||||||
// 5. '-fileHandler' commmand-line option
|
// 5. '-fileHandler' commmand-line option
|
||||||
|
|
||||||
{
|
{
|
||||||
word handlerType =
|
word handlerType
|
||||||
options_.lookup("fileHandler", Foam::getEnv("FOAM_FILEHANDLER"));
|
(
|
||||||
|
options_.lookup("fileHandler", Foam::getEnv("FOAM_FILEHANDLER"))
|
||||||
|
);
|
||||||
|
|
||||||
if (handlerType.empty())
|
if (handlerType.empty())
|
||||||
{
|
{
|
||||||
handlerType = fileOperation::defaultFileHandler;
|
handlerType = fileOperation::defaultFileHandler;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto handler = fileOperation::New(handlerType, bannerEnabled());
|
Foam::fileHandler(fileOperation::New(handlerType, bannerEnabled()));
|
||||||
Foam::fileHandler(handler);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1549,8 +1550,7 @@ Foam::argList::~argList()
|
|||||||
jobInfo.end();
|
jobInfo.end();
|
||||||
|
|
||||||
// Delete file handler to flush any remaining IO
|
// Delete file handler to flush any remaining IO
|
||||||
autoPtr<fileOperation> dummy(nullptr);
|
Foam::fileHandler(nullptr);
|
||||||
fileHandler(dummy);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -138,9 +138,9 @@ bool Foam::OFstreamCollator::writeFile
|
|||||||
false // do not reduce return state
|
false // do not reduce return state
|
||||||
);
|
);
|
||||||
|
|
||||||
if (osPtr.valid() && !osPtr().good())
|
if (osPtr && !osPtr->good())
|
||||||
{
|
{
|
||||||
FatalIOErrorInFunction(osPtr())
|
FatalIOErrorInFunction(*osPtr)
|
||||||
<< "Failed writing to " << fName << exit(FatalIOError);
|
<< "Failed writing to " << fName << exit(FatalIOError);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -334,13 +334,13 @@ Foam::OFstreamCollator::OFstreamCollator
|
|||||||
|
|
||||||
Foam::OFstreamCollator::~OFstreamCollator()
|
Foam::OFstreamCollator::~OFstreamCollator()
|
||||||
{
|
{
|
||||||
if (thread_.valid())
|
if (thread_)
|
||||||
{
|
{
|
||||||
if (debug)
|
if (debug)
|
||||||
{
|
{
|
||||||
Pout<< "~OFstreamCollator : Waiting for write thread" << endl;
|
Pout<< "~OFstreamCollator : Waiting for write thread" << endl;
|
||||||
}
|
}
|
||||||
thread_().join();
|
thread_->join();
|
||||||
thread_.clear();
|
thread_.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -505,14 +505,14 @@ bool Foam::OFstreamCollator::write
|
|||||||
// Start thread if not running
|
// Start thread if not running
|
||||||
if (!threadRunning_)
|
if (!threadRunning_)
|
||||||
{
|
{
|
||||||
if (thread_.valid())
|
if (thread_)
|
||||||
{
|
{
|
||||||
if (debug)
|
if (debug)
|
||||||
{
|
{
|
||||||
Pout<< "OFstreamCollator : Waiting for write thread"
|
Pout<< "OFstreamCollator : Waiting for write thread"
|
||||||
<< endl;
|
<< endl;
|
||||||
}
|
}
|
||||||
thread_().join();
|
thread_->join();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (debug)
|
if (debug)
|
||||||
@ -573,14 +573,14 @@ bool Foam::OFstreamCollator::write
|
|||||||
|
|
||||||
if (!threadRunning_)
|
if (!threadRunning_)
|
||||||
{
|
{
|
||||||
if (thread_.valid())
|
if (thread_)
|
||||||
{
|
{
|
||||||
if (debug)
|
if (debug)
|
||||||
{
|
{
|
||||||
Pout<< "OFstreamCollator : Waiting for write thread"
|
Pout<< "OFstreamCollator : Waiting for write thread"
|
||||||
<< endl;
|
<< endl;
|
||||||
}
|
}
|
||||||
thread_().join();
|
thread_->join();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (debug)
|
if (debug)
|
||||||
|
|||||||
@ -41,8 +41,6 @@ License
|
|||||||
|
|
||||||
namespace Foam
|
namespace Foam
|
||||||
{
|
{
|
||||||
autoPtr<fileOperation> fileOperation::fileHandlerPtr_;
|
|
||||||
|
|
||||||
defineTypeNameAndDebug(fileOperation, 0);
|
defineTypeNameAndDebug(fileOperation, 0);
|
||||||
defineRunTimeSelectionTable(fileOperation, word);
|
defineRunTimeSelectionTable(fileOperation, word);
|
||||||
|
|
||||||
@ -59,6 +57,8 @@ namespace Foam
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Foam::autoPtr<Foam::fileOperation> Foam::fileOperation::fileHandlerPtr_;
|
||||||
|
|
||||||
Foam::word Foam::fileOperation::processorsBaseDir = "processors";
|
Foam::word Foam::fileOperation::processorsBaseDir = "processors";
|
||||||
|
|
||||||
const Foam::Enum<Foam::fileOperation::pathType>
|
const Foam::Enum<Foam::fileOperation::pathType>
|
||||||
@ -83,7 +83,7 @@ Foam::fileOperation::pathTypeNames_
|
|||||||
|
|
||||||
Foam::fileMonitor& Foam::fileOperation::monitor() const
|
Foam::fileMonitor& Foam::fileOperation::monitor() const
|
||||||
{
|
{
|
||||||
if (!monitorPtr_.valid())
|
if (!monitorPtr_)
|
||||||
{
|
{
|
||||||
monitorPtr_.reset
|
monitorPtr_.reset
|
||||||
(
|
(
|
||||||
@ -1169,7 +1169,7 @@ Foam::label Foam::fileOperation::detectProcessorPath(const fileName& fName)
|
|||||||
|
|
||||||
const Foam::fileOperation& Foam::fileHandler()
|
const Foam::fileOperation& Foam::fileHandler()
|
||||||
{
|
{
|
||||||
if (!fileOperation::fileHandlerPtr_.valid())
|
if (!fileOperation::fileHandlerPtr_)
|
||||||
{
|
{
|
||||||
word handler(getEnv("FOAM_FILEHANDLER"));
|
word handler(getEnv("FOAM_FILEHANDLER"));
|
||||||
|
|
||||||
@ -1185,23 +1185,19 @@ const Foam::fileOperation& Foam::fileHandler()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Foam::fileHandler(autoPtr<fileOperation>& newHandler)
|
void Foam::fileHandler(autoPtr<fileOperation>&& newHandler)
|
||||||
{
|
{
|
||||||
if
|
if
|
||||||
(
|
(
|
||||||
newHandler.valid() && fileOperation::fileHandlerPtr_.valid()
|
newHandler
|
||||||
|
&& fileOperation::fileHandlerPtr_
|
||||||
&& newHandler->type() == fileOperation::fileHandlerPtr_->type()
|
&& newHandler->type() == fileOperation::fileHandlerPtr_->type()
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
fileOperation::fileHandlerPtr_.clear();
|
|
||||||
|
|
||||||
if (newHandler.valid())
|
|
||||||
{
|
|
||||||
fileOperation::fileHandlerPtr_ = std::move(newHandler);
|
fileOperation::fileHandlerPtr_ = std::move(newHandler);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -58,6 +58,7 @@ Description
|
|||||||
namespace Foam
|
namespace Foam
|
||||||
{
|
{
|
||||||
|
|
||||||
|
// Forward Declarations
|
||||||
class IOobject;
|
class IOobject;
|
||||||
class regIOobject;
|
class regIOobject;
|
||||||
class objectRegistry;
|
class objectRegistry;
|
||||||
@ -564,8 +565,8 @@ public:
|
|||||||
//- Get current file handler
|
//- Get current file handler
|
||||||
const fileOperation& fileHandler();
|
const fileOperation& fileHandler();
|
||||||
|
|
||||||
//- Reset file handler
|
//- Replace, reset file handler
|
||||||
void fileHandler(autoPtr<fileOperation>& newHandler);
|
void fileHandler(autoPtr<fileOperation>&& newHandler);
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|||||||
@ -638,9 +638,9 @@ Foam::fileOperations::masterUncollatedFileOperation::read
|
|||||||
isPtr.reset(new IFstream(filePaths[0]));
|
isPtr.reset(new IFstream(filePaths[0]));
|
||||||
|
|
||||||
// Read header
|
// Read header
|
||||||
if (!io.readHeader(isPtr()))
|
if (!io.readHeader(*isPtr))
|
||||||
{
|
{
|
||||||
FatalIOErrorInFunction(isPtr())
|
FatalIOErrorInFunction(*isPtr)
|
||||||
<< "problem while reading header for object "
|
<< "problem while reading header for object "
|
||||||
<< io.name() << exit(FatalIOError);
|
<< io.name() << exit(FatalIOError);
|
||||||
}
|
}
|
||||||
@ -684,7 +684,7 @@ Foam::fileOperations::masterUncollatedFileOperation::read
|
|||||||
{
|
{
|
||||||
// This processor needs to return something
|
// This processor needs to return something
|
||||||
|
|
||||||
if (!isPtr.valid())
|
if (!isPtr)
|
||||||
{
|
{
|
||||||
UIPstream is(Pstream::masterNo(), pBufs);
|
UIPstream is(Pstream::masterNo(), pBufs);
|
||||||
|
|
||||||
@ -709,9 +709,9 @@ Foam::fileOperations::masterUncollatedFileOperation::read
|
|||||||
// With the proper file name
|
// With the proper file name
|
||||||
isPtr->name() = filePaths[Pstream::myProcNo(comm)];
|
isPtr->name() = filePaths[Pstream::myProcNo(comm)];
|
||||||
|
|
||||||
if (!io.readHeader(isPtr()))
|
if (!io.readHeader(*isPtr))
|
||||||
{
|
{
|
||||||
FatalIOErrorInFunction(isPtr())
|
FatalIOErrorInFunction(*isPtr)
|
||||||
<< "problem while reading header for object "
|
<< "problem while reading header for object "
|
||||||
<< io.name() << exit(FatalIOError);
|
<< io.name() << exit(FatalIOError);
|
||||||
}
|
}
|
||||||
@ -1918,10 +1918,10 @@ Foam::fileOperations::masterUncollatedFileOperation::readStream
|
|||||||
|
|
||||||
isPtr.reset(new IFstream(fName));
|
isPtr.reset(new IFstream(fName));
|
||||||
|
|
||||||
if (isPtr().good())
|
if (isPtr->good())
|
||||||
{
|
{
|
||||||
// Read header data (on copy)
|
// Read header data (on copy)
|
||||||
headerIO.readHeader(isPtr());
|
headerIO.readHeader(*isPtr);
|
||||||
|
|
||||||
if (headerIO.headerClassName() == decomposedBlockData::typeName)
|
if (headerIO.headerClassName() == decomposedBlockData::typeName)
|
||||||
{
|
{
|
||||||
@ -1986,7 +1986,7 @@ Foam::fileOperations::masterUncollatedFileOperation::readStream
|
|||||||
|
|
||||||
if (proci == -1)
|
if (proci == -1)
|
||||||
{
|
{
|
||||||
FatalIOErrorInFunction(isPtr())
|
FatalIOErrorInFunction(*isPtr)
|
||||||
<< "Could not detect processor number"
|
<< "Could not detect processor number"
|
||||||
<< " from objectPath:" << io.objectPath()
|
<< " from objectPath:" << io.objectPath()
|
||||||
<< exit(FatalIOError);
|
<< exit(FatalIOError);
|
||||||
@ -2005,10 +2005,10 @@ Foam::fileOperations::masterUncollatedFileOperation::readStream
|
|||||||
Pout<< "masterUncollatedFileOperation::readStream :"
|
Pout<< "masterUncollatedFileOperation::readStream :"
|
||||||
<< " For object : " << io.name()
|
<< " For object : " << io.name()
|
||||||
<< " starting input from block " << proci
|
<< " starting input from block " << proci
|
||||||
<< " of " << isPtr().name() << endl;
|
<< " of " << isPtr->name() << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
return decomposedBlockData::readBlock(proci, isPtr(), io);
|
return decomposedBlockData::readBlock(proci, *isPtr, io);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -2023,17 +2023,17 @@ Foam::fileOperations::masterUncollatedFileOperation::readStream
|
|||||||
if (groupStart != -1 && groupSize > 0)
|
if (groupStart != -1 && groupSize > 0)
|
||||||
{
|
{
|
||||||
readComm = comm_;
|
readComm = comm_;
|
||||||
if (UPstream::master(comm_) && !isPtr.valid() && !fName.empty())
|
if (UPstream::master(comm_) && !isPtr && !fName.empty())
|
||||||
{
|
{
|
||||||
// In multi-master mode also open the file on the other
|
// In multi-master mode also open the file on the other
|
||||||
// masters
|
// masters
|
||||||
isPtr.reset(new IFstream(fName));
|
isPtr.reset(new IFstream(fName));
|
||||||
|
|
||||||
if (isPtr().good())
|
if (isPtr->good())
|
||||||
{
|
{
|
||||||
// Read header data (on copy)
|
// Read header data (on copy)
|
||||||
IOobject headerIO(io);
|
IOobject headerIO(io);
|
||||||
headerIO.readHeader(isPtr());
|
headerIO.readHeader(*isPtr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -502,17 +502,17 @@ bool Foam::fileOperations::uncollatedFileOperation::readHeader
|
|||||||
|
|
||||||
autoPtr<ISstream> isPtr(NewIFstream(fName));
|
autoPtr<ISstream> isPtr(NewIFstream(fName));
|
||||||
|
|
||||||
if (!isPtr.valid() || !isPtr->good())
|
if (!isPtr || !isPtr->good())
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ok = io.readHeader(isPtr());
|
bool ok = io.readHeader(*isPtr);
|
||||||
|
|
||||||
if (io.headerClassName() == decomposedBlockData::typeName)
|
if (io.headerClassName() == decomposedBlockData::typeName)
|
||||||
{
|
{
|
||||||
// Read the header inside the container (master data)
|
// Read the header inside the container (master data)
|
||||||
ok = decomposedBlockData::readMasterHeader(io, isPtr());
|
ok = decomposedBlockData::readMasterHeader(io, *isPtr);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (debug)
|
if (debug)
|
||||||
@ -536,12 +536,9 @@ Foam::fileOperations::uncollatedFileOperation::readStream
|
|||||||
const bool valid
|
const bool valid
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
autoPtr<ISstream> isPtr;
|
|
||||||
|
|
||||||
if (!valid)
|
if (!valid)
|
||||||
{
|
{
|
||||||
isPtr = autoPtr<ISstream>(new dummyISstream());
|
return autoPtr<ISstream>(new dummyISstream());
|
||||||
return isPtr;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fName.empty())
|
if (fName.empty())
|
||||||
@ -551,9 +548,9 @@ Foam::fileOperations::uncollatedFileOperation::readStream
|
|||||||
<< exit(FatalError);
|
<< exit(FatalError);
|
||||||
}
|
}
|
||||||
|
|
||||||
isPtr = NewIFstream(fName);
|
autoPtr<ISstream> isPtr = NewIFstream(fName);
|
||||||
|
|
||||||
if (!isPtr.valid() || !isPtr->good())
|
if (!isPtr || !isPtr->good())
|
||||||
{
|
{
|
||||||
FatalIOError
|
FatalIOError
|
||||||
(
|
(
|
||||||
@ -565,9 +562,9 @@ Foam::fileOperations::uncollatedFileOperation::readStream
|
|||||||
) << "cannot open file"
|
) << "cannot open file"
|
||||||
<< exit(FatalIOError);
|
<< exit(FatalIOError);
|
||||||
}
|
}
|
||||||
else if (!io.readHeader(isPtr()))
|
else if (!io.readHeader(*isPtr))
|
||||||
{
|
{
|
||||||
FatalIOErrorInFunction(isPtr())
|
FatalIOErrorInFunction(*isPtr)
|
||||||
<< "problem while reading header for object " << io.name()
|
<< "problem while reading header for object " << io.name()
|
||||||
<< exit(FatalIOError);
|
<< exit(FatalIOError);
|
||||||
}
|
}
|
||||||
@ -584,7 +581,7 @@ Foam::fileOperations::uncollatedFileOperation::readStream
|
|||||||
|
|
||||||
if (proci == -1)
|
if (proci == -1)
|
||||||
{
|
{
|
||||||
FatalIOErrorInFunction(isPtr())
|
FatalIOErrorInFunction(*isPtr)
|
||||||
<< "could not detect processor number"
|
<< "could not detect processor number"
|
||||||
<< " from objectPath:" << io.objectPath()
|
<< " from objectPath:" << io.objectPath()
|
||||||
<< " fName:" << fName
|
<< " fName:" << fName
|
||||||
@ -612,7 +609,7 @@ Foam::fileOperations::uncollatedFileOperation::readStream
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Read data and return as stream
|
// Read data and return as stream
|
||||||
return decomposedBlockData::readBlock(proci, isPtr(), io);
|
return decomposedBlockData::readBlock(proci, *isPtr, io);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -6,6 +6,7 @@
|
|||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2016-2017 Wikki Ltd
|
Copyright (C) 2016-2017 Wikki Ltd
|
||||||
|
Copyright (C) 2020 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -166,10 +167,10 @@ public:
|
|||||||
|
|
||||||
// Constructors
|
// Constructors
|
||||||
|
|
||||||
faSolver(faMatrix<Type>& faMat, autoPtr<lduMatrix::solver> sol)
|
faSolver(faMatrix<Type>& faMat, autoPtr<lduMatrix::solver>&& sol)
|
||||||
:
|
:
|
||||||
faMat_(faMat),
|
faMat_(faMat),
|
||||||
solver_(sol)
|
solver_(std::move(sol))
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -231,10 +231,10 @@ public:
|
|||||||
|
|
||||||
// Constructors
|
// Constructors
|
||||||
|
|
||||||
fvSolver(fvMatrix<Type>& fvMat, autoPtr<lduMatrix::solver> sol)
|
fvSolver(fvMatrix<Type>& fvMat, autoPtr<lduMatrix::solver>&& sol)
|
||||||
:
|
:
|
||||||
fvMat_(fvMat),
|
fvMat_(fvMat),
|
||||||
solver_(sol)
|
solver_(std::move(sol))
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user