Public Types | Public Member Functions | Static Public Attributes | Private Member Functions | Private Attributes | Friends

LibGeoDecomp::PatchBufferFixed< GRID_TYPE1, GRID_TYPE2, SIZE > Class Template Reference

The PatchBuffer's cousin can only store a fixed number of regions at a time, but avoids the memory allocation hassle during put(). More...

#include <patchbufferfixed.h>

Inherits PatchAccepter< GRID_TYPE1 >, and PatchProvider< GRID_TYPE2 >.

Collaboration diagram for LibGeoDecomp::PatchBufferFixed< GRID_TYPE1, GRID_TYPE2, SIZE >:
Collaboration graph
[legend]

List of all members.

Public Types

typedef GRID_TYPE1::CellType CellType
typedef SerializationBuffer
< CellType >::BufferType 
BufferType

Public Member Functions

 PatchBufferFixed (const Region< DIM > &region=Region< DIM >())
virtual void put (const GRID_TYPE1 &grid, const Region< DIM > &, const std::size_t nanoStep)
virtual void get (GRID_TYPE2 *destinationGrid, const Region< DIM > &patchableRegion, const std::size_t nanoStep, const bool remove=true)

Static Public Attributes

static const int DIM = GRID_TYPE1::DIM

Private Member Functions

void inc (int *index)

Private Attributes

Region< DIMregion
int indexRead
int indexWrite
std::vector< BufferTypebuffer

Friends

class PatchBufferFixedTest

Detailed Description

template<class GRID_TYPE1, class GRID_TYPE2, int SIZE>
class LibGeoDecomp::PatchBufferFixed< GRID_TYPE1, GRID_TYPE2, SIZE >

The PatchBuffer's cousin can only store a fixed number of regions at a time, but avoids the memory allocation hassle during put().


Member Typedef Documentation

template<class GRID_TYPE1, class GRID_TYPE2, int SIZE>
typedef SerializationBuffer<CellType>::BufferType LibGeoDecomp::PatchBufferFixed< GRID_TYPE1, GRID_TYPE2, SIZE >::BufferType
template<class GRID_TYPE1, class GRID_TYPE2, int SIZE>
typedef GRID_TYPE1::CellType LibGeoDecomp::PatchBufferFixed< GRID_TYPE1, GRID_TYPE2, SIZE >::CellType

Constructor & Destructor Documentation

template<class GRID_TYPE1, class GRID_TYPE2, int SIZE>
LibGeoDecomp::PatchBufferFixed< GRID_TYPE1, GRID_TYPE2, SIZE >::PatchBufferFixed ( const Region< DIM > &  region = Region<DIM>()  )  [inline, explicit]

Member Function Documentation

template<class GRID_TYPE1, class GRID_TYPE2, int SIZE>
virtual void LibGeoDecomp::PatchBufferFixed< GRID_TYPE1, GRID_TYPE2, SIZE >::get ( GRID_TYPE2 *  destinationGrid,
const Region< DIM > &  patchableRegion,
const std::size_t  nanoStep,
const bool  remove = true 
) [inline, virtual]
template<class GRID_TYPE1, class GRID_TYPE2, int SIZE>
void LibGeoDecomp::PatchBufferFixed< GRID_TYPE1, GRID_TYPE2, SIZE >::inc ( int *  index  )  [inline, private]
template<class GRID_TYPE1, class GRID_TYPE2, int SIZE>
virtual void LibGeoDecomp::PatchBufferFixed< GRID_TYPE1, GRID_TYPE2, SIZE >::put ( const GRID_TYPE1 &  grid,
const Region< DIM > &  ,
const std::size_t  nanoStep 
) [inline, virtual]

Friends And Related Function Documentation

template<class GRID_TYPE1, class GRID_TYPE2, int SIZE>
friend class PatchBufferFixedTest [friend]

Member Data Documentation

template<class GRID_TYPE1, class GRID_TYPE2, int SIZE>
std::vector<BufferType> LibGeoDecomp::PatchBufferFixed< GRID_TYPE1, GRID_TYPE2, SIZE >::buffer [private]
template<class GRID_TYPE1, class GRID_TYPE2, int SIZE>
const int LibGeoDecomp::PatchBufferFixed< GRID_TYPE1, GRID_TYPE2, SIZE >::DIM = GRID_TYPE1::DIM [static]
template<class GRID_TYPE1, class GRID_TYPE2, int SIZE>
int LibGeoDecomp::PatchBufferFixed< GRID_TYPE1, GRID_TYPE2, SIZE >::indexRead [private]
template<class GRID_TYPE1, class GRID_TYPE2, int SIZE>
int LibGeoDecomp::PatchBufferFixed< GRID_TYPE1, GRID_TYPE2, SIZE >::indexWrite [private]
template<class GRID_TYPE1, class GRID_TYPE2, int SIZE>
Region<DIM> LibGeoDecomp::PatchBufferFixed< GRID_TYPE1, GRID_TYPE2, SIZE >::region [private]

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