00001 #ifndef DV_THREAD_READER_H
00002 #define DV_THREAD_READER_H
00003
00004 #include <unistd.h>
00005 #include <dvthread/thread.h>
00006 #include "test-buffer.h"
00007
00008
00009
00010 class Reader: public Dv::Thread::Thread {
00011 public:
00012
00013 Reader(Buffer& buf, unsigned int n): Thread(), buffer_(buf), n_(n) {}
00014
00015 virtual int main() {
00016 try {
00017 std::cerr << "reader main, id = " << id() << std::endl;
00018 for (unsigned int i=0;(i<n_);++i)
00019 buffer_.get();
00020 }
00021 catch (std::exception& e) {
00022 std::cerr << "reader exception: " << e.what() << std::endl;
00023 return 1;
00024 }
00025 return 0;
00026 }
00027
00028 virtual ~Reader() { std::cerr << "Reader::~Reader" << std::endl; }
00029 private:
00030
00031 Buffer& buffer_;
00032
00033 unsigned int n_;
00034 };
00035 #endif