LAMA
|
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_