Input inter-processor communications stream operating on external buffer. More...
Public Member Functions | |
UIPstream (const commsTypes commsType, const int fromProcNo, DynamicList< char > &receiveBuf, label &receiveBufPosition, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm, const bool clearAtEnd=false, IOstreamOption::streamFormat fmt=IOstreamOption::BINARY) | |
UIPstream (const int fromProcNo, PstreamBuffers &buffers) | |
Construct given buffers. More... | |
~UIPstream () | |
Destructor. More... | |
ios_base::fmtflags | flags () const |
Return flags of output stream. More... | |
Istream & | read (token &t) |
Return next token from stream. More... | |
Istream & | read (char &c) |
Read a character. More... | |
Istream & | read (word &str) |
Read a word. More... | |
Istream & | read (string &str) |
Read a string (including enclosing double-quotes) More... | |
Istream & | read (label &val) |
Read a label. More... | |
Istream & | read (floatScalar &val) |
Read a floatScalar. More... | |
Istream & | read (doubleScalar &val) |
Read a doubleScalar. More... | |
Istream & | read (char *data, std::streamsize count) |
Read binary block with 8-byte alignment. More... | |
Istream & | readRaw (char *data, std::streamsize count) |
Low-level raw binary read. More... | |
bool | beginRawRead () |
Start of low-level raw binary read. More... | |
bool | endRawRead () |
End of low-level raw binary read. More... | |
void | rewind () |
Rewind the stream so that it may be read again. More... | |
ios_base::fmtflags | flags (const ios_base::fmtflags) |
Set flags of stream. More... | |
void | print (Ostream &os) const |
Print stream description to Ostream. More... | |
![]() | |
ClassName ("UPstream") | |
UPstream (const commsTypes commsType) | |
Construct for given communication type. More... | |
commsTypes | commsType () const noexcept |
Get the communications type of the stream. More... | |
commsTypes | commsType (const commsTypes ct) noexcept |
Set the communications type of the stream. More... | |
template<class T > | |
Foam::List< T > | listGatherValues (const T &localValue, const label comm) |
![]() | |
Istream (const Istream &)=default | |
Copy construct. More... | |
virtual | ~Istream ()=default |
Destructor. More... | |
Istream (IOstreamOption streamOpt=IOstreamOption()) | |
Istream (IOstreamOption::streamFormat fmt, IOstreamOption::versionNumber ver=IOstreamOption::currentVersion, IOstreamOption::compressionType cmp=IOstreamOption::UNCOMPRESSED) | |
Construct with format, version (compression) More... | |
const token & | peekBack () const noexcept |
Examine putback token without removing it. More... | |
bool | peekBack (token &tok) |
Fetch putback token without removing it. More... | |
void | putBack (const token &tok) |
Put back a token. Only a single put back is permitted. More... | |
bool | getBack (token &tok) |
Get the put-back token if there is one. More... | |
bool | readBegin (const char *funcName) |
Begin read of data chunk, starts with '('. More... | |
bool | readEnd (const char *funcName) |
End read of data chunk, ends with ')'. More... | |
char | readBeginList (const char *funcName) |
Begin read of list data, starts with '(' or '{'. More... | |
char | readEndList (const char *funcName) |
End read of list data, ends with ')' or '}'. More... | |
Istream & | operator() () const |
Return a non-const reference to const Istream. More... | |
![]() | |
IOstream (const IOstream &)=default | |
Copy construct. More... | |
virtual | ~IOstream ()=default |
Destructor. More... | |
IOstream (IOstreamOption streamOpt=IOstreamOption()) | |
IOstream (IOstreamOption::streamFormat fmt, IOstreamOption::versionNumber ver, IOstreamOption::compressionType cmp=IOstreamOption::UNCOMPRESSED) | |
Construct with format, version (compression) More... | |
virtual const fileName & | name () const |
Return the name of the stream. More... | |
virtual fileName & | name () |
Return stream name for modification. More... | |
fileName | relativeName () const |
Return the name of the stream relative to the current case. More... | |
virtual bool | check (const char *operation) const |
Check IOstream status for given operation. More... | |
bool | fatalCheck (const char *operation) const |
Check IOstream status for given operation. More... | |
bool | opened () const noexcept |
True if stream has been opened. More... | |
bool | closed () const noexcept |
True if stream is closed. More... | |
bool | good () const noexcept |
True if next operation might succeed. More... | |
bool | eof () const noexcept |
True if end of input seen. More... | |
bool | fail () const noexcept |
True if next operation will fail. More... | |
bool | bad () const noexcept |
True if stream is corrupted. More... | |
operator bool () const noexcept | |
Return true if the stream has not failed. More... | |
bool | operator! () const noexcept |
Return true if the stream has failed. More... | |
unsigned | labelByteSize () const noexcept |
The sizeof (label) in bytes associated with the stream. More... | |
unsigned | scalarByteSize () const noexcept |
The sizeof (scalar) in bytes associated with the stream. More... | |
void | setLabelByteSize (unsigned nbytes) noexcept |
Set the sizeof (label) in bytes associated with the stream. More... | |
void | setScalarByteSize (unsigned nbytes) noexcept |
Set the sizeof (scalar) in bytes associated with the stream. More... | |
template<class T = label> | |
std::enable_if< std::is_integral< T >::value, bool >::type | checkLabelSize () const noexcept |
template<class T = scalar> | |
std::enable_if< std::is_floating_point< T >::value, bool >::type | checkScalarSize () const noexcept |
label | lineNumber () const noexcept |
Const access to the current stream line number. More... | |
label & | lineNumber () noexcept |
Non-const access to the current stream line number. More... | |
label | lineNumber (const label num) noexcept |
Set the stream line number. More... | |
void | setEof () noexcept |
Set stream state as reached 'eof'. More... | |
void | setFail () noexcept |
Set stream state as 'failed'. More... | |
void | setBad () |
Set stream state to be 'bad'. More... | |
ios_base::fmtflags | setf (const ios_base::fmtflags f) |
Set flags of stream. More... | |
ios_base::fmtflags | setf (const ios_base::fmtflags f, const ios_base::fmtflags mask) |
Set flags of given field of stream. More... | |
void | unsetf (const ios_base::fmtflags f) |
Unset flags of stream. More... | |
void | print (Ostream &os, const int streamState) const |
Print information about the stream state bits. More... | |
InfoProxy< IOstream > | info () const |
Return info proxy. More... | |
![]() | |
constexpr | IOstreamOption (streamFormat fmt=streamFormat::ASCII, compressionType comp=compressionType::UNCOMPRESSED) noexcept |
constexpr | IOstreamOption (streamFormat fmt, compressionType comp, versionNumber ver) noexcept |
Construct from components (format, compression, version) More... | |
constexpr | IOstreamOption (streamFormat fmt, versionNumber ver, compressionType comp=compressionType::UNCOMPRESSED) noexcept |
Construct from components (format, version, compression) More... | |
IOstreamOption (const IOstreamOption &opt, streamFormat fmt) noexcept | |
Copy construct with change of format. More... | |
streamFormat | format () const noexcept |
Get the current stream format. More... | |
streamFormat | format (const streamFormat fmt) noexcept |
Set the stream format. More... | |
streamFormat | format (const word &formatName) |
Set the stream format from string value. More... | |
compressionType | compression () const noexcept |
Get the stream compression. More... | |
compressionType | compression (const compressionType comp) noexcept |
Set the stream compression. More... | |
compressionType | compression (const word &compName) |
Set the stream compression from string value. More... | |
versionNumber | version () const noexcept |
Get the stream version. More... | |
versionNumber | version (const versionNumber ver) noexcept |
Set the stream version. More... | |
versionNumber | version (const token &tok) |
Set the stream version from token. More... | |
Static Public Member Functions | |
static label | read (const commsTypes commsType, const int fromProcNo, char *buf, const std::streamsize bufSize, const int tag=UPstream::msgType(), const label communicator=UPstream::worldComm) |
Read into given buffer from given processor. More... | |
![]() | |
static label | allocateCommunicator (const label parent, const labelList &subRanks, const bool doPstream=true) |
Allocate a new communicator. More... | |
static void | freeCommunicator (const label communicator, const bool doPstream=true) |
Free a previously allocated communicator. More... | |
static void | freeCommunicators (const bool doPstream) |
Free all communicators. More... | |
static int | baseProcNo (const label myComm, const int procID) |
static label | procNo (const label comm, const int baseProcID) |
static label | procNo (const label myComm, const label currentComm, const int currentProcID) |
static void | addValidParOptions (HashTable< string > &validParOptions) |
static bool | init (int &argc, char **&argv, const bool needsThread) |
Initialisation function called from main. More... | |
static bool | initNull () |
Special purpose initialisation function. More... | |
static label | nRequests () |
Get number of outstanding requests. More... | |
static void | resetRequests (const label sz) |
Truncate number of outstanding requests. More... | |
static void | waitRequests (const label start=0) |
Wait until all requests (from start onwards) have finished. More... | |
static void | waitRequest (const label i) |
Wait until request i has finished. More... | |
static bool | finishedRequest (const label i) |
Non-blocking comms: has request i finished? More... | |
static int | allocateTag (const char *) |
static int | allocateTag (const word &) |
static void | freeTag (const char *, const int tag) |
static void | freeTag (const word &, const int tag) |
static bool | parRun (const bool on) noexcept |
Set as parallel run on/off. More... | |
static bool & | parRun () noexcept |
Test if this a parallel run. More... | |
static bool | haveThreads () noexcept |
Have support for threads. More... | |
static label | nProcs (const label communicator=worldComm) |
Number of processes in parallel run, and 1 for serial run. More... | |
static constexpr int | masterNo () noexcept |
Process index of the master (always 0) More... | |
static bool | master (const label communicator=worldComm) |
Am I the master process. More... | |
static int | myProcNo (const label communicator=worldComm) |
Number of this process (starting from masterNo() = 0) More... | |
static label | parent (const label communicator) |
static List< int > & | procID (label communicator) |
Process ID of given process index. More... | |
static const wordList & | allWorlds () noexcept |
All worlds. More... | |
static const labelList & | worldIDs () noexcept |
worldID (index in allWorlds) of all processes More... | |
static label | myWorldID () |
My worldID. More... | |
static const word & | myWorld () |
My world. More... | |
static rangeType | allProcs (const label communicator=worldComm) |
Range of process indices for all processes. More... | |
static rangeType | subProcs (const label communicator=worldComm) |
Range of process indices for sub-processes. More... | |
static const List< commsStruct > & | linearCommunication (const label communicator=worldComm) |
Communication schedule for linear all-to-master (proc 0) More... | |
static const List< commsStruct > & | treeCommunication (const label communicator=worldComm) |
Communication schedule for tree all-to-master (proc 0) More... | |
static int & | msgType () noexcept |
Message tag of standard messages. More... | |
static void | shutdown (int errNo=0) |
Shutdown (finalize) MPI as required. More... | |
static void | abort () |
Call MPI_Abort with no other checks or cleanup. More... | |
static void | exit (int errNo=1) |
Shutdown (finalize) MPI as required and exit program with errNo. More... | |
static void | allToAll (const labelUList &sendData, labelUList &recvData, const label communicator=worldComm) |
Exchange label with all processors (in the communicator). More... | |
static void | allToAll (const char *sendData, const UList< int > &sendSizes, const UList< int > &sendOffsets, char *recvData, const UList< int > &recvSizes, const UList< int > &recvOffsets, const label communicator=worldComm) |
Exchange data with all processors (in the communicator) More... | |
static void | mpiGather (const char *sendData, int sendSize, char *recvData, int recvSize, const label communicator=worldComm) |
Receive data from all processors on the master (low-level) More... | |
static void | mpiScatter (const char *sendData, int sendSize, char *recvData, int recvSize, const label communicator=worldComm) |
Send data to all processors from master (low-level) More... | |
static void | gather (const char *sendData, int sendSize, char *recvData, const UList< int > &recvSizes, const UList< int > &recvOffsets, const label communicator=worldComm) |
Receive data from all processors on the master. More... | |
static void | scatter (const char *sendData, const UList< int > &sendSizes, const UList< int > &sendOffsets, char *recvData, int recvSize, const label communicator=worldComm) |
Send data to all processors from the root of the communicator. More... | |
template<class T > | |
static List< T > | listGatherValues (const T &localValue, const label communicator=worldComm) |
Individual values into list locations. More... | |
template<class T > | |
static T | listScatterValues (const UList< T > &allValues, const label communicator=worldComm) |
Individual values into list locations. More... | |
static constexpr int | firstSlave () noexcept |
Process index of first sub-process. More... | |
static int | lastSlave (const label communicator=worldComm) |
Process index of last sub-process. More... | |
![]() | |
static unsigned int | defaultPrecision () noexcept |
Return the default precision. More... | |
static unsigned int | defaultPrecision (unsigned int prec) noexcept |
Reset the default precision. More... | |
![]() | |
static streamFormat | formatEnum (const word &formatName, const streamFormat deflt=streamFormat::ASCII) |
static streamFormat | formatEnum (const word &key, const dictionary &dict, const streamFormat deflt=streamFormat::ASCII) |
Failsafe construct streamFormat from optional dictionary lookup. More... | |
static compressionType | compressionEnum (const word &compName, const compressionType deflt=compressionType::UNCOMPRESSED) |
The compression enum corresponding to the string. More... | |
static compressionType | compressionEnum (const word &key, const dictionary &dict, const compressionType deflt=compressionType::UNCOMPRESSED) |
Failsafe construct compressionType from optional dictionary lookup. More... | |
Additional Inherited Members | |
![]() | |
enum | commsTypes : char { blocking, scheduled, nonBlocking } |
Types of communications. More... | |
typedef IntRange< int > | rangeType |
Int ranges are used for MPI ranks (processes) More... | |
![]() | |
enum | streamAccess : char { CLOSED = 0, OPENED } |
Enumeration for stream open/closed state. More... | |
![]() | |
enum | streamFormat : char { ASCII = 0, BINARY } |
Data format (ascii | binary) More... | |
enum | compressionType : char { UNCOMPRESSED = 0, COMPRESSED } |
Compression treatment (UNCOMPRESSED | COMPRESSED) More... | |
![]() | |
static const Enum< commsTypes > | commsTypeNames |
Names of the communication types. More... | |
static bool | floatTransfer |
static int | nProcsSimpleSum |
static commsTypes | defaultCommsType |
Default commsType. More... | |
static int | nPollProcInterfaces |
Number of polling cycles in processor updates. More... | |
static int | maxCommsSize |
Optional maximum message size (bytes) More... | |
static const int | mpiBufferSize |
MPI buffer-size (bytes) More... | |
static label | worldComm |
Default communicator (all processors) More... | |
static label | warnComm |
Debugging: warn for use of any communicator differing from warnComm. More... | |
![]() | |
static unsigned int | precision_ |
Default precision. More... | |
![]() | |
static const Enum< streamFormat > | formatNames |
Stream format names (ascii, binary) More... | |
static const versionNumber | currentVersion |
The current version number (2.0) More... | |
![]() | |
bool | hasPutback () const noexcept |
True if putback token is in use. More... | |
![]() | |
void | setOpened () noexcept |
Set stream opened. More... | |
void | setClosed () noexcept |
Set stream closed. More... | |
void | setState (std::ios_base::iostate state) noexcept |
Set stream state. More... | |
void | setGood () noexcept |
Set stream state to be good. More... | |
![]() | |
commsTypes | commsType_ |
Communications type of this stream. More... | |
![]() | |
std::ios_base::iostate | ioState_ |
Mirror of internal stream io state. More... | |
streamAccess | openClosed_ |
The stream open/closed state. More... | |
unsigned char | sizeofLabel_ |
The sizeof (label), possibly read from the header. More... | |
unsigned char | sizeofScalar_ |
The sizeof (scalar), possibly read from the header. More... | |
label | lineNumber_ |
The file line. More... | |
![]() | |
static fileName | staticName_ |
Name for any generic stream - normally treat as readonly. More... | |
Input inter-processor communications stream operating on external buffer.
Definition at line 56 of file UIPstream.H.
UIPstream | ( | const commsTypes | commsType, |
const int | fromProcNo, | ||
DynamicList< char > & | receiveBuf, | ||
label & | receiveBufPosition, | ||
const int | tag = UPstream::msgType() , |
||
const label | comm = UPstream::worldComm , |
||
const bool | clearAtEnd = false , |
||
IOstreamOption::streamFormat | fmt = IOstreamOption::BINARY |
||
) |
Construct given process index to read from using the given attached receive buffer, optional communication characteristics and IO format
Definition at line 37 of file UIPread.C.
References NotImplemented.
UIPstream | ( | const int | fromProcNo, |
PstreamBuffers & | buffers | ||
) |
~UIPstream | ( | ) |
Destructor.
Definition at line 147 of file UIPstream.C.
References Foam::expressions::patchExpr::debug, Foam::endl(), and Foam::Pout.
|
inlinevirtual |
|
static |
Read into given buffer from given processor.
Definition at line 81 of file UIPread.C.
References NotImplemented.
Referenced by mapDistributeBase::compact(), Pstream::gather(), Pstream::gatherList(), masterUncollatedFileOperation::NewIFstream(), masterUncollatedFileOperation::read(), Pstream::scatter(), Pstream::scatterList(), syncTools::syncBoundaryFaceList(), syncTools::syncFaceList(), and OFstreamCollator::write().
|
virtual |
Return next token from stream.
Implements Istream.
Definition at line 166 of file UIPstream.C.
References token::ASSIGN, token::BEGIN_BLOCK, token::BEGIN_LIST, token::BEGIN_SQR, Foam::constant::universal::c, Foam::charToWord(), token::COLON, token::COMMA, token::DIVIDE, token::END_BLOCK, token::END_LIST, token::END_SQR, token::END_STATEMENT, token::FLAG, token::flagToken(), Istream::getBack(), token::compound::isCompound(), token::isFlag(), token::lineNumber(), token::MINUS, token::MULTIPLY, token::compound::New(), token::PLUS, Foam::processFlags(), Foam::read(), token::setBad(), and token::setType().
|
virtual |
Read a character.
Implements Istream.
Definition at line 344 of file UIPstream.C.
References Foam::constant::universal::c.
|
virtual |
|
virtual |
Read a string (including enclosing double-quotes)
Implements Istream.
Definition at line 359 of file UIPstream.C.
|
virtual |
|
virtual |
|
virtual |
|
virtual |
Read binary block with 8-byte alignment.
Implements Istream.
Definition at line 386 of file UIPstream.C.
References Foam::BitOps::count().
|
virtual |
Low-level raw binary read.
Implements Istream.
Definition at line 401 of file UIPstream.C.
References Foam::BitOps::count().
|
virtual |
Start of low-level raw binary read.
Implements Istream.
Definition at line 412 of file UIPstream.C.
References Foam::abort(), Foam::FatalError, FatalErrorInFunction, and format().
|
inlinevirtual |
|
virtual |
Rewind the stream so that it may be read again.
Implements Istream.
Definition at line 430 of file UIPstream.C.
|
inlinevirtual |
|
virtual |
Print stream description to Ostream.
Reimplemented from IOstream.
Definition at line 436 of file UIPstream.C.
References Foam::endl(), and os().