#include <idxl.h>
Public Member Functions | |
IDXL_Chunk (int mpi_comm_) | |
IDXL_Chunk (CkMigrateMessage *m) | |
void | pup (PUP::er &p) |
~IDXL_Chunk () | |
IDXL_t | addDynamic (void) |
Dynamically create a new empty IDXL. Must eventually call destroy. | |
IDXL_t | addStatic (IDXL *idx, IDXL_t at=-1) |
Register this statically-allocated IDXL, possibly at this index. | |
void | check (IDXL_t u, const char *callingRoutine="") const |
Check this IDXL for validity. | |
IDXL & | lookup (IDXL_t u, const char *callingRoutine="") |
Find this previously allocated IDXL:. | |
const IDXL & | lookup (IDXL_t u, const char *callingRoutine="") const |
void | destroy (IDXL_t t, const char *callingRoutine="") |
Done with this IDXL. Deallocates if a dynamic IDXL. | |
IDXL_Comm_t | addComm (int tag, int context) |
IDXL_Comm * | lookupComm (IDXL_Comm_t uc, const char *callingRoutine="") |
void | waitComm (IDXL_Comm *comm) |
Static Public Member Functions | |
static IDXL_Chunk * | getNULL (void) |
static IDXL_Chunk * | get (const char *callingRoutine) |
Data Fields | |
IDXL_Layout_List | layouts |
Private Member Functions | |
int | storeToFreeIndex (CkVec< IDXL * > &inList, IDXL *store) |
void | init (void) |
Private Attributes | |
int | mpi_comm |
CkVec< IDXL * > | static_idxls |
"Static" index list is for system entities like the FEM framework that want to allocate and delete the lists themselves. | |
CkVec< IDXL * > | dynamic_idxls |
"Dynamic" index list is for ordinary user-created lists, where this class manages their allocation and deallocation. | |
IDXL_Comm * | currentComm |
For IDXL_Chunk to do its job, you're supposed to inherit from it.
Definition at line 117 of file idxl.h.
IDXL_Chunk::IDXL_Chunk | ( | int | mpi_comm_ | ) |
IDXL_Chunk::IDXL_Chunk | ( | CkMigrateMessage * | m | ) |
IDXL_Chunk::~IDXL_Chunk | ( | ) |
Definition at line 98 of file idxl.C.
References currentComm, dynamic_idxls, and CkVec< T >::size().
Definition at line 134 of file idxl.h.
References CkVec< T >::push_back(), and CkVec< T >::size().
Referenced by addDynamic(), and addStatic().
void IDXL_Chunk::init | ( | void | ) | [private] |
Definition at line 63 of file idxl.C.
Referenced by FORTRAN_AS_C(), and IDXL_Chunk().
void IDXL_Chunk::pup | ( | PUP::er & | p | ) |
Definition at line 67 of file idxl.C.
References currentComm, PUP::d, dynamic_idxls, int, IDXL_Comm::isComplete(), PUP::er::isPacking(), PUP::er::isUnpacking(), layouts, mpi_comm, and CkVec< T >::size().
Referenced by pupIDXL_Chunk().
static IDXL_Chunk* IDXL_Chunk::getNULL | ( | void | ) | [inline, static] |
Definition at line 156 of file idxl.h.
References IDXL_globalID, and TCHARM_Get_global().
Referenced by get(), and FEM_Comm_Holder::~FEM_Comm_Holder().
IDXL_Chunk * IDXL_Chunk::get | ( | const char * | callingRoutine | ) | [static] |
Definition at line 39 of file idxl.C.
References c, getNULL(), and IDXL_Abort().
Referenced by FORTRAN_AS_C_RETURN(), IDXL_Layout_List::get(), IDXL_Create(), and FEM_Comm_Holder::pup().
IDXL_t IDXL_Chunk::addDynamic | ( | void | ) |
Dynamically create a new empty IDXL. Must eventually call destroy.
Dynamically create a new empty IDXL:.
Definition at line 108 of file idxl.C.
References IDXL::allocateDual(), dynamic_idxls, and storeToFreeIndex().
Referenced by IDXL_Create().
IDXL_t IDXL_Chunk::addStatic | ( | IDXL * | idx, | |
IDXL_t | at = -1 | |||
) |
Register this statically-allocated IDXL, possibly at this index.
Register this statically-allocated IDXL at this existing index.
Definition at line 115 of file idxl.C.
References CkVec< T >::push_back(), CkVec< T >::size(), static_idxls, and storeToFreeIndex().
Referenced by FEM_Comm_Holder::registerIdx().
void IDXL_Chunk::check | ( | IDXL_t | u, | |
const char * | callingRoutine = "" | |||
) | const |
Check this IDXL for validity.
Definition at line 137 of file idxl.C.
References IDXL_Abort().
IDXL & IDXL_Chunk::lookup | ( | IDXL_t | u, | |
const char * | callingRoutine = "" | |||
) |
Find this previously allocated IDXL:.
Definition at line 141 of file idxl.C.
References dynamic_idxls, IDXL_Abort(), CkVec< T >::size(), and static_idxls.
Referenced by FORTRAN_AS_C_RETURN(), and lookup().
const IDXL & IDXL_Chunk::lookup | ( | IDXL_t | u, | |
const char * | callingRoutine = "" | |||
) | const |
void IDXL_Chunk::destroy | ( | IDXL_t | t, | |
const char * | callingRoutine = "" | |||
) |
Done with this IDXL. Deallocates if a dynamic IDXL.
Definition at line 155 of file idxl.C.
References dynamic_idxls, IDXL_Abort(), CkVec< T >::size(), and static_idxls.
Referenced by FEM_Comm_Holder::~FEM_Comm_Holder().
Definition at line 180 of file idxl.C.
References currentComm, IDXL_Comm::isComplete(), mpi_comm, and IDXL_Comm::reset().
Referenced by IDXL_Comm_sendrecv().
IDXL_Comm * IDXL_Chunk::lookupComm | ( | IDXL_Comm_t | uc, | |
const char * | callingRoutine = "" | |||
) |
Definition at line 190 of file idxl.C.
References currentComm.
Referenced by IDXL_Comm_sendrecv().
void IDXL_Chunk::waitComm | ( | IDXL_Comm * | comm | ) |
Definition at line 304 of file idxl.C.
References IDXL_Comm::wait().
Referenced by IDXL_Comm_sendrecv().
int IDXL_Chunk::mpi_comm [private] |
CkVec<IDXL *> IDXL_Chunk::static_idxls [private] |
"Static" index list is for system entities like the FEM framework that want to allocate and delete the lists themselves.
Stores IDXL_t's from IDXL_STATIC_IDXL_T to IDXL_LAST_IDXL_T
Definition at line 126 of file idxl.h.
Referenced by addStatic(), destroy(), and lookup().
CkVec<IDXL *> IDXL_Chunk::dynamic_idxls [private] |
"Dynamic" index list is for ordinary user-created lists, where this class manages their allocation and deallocation.
Stores IDXL_t's from IDXL_DYNAMIC_IDXL_T to IDXL_STATIC_IDXL_T
Definition at line 131 of file idxl.h.
Referenced by addDynamic(), destroy(), lookup(), pup(), and ~IDXL_Chunk().
IDXL_Comm* IDXL_Chunk::currentComm [private] |
Definition at line 147 of file idxl.h.
Referenced by addComm(), lookupComm(), pup(), and ~IDXL_Chunk().