Public Member Functions | Private Types | Private Member Functions | Private Attributes

LibGeoDecomp::HpxSimulator::PatchLink< GRID_TYPE, UPDATE_GROUP >::Provider Class Reference

#include <patchlink.h>

Inherits LibGeoDecomp::HpxSimulator::PatchLink::Link, and LibGeoDecomp::PatchProvider< GRID_TYPE >.

Collaboration diagram for LibGeoDecomp::HpxSimulator::PatchLink< GRID_TYPE, UPDATE_GROUP >::Provider:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 Provider (const Region< DIM > &region)
 ~Provider ()
void charge (long next, long last, long newStride)
void get (GRID_TYPE *grid, const Region< DIM > &, const std::size_t nanoStep, const bool remove=true)
void get (GRID_TYPE *grid, const Region< DIM > &, const std::size_t nanoStep, hpx::lcos::local::spinlock &gridMutex, const bool remove=true)
void recv (long nanoStep)
void setBuffer (boost::shared_ptr< BufferType > buffer, long nanoStep)

Private Types

typedef hpx::lcos::local::spinlock MutexType
typedef boost::shared_ptr
< hpx::lcos::local::promise
< boost::shared_ptr
< BufferType > > > 
Receiver
typedef std::map< std::size_t,
Receiver
ReceiverMap

Private Member Functions

boost::shared_ptr< BufferTypegetBuffer (std::size_t nanoStep)
ReceiverMap::iterator createReceiver (std::size_t nanoStep)

Private Attributes

MutexType mutex
ReceiverMap receiverMap

template<class GRID_TYPE, class UPDATE_GROUP>
class LibGeoDecomp::HpxSimulator::PatchLink< GRID_TYPE, UPDATE_GROUP >::Provider


Member Typedef Documentation

template<class GRID_TYPE , class UPDATE_GROUP >
typedef hpx::lcos::local::spinlock LibGeoDecomp::HpxSimulator::PatchLink< GRID_TYPE, UPDATE_GROUP >::Provider::MutexType [private]
template<class GRID_TYPE , class UPDATE_GROUP >
typedef boost::shared_ptr<hpx::lcos::local::promise<boost::shared_ptr<BufferType> > > LibGeoDecomp::HpxSimulator::PatchLink< GRID_TYPE, UPDATE_GROUP >::Provider::Receiver [private]
template<class GRID_TYPE , class UPDATE_GROUP >
typedef std::map<std::size_t, Receiver> LibGeoDecomp::HpxSimulator::PatchLink< GRID_TYPE, UPDATE_GROUP >::Provider::ReceiverMap [private]

Constructor & Destructor Documentation

template<class GRID_TYPE , class UPDATE_GROUP >
LibGeoDecomp::HpxSimulator::PatchLink< GRID_TYPE, UPDATE_GROUP >::Provider::Provider ( const Region< DIM > &  region  )  [inline]
template<class GRID_TYPE , class UPDATE_GROUP >
LibGeoDecomp::HpxSimulator::PatchLink< GRID_TYPE, UPDATE_GROUP >::Provider::~Provider (  )  [inline]

Member Function Documentation

template<class GRID_TYPE , class UPDATE_GROUP >
void LibGeoDecomp::HpxSimulator::PatchLink< GRID_TYPE, UPDATE_GROUP >::Provider::charge ( long  next,
long  last,
long  newStride 
) [inline]
template<class GRID_TYPE , class UPDATE_GROUP >
ReceiverMap::iterator LibGeoDecomp::HpxSimulator::PatchLink< GRID_TYPE, UPDATE_GROUP >::Provider::createReceiver ( std::size_t  nanoStep  )  [inline, private]
template<class GRID_TYPE , class UPDATE_GROUP >
void LibGeoDecomp::HpxSimulator::PatchLink< GRID_TYPE, UPDATE_GROUP >::Provider::get ( GRID_TYPE *  grid,
const Region< DIM > &  ,
const std::size_t  nanoStep,
const bool  remove = true 
) [inline, virtual]
template<class GRID_TYPE , class UPDATE_GROUP >
void LibGeoDecomp::HpxSimulator::PatchLink< GRID_TYPE, UPDATE_GROUP >::Provider::get ( GRID_TYPE *  grid,
const Region< DIM > &  ,
const std::size_t  nanoStep,
hpx::lcos::local::spinlock &  gridMutex,
const bool  remove = true 
) [inline, virtual]
template<class GRID_TYPE , class UPDATE_GROUP >
boost::shared_ptr<BufferType> LibGeoDecomp::HpxSimulator::PatchLink< GRID_TYPE, UPDATE_GROUP >::Provider::getBuffer ( std::size_t  nanoStep  )  [inline, private]
template<class GRID_TYPE , class UPDATE_GROUP >
void LibGeoDecomp::HpxSimulator::PatchLink< GRID_TYPE, UPDATE_GROUP >::Provider::recv ( long  nanoStep  )  [inline]
template<class GRID_TYPE , class UPDATE_GROUP >
void LibGeoDecomp::HpxSimulator::PatchLink< GRID_TYPE, UPDATE_GROUP >::Provider::setBuffer ( boost::shared_ptr< BufferType buffer,
long  nanoStep 
) [inline]

Member Data Documentation

template<class GRID_TYPE , class UPDATE_GROUP >
MutexType LibGeoDecomp::HpxSimulator::PatchLink< GRID_TYPE, UPDATE_GROUP >::Provider::mutex [private]
template<class GRID_TYPE , class UPDATE_GROUP >
ReceiverMap LibGeoDecomp::HpxSimulator::PatchLink< GRID_TYPE, UPDATE_GROUP >::Provider::receiverMap [private]

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