#include <Dispatcher.h>
Inherits NSPipeline::TDispatcherInterface.
Inheritance diagram for NSPipeline::TDispatcher:
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 TFrame * | GetFrame (void) |
Metoda vrati aktualne ulozeny snimek. | |
virtual TFrame * | GetLockedFrame (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 | |
TFrameReal * | m_frame |
posledni snimek ulozeny v TDispatcher | |
TFrameQueue * | m_queue |
ukazatel na frontu celeho retezce - je predana v konstruktoru pokud je misto fronty predan NULL pak dispatcher nikam snimky neposila |
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).
Definition at line 48 of file Dispatcher.h.
|
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: ![]() |
|
Konstruktor.
Definition at line 24 of file Dispatcher.cpp. |
|
falesny kopirovaci konstruktor
|
|
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: ![]() |
|
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: ![]() |
|
Virtualni metoda vracejici vysku poskytovanych snimku v pixelech.
Implements NSPipeline::TDispatcherInterface. Definition at line 138 of file Dispatcher.cpp. References m_height. |
|
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: ![]() |
|
Virtualni metoda vracejici sirku poskytovanych snimku v pixelech.
Implements NSPipeline::TDispatcherInterface. Definition at line 130 of file Dispatcher.cpp. References m_width. |
|
falesny operator prirazeni
|
|
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.
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: ![]() |
|
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).
Definition at line 67 of file Dispatcher.cpp. References m_height, and m_width. Referenced by main(). |
|
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(). |
|
posledni snimek ulozeny v TDispatcher
Definition at line 82 of file Dispatcher.h. Referenced by Free(), GetFrame(), GetLockedFrame(), SetFrame(), TDispatcher(), and ~TDispatcher(). |
|
vyska poskytovanych snimku
Definition at line 77 of file Dispatcher.h. Referenced by GetHeight(), SetFramesInfo(), and TDispatcher(). |
|
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(). |
|
sirka poskytovanych snimku
Definition at line 76 of file Dispatcher.h. Referenced by GetWidth(), SetFramesInfo(), and TDispatcher(). |