LAMA
/home/brandes/workspace/LAMA/src/lama/task/Thread.hpp
Go to the documentation of this file.
00001 
00033 #ifndef LAMA_THREAD_HPP_
00034 #define LAMA_THREAD_HPP_
00035 
00036 // for dll_import
00037 #include <lama/config.hpp>
00038 
00039 // boost
00040 #include <boost/thread.hpp>
00041 
00042 namespace lama
00043 {
00044 
00045 #ifdef WIN32
00046 #define LAMA_USE_BOOST_THREADID
00047 #endif
00048 
00049 #ifndef LAMA_USE_BOOST_THREADID
00050 
00051     #include <boost/version.hpp>
00052 
00053     #define LAMA_BOOST_VERSION_PROVIDES_ID 103501
00054 
00055     #if BOOST_VERSION < LAMA_BOOST_VERSION_PROVIDES_ID
00056         #include <pthread.h>
00057     #else
00058         #define LAMA_USE_BOOST_THREADID
00059     #endif
00060 #endif
00061 
00062 class LAMA_DLL_IMPORTEXPORT Thread
00063 {
00064 public:
00065 
00066 #ifdef LAMA_USE_BOOST_THREADID
00067     typedef boost::thread::id Id;
00068 #else
00069     typedef pthread_t Id;
00070 #endif
00071 
00073     static Id getSelf();
00074 };
00075 
00076 } // namespace lama
00077 
00078 #endif // LAMA_THREAD_HPP_