Proto::Copier< OP > Class Template Referenceabstract

Abstract Generic Parallel Copier. More...

#include <Proto_Copier.H>

Collaboration diagram for Proto::Copier< OP >:
Collaboration graph

Detailed Description

template<class OP>
class Proto::Copier< OP >

Abstract Generic Parallel Copier.

Copier is an abstract super-class that handles the MPI communication component of a generic parallel copy operation. Copying is executed by processing a set of "motion plans" which define how data moves from, to, and within this process.

The construction of the motion plans must be defined using the abstract buildMotionPlans() function.

The template parameter class OP defines the serialization of any underlying dataholders. Generally OP must have a reference to the dataholder(s) themselves and must also implement the following API:

void linearIn (void* a_buffer, Box a_range, DataIndex a_patchIndex); void linearOut(void* a_buffer, Box a_domain, DataIndex a_patchIndex); void size(Box a_region, DataIndex a_patchIndex); void localCopy(Box a_domain, DataIndex a_domainIndex, Box a_range, DataIndex a_rangeIndex);

linearIn: Reads data from a_buffer into the part of a patch designated by a_patchIndex intersecting a_range linearOut: Writes data to a_buffer from the part of a patch designated by a_patchIndex intersecting a_domain size: Computes the number of elements in the patch designated by a_patchIndex intersectiong a_region localCopy: Executes the copy operation between two data patches located on the same parallel process

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