Classes | |
struct | deleter |
Public Member Functions | |
ThreadedImageReader (MultiThreadImageReader *tir) | |
void * | Entry () |
void | OnExit () |
vtkImageData * | Read (const std::string &filename) |
ThreadedImageReader (MultiThreadImageReader *tir) | |
void * | Entry () |
void | OnExit () |
vtkImageData * | Read (const std::string &filename) |
Private Attributes | |
ImageReader | mReader |
MultiThreadImageReader * | mMultiThreadImageReader |
Friends | |
struct | deleter |
Definition at line 26 of file creaImageIOMultiThreadImageReader.cpp.
creaImageIO::ThreadedImageReader::ThreadedImageReader | ( | MultiThreadImageReader * | tir | ) | [inline] |
Definition at line 29 of file creaImageIOMultiThreadImageReader.cpp.
: mMultiThreadImageReader(tir) {}
creaImageIO::ThreadedImageReader::ThreadedImageReader | ( | MultiThreadImageReader * | tir | ) | [inline] |
Definition at line 30 of file creaImageIOQMultiThreadImageReader.cpp.
: mMultiThreadImageReader(tir) {}
void * creaImageIO::ThreadedImageReader::Entry | ( | ) |
Definition at line 561 of file creaImageIOMultiThreadImageReader.cpp.
References creaImageIO::MultiThreadImageReader::ImageToLoad::GetFilename(), creaImageIO::MultiThreadImageReader::mImages, mMultiThreadImageReader, creaImageIO::MultiThreadImageReader::mQueue, creaImageIO::MultiThreadImageReaderUser::MultiThreadImageReaderEventLock(), creaImageIO::MultiThreadImageReaderUser::MultiThreadImageReaderEventUnlock(), Read(), creaImageIO::IndexedHeap< T, Comparator, Indexer >::remove_top(), creaImageIO::MultiThreadImageReader::ImageToLoad::SetImage(), creaImageIO::MultiThreadImageReader::SignalImageRead(), creaImageIO::IndexedHeap< T, Comparator, Indexer >::size(), and creaImageIO::MultiThreadImageReaderUser::ThreadedReaderStarted.
{ // std::cout << "### Thread "<<GetCurrentId()<<"::Entry()" // << std::endl; mMultiThreadImageReader->MultiThreadImageReaderSendEvent ("", MultiThreadImageReaderUser::ThreadedReaderStarted, 0); // While was not deleted while (!TestDestroy()) { //std::cout << "### Thread "<<GetCurrentId()<<" still alive" << std::endl; // Lock the mutex mMultiThreadImageReader->MultiThreadImageReaderEventLock(); //mMutex.Lock(); // If image in queue if (mMultiThreadImageReader->mQueue.size()>0) { MultiThreadImageReader::ImageToLoadPtr i = mMultiThreadImageReader->mQueue.remove_top(); mMultiThreadImageReader->MultiThreadImageReaderEventUnlock(); //mMutex.Unlock(); // std::cout << "### Thread "<<GetCurrentId()<<" : reading '" // << i->GetFilename() << "'" << std::endl; // Do the job vtkImageData* im = Read(i->GetFilename()); // Store it in the map mMultiThreadImageReader->MultiThreadImageReaderEventLock(); //mMutex.Lock(); MultiThreadImageReader::ImageToLoad itl(0,i->GetFilename()); MultiThreadImageReader::ImageMapType::iterator it = mMultiThreadImageReader->mImages.find(&itl); MultiThreadImageReader::ImageToLoadPtr pitl = const_cast<MultiThreadImageReader::ImageToLoadPtr> (it->first); pitl->SetImage(im); mMultiThreadImageReader->SignalImageRead(pitl,true);//i->GetFilename()); mMultiThreadImageReader->MultiThreadImageReaderEventUnlock(); //mMutex.Unlock(); // std::cout << "### Thread "<<GetCurrentId()<<" : reading '" // << i->GetFilename() << "' : DONE" << std::endl; } else { mMultiThreadImageReader->MultiThreadImageReaderEventUnlock(); //mMutex.Unlock(); // Wait a little to avoid blocking Sleep(10); } }; // std::cout << "### Thread "<<GetCurrentId()<<" stopping" // << std::endl; return 0; }
void* creaImageIO::ThreadedImageReader::Entry | ( | ) |
void creaImageIO::ThreadedImageReader::OnExit | ( | ) |
void creaImageIO::ThreadedImageReader::OnExit | ( | ) |
Definition at line 628 of file creaImageIOMultiThreadImageReader.cpp.
References mMultiThreadImageReader, and creaImageIO::MultiThreadImageReaderUser::ThreadedReaderStopped.
{ mMultiThreadImageReader->MultiThreadImageReaderSendEvent ("", MultiThreadImageReaderUser::ThreadedReaderStopped, 0); }
vtkImageData * creaImageIO::ThreadedImageReader::Read | ( | const std::string & | filename | ) |
Definition at line 638 of file creaImageIOMultiThreadImageReader.cpp.
References mReader, and creaImageIO::ImageReader::ReadImage().
Referenced by Entry().
{ return mReader.ReadImage(filename); }
vtkImageData* creaImageIO::ThreadedImageReader::Read | ( | const std::string & | filename | ) |
deleter [friend] |
Definition at line 45 of file creaImageIOMultiThreadImageReader.cpp.
Definition at line 50 of file creaImageIOMultiThreadImageReader.cpp.
Definition at line 49 of file creaImageIOMultiThreadImageReader.cpp.
Referenced by Read().