LAMA
/home/brandes/workspace/LAMA/src/lama/HostContext.hpp
Go to the documentation of this file.
00001 
00033 #ifndef LAMA_HOSTCONTEXT_HPP_
00034 #define LAMA_HOSTCONTEXT_HPP_
00035 
00036 // for dll_import
00037 #include <lama/config.hpp>
00038 
00039 // base classes
00040 #include <lama/Context.hpp>
00041 
00042 // others
00043 #include <lama/ContextFactory.hpp>
00044 
00045 namespace lama
00046 {
00047 
00054 class LAMA_DLL_IMPORTEXPORT HostContext : public Context
00055 {
00056 
00057 public:
00058 
00063     enum HostContextType { DefaultHost,
00064                            CUDAHost,
00065                            OpenCLHost,
00066                            PGAS,
00067                            MaxHostContext
00068                          };
00069 
00070     virtual ~HostContext();
00071 
00072     virtual bool canUseData(const Context& other) const;
00073 
00074     virtual void writeAt( std::ostream& stream ) const;
00075 
00076     virtual HostContextType getHostType() const = 0; 
00077 
00080     virtual std::auto_ptr<SyncToken> getSyncToken() const;
00081 
00082 protected:
00083 
00084     HostContext();
00085 };
00086 
00087 }  // namespace LAMA
00088 
00089 #endif // LAMA_HOSTCONTEXT_HPP_