NSPipeline::TDispatcher Class Reference

Tato trida obsahuje naposledy ziskany snimek z kamery. More...

#include <Dispatcher.h>

Inherits NSPipeline::TDispatcherInterface.

Inheritance diagram for NSPipeline::TDispatcher:

Inheritance graph
[legend]
Collaboration diagram for NSPipeline::TDispatcher:

Collaboration graph
[legend]
List of all members.

Public Member Functions

virtual DWORD GetWidth (void)
 Virtualni metoda vracejici sirku poskytovanych snimku v pixelech.
virtual DWORD GetHeight (void)
 Virtualni metoda vracejici vysku poskytovanych snimku v pixelech.
virtual TFrameGetFrame (void)
 Metoda vrati aktualne ulozeny snimek.
virtual TFrameGetLockedFrame (void)
 Metoda vrati aktualne ulozeny snimek.
virtual ~TDispatcher (void)
 Destruktor.
 TDispatcher (TFrameQueue *queue)
 Konstruktor.
void SetFramesInfo (DWORD width, DWORD height)
 Pomoci teto metody se do dispatcheru nastavi informace o rozmerech predavanych snimku.
void SetFrame (TFrameReal *frame)
 Vlozeni noveho snimku.
void Free (void)
 Tato metoda uvolni aktualni snimek z dispatcheru.

Private Member Functions

 TDispatcher (const TDispatcher &orig)
 falesny kopirovaci konstruktor
void operator= (const TDispatcher &orig)
 falesny operator prirazeni

Private Attributes

DWORD m_width
 sirka poskytovanych snimku
DWORD m_height
 vyska poskytovanych snimku
TCriticalSection m_critical
 kriticka sekce pro synchronizaci pristupu ke snimku ulozenem v dispatcheru
TFrameRealm_frame
 posledni snimek ulozeny v TDispatcher
TFrameQueuem_queue
 ukazatel na frontu celeho retezce - je predana v konstruktoru pokud je misto fronty predan NULL pak dispatcher nikam snimky neposila

Detailed Description

Tato trida obsahuje naposledy ziskany snimek z kamery.

Tento snimek musi byt zarazen do fronty snimku (TFrameQueue) a musi byt v TDispatcher k dispozici az do prichodu do noveho snimku. Vypocetni jednotky si mohou tento snimek z TDispatcher vyzadat.

Snimek ulozeny v TDispatcher ma minimalne jeden zamek!!! a tedy NESMI opustit frontu TFrameQueue!!! Teprve po prichodu noveho snimku je ze stareho snimku uvolnen zamek.

Dispatcher zaroven obsahuje informace o velikosti poskytovanych snimku. Tato informace je uzitecna pri inicializaci vypocetnich jednotek, ktere takovou informaci mohou vyuzit, protoze se predpoklada, ze za behu aplikace se tato velikost nebude menit. Rozmery snimku musi byt do dispatcheru ulozeny pred vytvorenim prvni vypocetni jednotky, nejlepe ihned jak je to mozne (po vytvoreni kamery).

Note:
Pomoci parametru konstruktoru lze nastavit chovani dispatcheru tak, aby nepreposilal snimky dale do aplikace. Tim je mozne pouzit cely vypocetni retezec bez nutnosti zobrazovani snimku.

Definition at line 48 of file Dispatcher.h.


Constructor & Destructor Documentation

TDispatcher::~TDispatcher void   )  [virtual]
 

Destruktor.

Uvolni snimek z TDispatcher.

Definition at line 39 of file Dispatcher.cpp.

References NSPipeline::TCriticalSection::Enter(), NSPipeline::TCriticalSection::Leave(), m_critical, m_frame, NSPipeline::TFrameReal::Release(), and NSPipeline::TFrameReal::ReleaseLock().

Here is the call graph for this function:

TDispatcher::TDispatcher TFrameQueue queue  ) 
 

Konstruktor.

Parameters:
queue [in] ukazatel na platnou frontu kam bude dispatcher predavat snimky Pokud je tento parametr NULL pak se senimky z dispatcheru dale neposilaji.

Definition at line 24 of file Dispatcher.cpp.

References m_frame, m_height, m_queue, and m_width.

NSPipeline::TDispatcher::TDispatcher const TDispatcher orig  )  [private]
 

falesny kopirovaci konstruktor


Member Function Documentation

void TDispatcher::Free void   ) 
 

Tato metoda uvolni aktualni snimek z dispatcheru.

Metoda by mela byt pouzita na konci aplikace pred odstranenim objektu.

Definition at line 112 of file Dispatcher.cpp.

References NSPipeline::TCriticalSection::Enter(), NSPipeline::TCriticalSection::Leave(), m_critical, m_frame, NSPipeline::TFrameReal::Release(), and NSPipeline::TFrameReal::ReleaseLock().

Referenced by main().

Here is the call graph for this function:

TFrame * TDispatcher::GetFrame void   )  [virtual]
 

Metoda vrati aktualne ulozeny snimek.

Metoda muze vratit NULL pokud zadny snimek neni prave ulozen (napr. pri startu programu)!!!

Metoda automaticky zvysi pocet referenci na snimek pri kazdem zavolani, volajici objekt je zodpovedny za spravnou praci s obdrzenou referenci!!!

Implements NSPipeline::TDispatcherInterface.

Definition at line 152 of file Dispatcher.cpp.

References NSPipeline::TFrameReal::AddRefs(), NSPipeline::TCriticalSection::Enter(), NSPipeline::TCriticalSection::Leave(), m_critical, and m_frame.

Here is the call graph for this function:

DWORD TDispatcher::GetHeight void   )  [virtual]
 

Virtualni metoda vracejici vysku poskytovanych snimku v pixelech.

Implements NSPipeline::TDispatcherInterface.

Definition at line 138 of file Dispatcher.cpp.

References m_height.

TFrame * TDispatcher::GetLockedFrame void   )  [virtual]
 

Metoda vrati aktualne ulozeny snimek.

Metoda muze vratit NULL pokud zadny snimek neni prave ulozen (napr. pri startu programu)!!!

Metoda automaticky zvysi pocet referenci na snimek pri kazdem zavolani, volajici objekt je zodpovedny za spravnou praci s obdrzenou referenci!!!

Zaroven metoda zvysi pocet zamku na snimku, coz muze byt vyhodne v pripade jednotek, ktere zamek na snimku vyzaduji.

Implements NSPipeline::TDispatcherInterface.

Definition at line 184 of file Dispatcher.cpp.

References NSPipeline::TFrameReal::AddLock(), NSPipeline::TFrameReal::AddRefs(), NSPipeline::TCriticalSection::Enter(), NSPipeline::TCriticalSection::Leave(), m_critical, and m_frame.

Here is the call graph for this function:

DWORD TDispatcher::GetWidth void   )  [virtual]
 

Virtualni metoda vracejici sirku poskytovanych snimku v pixelech.

Implements NSPipeline::TDispatcherInterface.

Definition at line 130 of file Dispatcher.cpp.

References m_width.

void NSPipeline::TDispatcher::operator= const TDispatcher orig  )  [private]
 

falesny operator prirazeni

void TDispatcher::SetFrame TFrameReal frame  ) 
 

Vlozeni noveho snimku.

Predchozi snimek je uvolnen (pokud existoval) a zaroven preposlan do fronty snimku (pokud byla nastavena). Novy snimek je uzamcen a pocet referenci je zvysen.

Parameters:
frame [in] platny snimek - nesmi byt NULL

Definition at line 82 of file Dispatcher.cpp.

References NSPipeline::TFrameQueue::AddFrame(), NSPipeline::TFrameReal::AddLock(), NSPipeline::TFrameReal::AddRefs(), NSPipeline::TCriticalSection::Enter(), NSPipeline::TCriticalSection::Leave(), m_critical, m_frame, m_queue, NSPipeline::TFrameReal::Release(), and NSPipeline::TFrameReal::ReleaseLock().

Referenced by NSPipeline::TCameraThread::TCameraDLLRun().

Here is the call graph for this function:

void TDispatcher::SetFramesInfo DWORD  width,
DWORD  height
 

Pomoci teto metody se do dispatcheru nastavi informace o rozmerech predavanych snimku.

Tyto informace jsou pro vsechny snimky stejne a mohou byt vyuzity napr. pri pri inicializaci jednotek.

Tato metoda by mela byt volana ihned po zjisteni rozmeru snimku (z kamery).

Parameters:
width [in] sirka snimku v pixelech
height [in] vyska snimku v pixelech

Definition at line 67 of file Dispatcher.cpp.

References m_height, and m_width.

Referenced by main().


Member Data Documentation

TCriticalSection NSPipeline::TDispatcher::m_critical [private]
 

kriticka sekce pro synchronizaci pristupu ke snimku ulozenem v dispatcheru

Definition at line 79 of file Dispatcher.h.

Referenced by Free(), GetFrame(), GetLockedFrame(), SetFrame(), and ~TDispatcher().

TFrameReal* NSPipeline::TDispatcher::m_frame [private]
 

posledni snimek ulozeny v TDispatcher

Definition at line 82 of file Dispatcher.h.

Referenced by Free(), GetFrame(), GetLockedFrame(), SetFrame(), TDispatcher(), and ~TDispatcher().

DWORD NSPipeline::TDispatcher::m_height [private]
 

vyska poskytovanych snimku

Definition at line 77 of file Dispatcher.h.

Referenced by GetHeight(), SetFramesInfo(), and TDispatcher().

TFrameQueue* NSPipeline::TDispatcher::m_queue [private]
 

ukazatel na frontu celeho retezce - je predana v konstruktoru pokud je misto fronty predan NULL pak dispatcher nikam snimky neposila

Definition at line 84 of file Dispatcher.h.

Referenced by SetFrame(), and TDispatcher().

DWORD NSPipeline::TDispatcher::m_width [private]
 

sirka poskytovanych snimku

Definition at line 76 of file Dispatcher.h.

Referenced by GetWidth(), SetFramesInfo(), and TDispatcher().


The documentation for this class was generated from the following files:
Generated on Sat Nov 17 16:25:28 2007 for Image Processing Pipeline by  doxygen 1.4.6-NO