42 #ifndef TEUCHOS_COMM_HPP 43 #define TEUCHOS_COMM_HPP 45 #include "Teuchos_ReductionOp.hpp" 46 #include "Teuchos_ArrayRCP.hpp" 70 template<
class OrdinalType>
80 virtual OrdinalType
getTag () = 0;
84 template<
class OrdinalType>
136 template<
class OrdinalType>
309 template<
typename Ordinal>
317 virtual int getTag ()
const = 0;
335 virtual int getRank()
const = 0;
343 virtual int getSize()
const = 0;
353 virtual void barrier()
const = 0;
369 virtual void broadcast(
370 const int rootRank,
const Ordinal bytes,
char buffer[]
375 gather (
const Ordinal sendBytes,
const char sendBuffer[],
376 const Ordinal recvBytes,
char recvBuffer[],
377 const int root)
const = 0;
401 virtual void gatherAll(
402 const Ordinal sendBytes,
const char sendBuffer[]
403 ,
const Ordinal recvBytes,
char recvBuffer[]
421 ,
const Ordinal bytes,
const char sendBuffer[],
char globalReducts[]
447 TEUCHOS_DEPRECATED
virtual void reduceAllAndScatter(
449 ,
const Ordinal sendBytes,
const char sendBuffer[]
450 ,
const Ordinal recvCounts[],
char myGlobalReducts[]
468 ,
const Ordinal bytes,
const char sendBuffer[],
char scanReducts[]
495 const Ordinal bytes,
const char sendBuffer[],
const int destRank
500 send (
const Ordinal bytes,
501 const char sendBuffer[],
503 const int tag)
const = 0;
525 const Ordinal bytes,
const char sendBuffer[],
const int destRank
530 ssend (
const Ordinal bytes,
531 const char sendBuffer[],
533 const int tag)
const = 0;
556 const int sourceRank,
const Ordinal bytes,
char recvBuffer[]
579 const char sendBuffer[],
581 const int tag)
const = 0;
607 const int tag)
const = 0;
631 const int sourceRank,
632 const int tag)
const = 0;
644 virtual void waitAll(
805 virtual RCP<Comm> split (
const int color,
const int key)
const = 0;
837 #endif // TEUCHOS_COMM_HPP virtual ~CommRequest()
Destructor; cancels the request if it is still pending.
virtual ~Comm()
Destructor, declared virtual for safety of derived classes.
TEUCHOS_DEPRECATED void scan(const Comm< Ordinal > &comm, const EReductionType reductType, const Packet &send, Packet *scanReduct)
Deprecated.
TEUCHOS_DEPRECATED void reduceAll(const Comm< Ordinal > &comm, const EReductionType reductType, const Packet &send, Packet *globalReduct)
Deprecated .
Encapsulation of the result of a receive (blocking or nonblocking).
void send(const Packet sendBuffer[], const Ordinal count, const int destRank, const int tag, const Comm< Ordinal > &comm)
Variant of send() that takes a tag (and restores the correct order of arguments). ...
virtual ~CommStatus()
Destructor (declared virtual for memory safety)
RCP< CommRequest< Ordinal > > ireceive(const ArrayRCP< Packet > &recvBuffer, const int sourceRank, const int tag, const Comm< Ordinal > &comm)
Variant of ireceive that takes a tag argument (and restores the correct order of arguments).
Abstract interface for distributed-memory communication.
The Teuchos namespace contains all of the classes, structs and enums used by Teuchos, as well as a number of utility routines.
virtual OrdinalType getTag()=0
The tag of the received message.
void ssend(const Packet sendBuffer[], const Ordinal count, const int destRank, const int tag, const Comm< Ordinal > &comm)
Variant of ssend() that takes a tag (and restores the correct order of arguments).
Base class for all objects that can describe themselves.
virtual OrdinalType getSourceRank()=0
The source rank that sent the message.
Smart reference counting pointer class for automatic garbage collection.
Encapsulation of a pending nonblocking communication operation.
void readySend(const Packet sendBuffer[], const Ordinal count, const int destRank, const int tag, const Comm< Ordinal > &comm)
Variant of readySend() that accepts a message tag.
Simple wrapper class for raw pointers to single objects where no persisting relationship exists...