LAMA
/home/brandes/workspace/LAMA/src/lama/task/TaskSyncToken.hpp
Go to the documentation of this file.
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_