LAMA
|
00001 00033 #ifndef LAMA_TASKSYNCTOKEN_HPP_ 00034 #define LAMA_TASKSYNCTOKEN_HPP_ 00035 00036 // for dll_import 00037 #include <lama/config.hpp> 00038 00039 // base classes 00040 #include <lama/SyncToken.hpp> 00041 00042 // others 00043 #include <lama/task/Task.hpp> 00044 00045 namespace lama 00046 { 00047 00050 class LAMA_DLL_IMPORTEXPORT TaskSyncToken : public SyncToken 00051 { 00052 public: 00053 00057 TaskSyncToken( boost::function<void()> function, int numOmpThreads = 0 ); 00058 00062 TaskSyncToken(); 00063 00064 virtual void run( boost::function<void()> function, int numOmpThreads = 0 ); 00065 00066 virtual ~TaskSyncToken(); 00067 00070 virtual void wait(); 00071 00074 virtual bool probe() const; 00075 00078 virtual void writeAt( std::ostream& stream ) const; 00079 00080 private: 00081 00082 boost::shared_ptr<Task> mTask; 00083 00084 LAMA_LOG_DECL_STATIC_LOGGER(logger); 00085 }; 00086 00087 } 00088 00089 #endif // LAMA_TASKSYNCTOKEN_HPP_