LAMA
/home/brandes/workspace/LAMA/src/lama/pgas/PGASCheckInterface.hpp
Go to the documentation of this file.
00001 
00033 #ifndef LAMA_PGASCHECKINTERFACE_HPP_
00034 #define LAMA_PGASCHECKINTERFACE_HPP_
00035 
00036 #include <lama/pgas/PGASInterface.hpp>
00037 
00038 namespace lama{
00039 class PGASCheckInterface: public PGASInterface
00040 {
00041 public:
00042     virtual void* allocate(size_t size) const;
00043     virtual void free(void* ptr, const size_t size) const;
00044     virtual void syncronizeAll() const;
00045     virtual bool isPinned(const void* const ptr) const;
00046     virtual PGASSyncToken* getSyncToken(int arg1) const;
00047 
00048     virtual PGASCommunicationKind getPreferredCommunicationKind() const;
00049 
00050     virtual void get(void* dst, const void* src, size_t length, int srcpe) const;
00051     virtual void put(void* dst, const void* src, size_t length, int srcpe) const;
00052 
00053     virtual PartitionId getRank() const;
00054     virtual PartitionId getSize() const;
00055 
00056     virtual std::auto_ptr<SyncToken> getAsync(void* dst, const void* src, size_t length, int srcPE) const;
00057     virtual std::auto_ptr<SyncToken> putAsync(void* dst, const void* src, size_t length, int srcPE) const;
00058 
00059     virtual std::auto_ptr<SyncToken> shift(void* dst, const void* src, size_t size, PartitionId destRank,
00060                                            PartitionId srcRank) const;
00061 
00062     virtual std::auto_ptr<SyncToken> broadcast(void* dst, const void* src, size_t length, int srcPE) const;
00063     virtual std::auto_ptr<SyncToken> all2all(void* dst, const void* src, size_t elemSize) const;
00064 
00065     virtual void swap( void* val, const size_t n, const PartitionId partner ) const;
00066 
00067     virtual void scatter ( void* myvals, const size_t partSize, const PartitionId root, const void* allvals ) const;
00068 
00069     virtual void scatter ( void* myvals, const size_t elemSize, const PartitionId root,
00070                            const void* allvals, const IndexType sizes[] ) const;
00071 
00072     virtual void gather ( void* allvals, const size_t partSize, const PartitionId root, const void* myvals ) const;
00073 
00074     virtual void gather ( void* allvals, const size_t elemSize, const PartitionId root,
00075                           const void* myvals, const IndexType sizes[] ) const;
00076     PGASCheckInterface(PGASInterface* interface);
00077     virtual ~PGASCheckInterface();
00078 private:
00079     virtual void writeAt( std::ostream& stream ) const;
00080     std::auto_ptr<PGASInterface> mInterface;
00081 };
00082 }
00083 
00084 #endif // LAMA_PGASCHECKINTERFACE_HPP_