#include <ddt.h>
Public Member Functions | |
CkDDT (const array< const CkDDT_DataType *, AMPI_MAX_PREDEFINED_TYPE+1 > &predefinedTypeTable_) noexcept | |
CkDDT & | operator= (const CkDDT &obj) |
CkDDT (const CkDDT &obj) | |
~CkDDT () noexcept | |
void | newContiguous (int count, MPI_Datatype oldType, MPI_Datatype *newType) noexcept |
void | newVector (int count, int blocklength, int stride, MPI_Datatype oldtype, MPI_Datatype *newtype) noexcept |
void | newHVector (int count, int blocklength, int stride, MPI_Datatype oldtype, MPI_Datatype *newtype) noexcept |
void | newIndexedBlock (int count, int Blocklength, const int *arrDisp, MPI_Datatype oldtype, MPI_Datatype *newtype) noexcept |
void | newHIndexedBlock (int count, int Blocklength, const MPI_Aint *arrDisp, MPI_Datatype oldtype, MPI_Datatype *newtype) noexcept |
void | newIndexed (int count, const int *arrbLength, MPI_Aint *arrDisp, MPI_Datatype oldtype, MPI_Datatype *newtype) noexcept |
void | newHIndexed (int count, const int *arrbLength, const MPI_Aint *arrDisp, MPI_Datatype oldtype, MPI_Datatype *newtype) noexcept |
void | newStruct (int count, const int *arrbLength, const MPI_Aint *arrDisp, const MPI_Datatype *oldtype, MPI_Datatype *newtype) noexcept |
int | insertType (CkDDT_DataType *ptr, int type) noexcept |
void | freeType (int index) noexcept |
void | pup (PUP::er &p) noexcept |
void | createDup (int nIndexOld, int *nIndexNew) noexcept |
void | createResized (MPI_Datatype oldtype, MPI_Aint lb, MPI_Aint extent, MPI_Datatype *newtype) noexcept |
int | getEnvelope (int nIndex, int *num_integers, int *num_addresses, int *num_datatypes, int *combiner) const noexcept |
int | getContents (int nIndex, int max_integers, int max_addresses, int max_datatypes, int array_of_integers[], MPI_Aint array_of_addresses[], int array_of_datatypes[]) noexcept |
CkDDT_DataType * | getType (int nIndex) const noexcept |
bool | isContig (int nIndex) const noexcept |
int | getSize (int nIndex, int count=1) const noexcept |
MPI_Aint | getExtent (int nIndex) const noexcept |
MPI_Aint | getLB (int nIndex) const noexcept |
MPI_Aint | getUB (int nIndex) const noexcept |
MPI_Aint | getTrueExtent (int nIndex) const noexcept |
MPI_Aint | getTrueLB (int nIndex) const noexcept |
void | setName (int nIndex, const char *name) noexcept |
void | getName (int nIndex, char *name, int *len) const noexcept |
Static Public Member Functions | |
static void | addBasic (array< const CkDDT_DataType *, AMPI_MAX_PREDEFINED_TYPE+1 > &predefinedTypeTable_, int type) noexcept |
static void | addStruct (array< const CkDDT_DataType *, AMPI_MAX_PREDEFINED_TYPE+1 > &predefinedTypeTable_, const char *name, int type, int val, int idx, int offset) noexcept |
static const array< const CkDDT_DataType *, AMPI_MAX_PREDEFINED_TYPE+1 > | createPredefinedTypes () noexcept |
Private Attributes | |
const array< const CkDDT_DataType *, AMPI_MAX_PREDEFINED_TYPE+1 > & | predefinedTypeTable |
vector< CkDDT_DataType * > | userTypeTable |
vector< int > | types |
Definition at line 445 of file ddt.h.
CkDDT::CkDDT | ( | const array< const CkDDT_DataType *, AMPI_MAX_PREDEFINED_TYPE+1 > & | predefinedTypeTable_ | ) | [inline] |
CkDDT::CkDDT | ( | const CkDDT & | obj | ) |
CkDDT::~CkDDT | ( | ) |
static void CkDDT::addBasic | ( | array< const CkDDT_DataType *, AMPI_MAX_PREDEFINED_TYPE+1 > & | predefinedTypeTable_, | |
int | type | |||
) | [inline, static] |
Definition at line 455 of file ddt.h.
References type.
Referenced by createPredefinedTypes().
static void CkDDT::addStruct | ( | array< const CkDDT_DataType *, AMPI_MAX_PREDEFINED_TYPE+1 > & | predefinedTypeTable_, | |
const char * | name, | |||
int | type, | |||
int | val, | |||
int | idx, | |||
int | offset | |||
) | [inline, static] |
static const array<const CkDDT_DataType *, AMPI_MAX_PREDEFINED_TYPE+1> CkDDT::createPredefinedTypes | ( | ) | [inline, static] |
Definition at line 478 of file ddt.h.
References addBasic(), addStruct(), and idx.
void CkDDT::newContiguous | ( | int | count, | |
MPI_Datatype | oldType, | |||
MPI_Datatype * | newType | |||
) |
Definition at line 248 of file ddt.C.
References count, getType(), insertType(), oldType, and type.
Referenced by AMPI_API_IMPL().
void CkDDT::newVector | ( | int | count, | |
int | blocklength, | |||
int | stride, | |||
MPI_Datatype | oldtype, | |||
MPI_Datatype * | newtype | |||
) |
Definition at line 255 of file ddt.C.
References blocklength, count, getType(), insertType(), oldType, stride, and type.
Referenced by AMPI_API_IMPL().
void CkDDT::newHVector | ( | int | count, | |
int | blocklength, | |||
int | stride, | |||
MPI_Datatype | oldtype, | |||
MPI_Datatype * | newtype | |||
) |
Definition at line 263 of file ddt.C.
References blocklength, count, getType(), insertType(), oldtype, stride, and type.
Referenced by AMPI_API_IMPL().
void CkDDT::newIndexedBlock | ( | int | count, | |
int | Blocklength, | |||
const int * | arrDisp, | |||
MPI_Datatype | oldtype, | |||
MPI_Datatype * | newtype | |||
) |
Definition at line 271 of file ddt.C.
References arrDisp, count, CkDDT_DataType::getExtent(), getType(), insertType(), oldtype, and type.
Referenced by AMPI_API_IMPL().
void CkDDT::newHIndexedBlock | ( | int | count, | |
int | Blocklength, | |||
const MPI_Aint * | arrDisp, | |||
MPI_Datatype | oldtype, | |||
MPI_Datatype * | newtype | |||
) |
Definition at line 288 of file ddt.C.
References arrDisp, count, getType(), insertType(), oldtype, and type.
Referenced by AMPI_API_IMPL().
void CkDDT::newIndexed | ( | int | count, | |
const int * | arrbLength, | |||
MPI_Aint * | arrDisp, | |||
MPI_Datatype | oldtype, | |||
MPI_Datatype * | newtype | |||
) |
Definition at line 297 of file ddt.C.
References arrDisp, count, CkDDT_DataType::getExtent(), getType(), insertType(), oldtype, and type.
Referenced by AMPI_API_IMPL().
void CkDDT::newHIndexed | ( | int | count, | |
const int * | arrbLength, | |||
const MPI_Aint * | arrDisp, | |||
MPI_Datatype | oldtype, | |||
MPI_Datatype * | newtype | |||
) |
Definition at line 311 of file ddt.C.
References arrDisp, count, getType(), insertType(), oldtype, and type.
Referenced by AMPI_API_IMPL().
void CkDDT::newStruct | ( | int | count, | |
const int * | arrbLength, | |||
const MPI_Aint * | arrDisp, | |||
const MPI_Datatype * | oldtype, | |||
MPI_Datatype * | newtype | |||
) |
Definition at line 319 of file ddt.C.
References arrDisp, count, getType(), insertType(), oldtype, and type.
Referenced by AMPI_API_IMPL().
int CkDDT::insertType | ( | CkDDT_DataType * | ptr, | |
int | type | |||
) |
Definition at line 100 of file ddt.C.
References type, types, and userTypeTable.
Referenced by createDup(), createResized(), newContiguous(), newHIndexed(), newHIndexedBlock(), newHVector(), newIndexed(), newIndexedBlock(), newStruct(), and newVector().
void CkDDT::freeType | ( | int | index | ) |
Definition at line 117 of file ddt.C.
References CkDDT_DataType::getType(), getType(), insertType(), and type.
Referenced by AMPI_API_IMPL().
void CkDDT::createResized | ( | MPI_Datatype | oldtype, | |
MPI_Aint | lb, | |||
MPI_Aint | extent, | |||
MPI_Datatype * | newtype | |||
) |
Definition at line 191 of file ddt.C.
References CkDDT_DataType::getType(), getType(), insertType(), lb, oldtype, CkDDT_DataType::setSize(), and type.
Referenced by AMPI_API_IMPL().
int CkDDT::getEnvelope | ( | int | nIndex, | |
int * | num_integers, | |||
int * | num_addresses, | |||
int * | num_datatypes, | |||
int * | combiner | |||
) | const |
Definition at line 166 of file ddt.C.
References CkDDT_DataType::getEnvelope(), and getType().
Referenced by AMPI_API_IMPL().
int CkDDT::getContents | ( | int | nIndex, | |
int | max_integers, | |||
int | max_addresses, | |||
int | max_datatypes, | |||
int | array_of_integers[], | |||
MPI_Aint | array_of_addresses[], | |||
int | array_of_datatypes[] | |||
) |
Definition at line 173 of file ddt.C.
References PUP::a, count, PUP::d, CkDDT_DataType::getBaseType(), CkDDT_DataType::getContents(), CkDDT_DataType::getCount(), CkDDT_DataType::getType(), getType(), and CkDDT_DataType::incRefCount().
Referenced by AMPI_API_IMPL().
CkDDT_DataType* CkDDT::getType | ( | int | nIndex | ) | const [inline] |
Definition at line 592 of file ddt.h.
References predefinedTypeTable, and userTypeTable.
Referenced by AMPI_API_IMPL(), copyDatatype(), createDup(), createResized(), getContents(), getEnvelope(), getExtent(), getLB(), getName(), getSize(), getTrueExtent(), getTrueLB(), getUB(), handle_MPI_BOTTOM(), isContig(), makeGatherMsg(), makeGathervMsg(), newContiguous(), newHIndexed(), newHIndexedBlock(), newHVector(), newIndexed(), newIndexedBlock(), newStruct(), newVector(), and setName().
Definition at line 603 of file ddt.h.
References getType(), and CkDDT_DataType::isContig().
Referenced by AMPI_Type_is_contiguous().
Definition at line 604 of file ddt.h.
References count, CkDDT_DataType::getSize(), and getType().
Referenced by AMPI_API_IMPL(), and CkDDT_DataType::getNumBasicElements().
Definition at line 605 of file ddt.h.
References CkDDT_DataType::getExtent(), and getType().
Referenced by AMPI_API_IMPL(), handle_MPI_IN_PLACE_gather(), and handle_MPI_IN_PLACE_gatherv().
Definition at line 606 of file ddt.h.
References CkDDT_DataType::getLB(), and getType().
Referenced by AMPI_API_IMPL().
Definition at line 607 of file ddt.h.
References getType(), and CkDDT_DataType::getUB().
Referenced by AMPI_API_IMPL().
Definition at line 608 of file ddt.h.
References CkDDT_DataType::getTrueExtent(), and getType().
Referenced by AMPI_API_IMPL().
Definition at line 609 of file ddt.h.
References CkDDT_DataType::getTrueLB(), and getType().
Referenced by AMPI_API_IMPL().
void CkDDT::setName | ( | int | nIndex, | |
const char * | name | |||
) | [inline] |
Definition at line 610 of file ddt.h.
References getType(), name, and CkDDT_DataType::setName().
Referenced by AMPI_API_IMPL().
Definition at line 611 of file ddt.h.
References CkDDT_DataType::getName(), getType(), len, and name.
Referenced by AMPI_API_IMPL().
const array<const CkDDT_DataType *, AMPI_MAX_PREDEFINED_TYPE+1>& CkDDT::predefinedTypeTable [private] |
vector<CkDDT_DataType *> CkDDT::userTypeTable [private] |
vector<int> CkDDT::types [private] |