LAMA
/home/brandes/workspace/LAMA/src/lama/cuda/CUDATracerSyncToken.hpp
Go to the documentation of this file.
00001 
00033 #ifndef LAMA_CUDATRACERSYNCTOKEN_HPP_
00034 #define LAMA_CUDATRACERSYNCTOKEN_HPP_
00035 
00036 #include <lama/SyncToken.hpp>
00037 
00038 #include <lama/tracing/LAMABaseTracer.hpp>
00039 
00040 #include <lama/cuda/CUDAStreamSyncToken.hpp>
00041 
00042 #include <cuda.h>
00043 
00047 class CUDATracerSyncToken: public lama::SyncToken
00048 {
00049 public:
00050     CUDATracerSyncToken( std::auto_ptr<LAMABaseTracer> tracer, lama::CUDAStreamSyncToken& cudaStreamSyncToken );
00051 
00052     virtual ~CUDATracerSyncToken();
00053 
00054     virtual void wait();
00055 
00056     virtual bool probe() const;
00057 
00058     void recordStopEvent();
00059 
00060 private:
00061 
00062     CUDATracerSyncToken();
00063 
00064     CUDATracerSyncToken( const CUDATracerSyncToken& other );
00065 
00066     CUDATracerSyncToken& operator=( const CUDATracerSyncToken& other );
00067 
00068     CUevent mStartEvent;
00069     CUevent mStopEvent;
00070 
00071     lama::CUDAStreamSyncToken& mStreamSyncToken;
00072 
00073     std::auto_ptr<LAMABaseTracer> mTracer;
00074 
00075     LAMA_LOG_DECL_STATIC_LOGGER(logger);
00076 };
00077 
00078 #endif // LAMA_CUDATRACERSYNCTOKEN_HPP_