00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039 #ifndef __GRABBER_HPP__
00040 #define __GRABBER_HPP__
00041
00042 #include <boost/thread/thread.hpp>
00043
00044 #include "param.hpp"
00045 #include "paramip.hpp"
00046 #include "paramdisk.hpp"
00047 #include "acq.hpp"
00048 #include "tempo.hpp"
00049
00050 namespace ipsi
00051 {
00058 template<class T, size_t N>
00059 class dataGrabber
00060 {
00061 private:
00063 buffer_t mBuffers[N] ;
00065 boost::mutex mLock[N] ;
00067 unsigned int mCurr ,
00069 mSend ;
00071 bool mRun ;
00073 std::string mLogin ,
00075 mPass ,
00077 mIp ;
00079 int mPort ;
00081 bool ready ;
00082
00084 acq<T, N, fill_data<T> >* macq;
00086 boost::thread* mThread ;
00087
00088 public:
00100 dataGrabber( Param* param, Caminfo* ci);
00101
00108 ~dataGrabber();
00109
00114 buffer_t& getData();
00115
00120 size_t size();
00121
00126 bool isready() const;
00127
00134 void stop();
00135 };
00136
00137 #include "grabber.impl.hpp"
00138 }
00139 #endif