PPL Logo

IDXL_Chunk Class Reference

IDXL_Chunk exists for just two reasons: More...

#include <idxl.h>

Collaboration diagram for IDXL_Chunk:

Collaboration graph
[legend]

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.
IDXLlookup (IDXL_t u, const char *callingRoutine="")
 Find this previously allocated IDXL:.
const IDXLlookup (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_CommlookupComm (IDXL_Comm_t uc, const char *callingRoutine="")
void waitComm (IDXL_Comm *comm)

Static Public Member Functions

static IDXL_ChunkgetNULL (void)
static IDXL_Chunkget (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_CommcurrentComm

Detailed Description

IDXL_Chunk exists for just two reasons:

For IDXL_Chunk to do its job, you're supposed to inherit from it.

Definition at line 117 of file idxl.h.


Constructor & Destructor Documentation

IDXL_Chunk::IDXL_Chunk ( int  mpi_comm_  ) 

Referenced by IDXL_Init().

Here is the caller graph for this function:

IDXL_Chunk::IDXL_Chunk ( CkMigrateMessage m  ) 

Definition at line 59 of file idxl.C.

References init().

Here is the call graph for this function:

IDXL_Chunk::~IDXL_Chunk (  ) 

Definition at line 98 of file idxl.C.

References currentComm, dynamic_idxls, and CkVec< T >::size().

Here is the call graph for this function:


Member Function Documentation

int IDXL_Chunk::storeToFreeIndex ( CkVec< IDXL * > &  inList,
IDXL store 
) [inline, private]

Definition at line 134 of file idxl.h.

References CkVec< T >::push_back(), and CkVec< T >::size().

Referenced by addDynamic(), and addStatic().

Here is the call graph for this function:

Here is the caller graph for this function:

void IDXL_Chunk::init ( void   )  [private]

Definition at line 63 of file idxl.C.

Referenced by FORTRAN_AS_C(), and IDXL_Chunk().

Here is the caller graph for this function:

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().

Here is the call graph for this function:

Here is the caller graph for this function:

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().

Here is the call graph for this function:

Here is the caller graph for this function:

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().

Here is the call graph for this function:

Here is the caller graph for this function:

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().

Here is the call graph for this function:

Here is the caller graph for this function:

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().

Here is the call graph for this function:

Here is the caller graph for this function:

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().

Here is the call graph for this function:

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().

Here is the call graph for this function:

Here is the caller graph for this function:

const IDXL & IDXL_Chunk::lookup ( IDXL_t  u,
const char *  callingRoutine = "" 
) const

Definition at line 151 of file idxl.C.

References lookup().

Here is the call graph for this function:

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().

Here is the call graph for this function:

Here is the caller graph for this function:

IDXL_Comm_t IDXL_Chunk::addComm ( int  tag,
int  context 
)

Definition at line 180 of file idxl.C.

References currentComm, IDXL_Comm::isComplete(), mpi_comm, and IDXL_Comm::reset().

Referenced by IDXL_Comm_sendrecv().

Here is the call graph for this function:

Here is the caller graph for this function:

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().

Here is the caller graph for this function:

void IDXL_Chunk::waitComm ( IDXL_Comm comm  ) 

Definition at line 304 of file idxl.C.

References IDXL_Comm::wait().

Referenced by IDXL_Comm_sendrecv().

Here is the call graph for this function:

Here is the caller graph for this function:


Field Documentation

Definition at line 119 of file idxl.h.

Referenced by addComm(), and pup().

"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().

"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().

Definition at line 147 of file idxl.h.

Referenced by addComm(), lookupComm(), pup(), and ~IDXL_Chunk().

Definition at line 178 of file idxl.h.

Referenced by IDXL_Layout_List::get(), and pup().


The documentation for this class was generated from the following files:

Generated on Mon Sep 21 08:25:47 2020 for Charm++ by  doxygen 1.5.5