LAMA
/home/brandes/workspace/LAMA/src/lama/pgas/PGASContext.hpp
Go to the documentation of this file.
00001 
00033 #ifndef LAMA_PGAS_HOST_CONTEXT_HPP_
00034 #define LAMA_PGAS_HOST_CONTEXT_HPP_
00035 
00036 #include <boost/weak_ptr.hpp>
00037 
00038 #include <lama/HostContext.hpp>
00039 
00040 namespace lama
00041 {
00042 
00050 class PGASContext: public lama::HostContext
00051 {
00052 friend class PGASContextManager;  // can only create context
00053 
00054 public:
00055 
00056     virtual ~PGASContext();
00057 
00058     virtual void* allocate( const size_t size ) const;
00059 
00060     virtual void allocate( ContextData& contextData, const size_t size ) const;
00061 
00062     virtual void free( void* pointer, const size_t size ) const;
00063 
00064     virtual void free( ContextData& contextData ) const;
00065 
00066     virtual void memcpy( void* dst, const void* src, const size_t size ) const;
00067 
00068     virtual std::auto_ptr<SyncToken> memcpyAsync( void* dst, const void* src, const size_t size ) const;
00069 
00070     virtual bool cancpy( const ContextData& dst, const ContextData& src ) const;
00071 
00072     virtual void memcpy( ContextData& dst, const ContextData& src, const size_t size ) const;
00073 
00074     virtual std::auto_ptr<SyncToken> memcpyAsync( ContextData& dst, const ContextData& src, const size_t size ) const;
00075 
00076     virtual HostContextType getHostType() const;
00077 
00078 private:
00079 
00080     LAMA_LOG_DECL_STATIC_LOGGER( logger );
00081 
00082     PGASContext( );
00083 
00084     virtual void writeAt( std::ostream& stream ) const;
00085 };
00086 
00087 }
00088 
00089 #endif // LAMA_PGAS_HOST_CONTEXT_HPP_