#include <SimpleUnit.h>
Inherits NSPipeline::TUnitInterface.
Inheritance diagram for NSPipeline::TSimpleUnit:
Public Member Functions | |
virtual EnumUnitType | GetType (void) |
Typ teto jednotky a zaroven typ navratove hodnoty. | |
virtual TUnitRetTypeInterface * | GetResult (DWORD id) |
Vysledek vraceny jednotkou. | |
virtual DWORD | GetFrameInterval () |
Pocet snimku, ktere nebyly zpracovany mezi poslednimi dvema zpracovanymi snimky. | |
virtual BOOL | Start (void) |
Spusteni jednotky. | |
virtual BOOL | Stop (void) |
Zastaveni jednotky. | |
virtual void | Release (void) |
Zniceni objektu. | |
TSimpleUnit (TDispatcherInterface *dispatcher, TSimpleUnitProcessingInterface *unit, BOOL lockFrame) | |
Konstruktor. | |
Protected Member Functions | |
~TSimpleUnit (void) | |
Destruktor. | |
TSimpleUnit (const TSimpleUnit &orig) | |
falesny kopirovaci konstruktor | |
void | operator= (const TSimpleUnit &orig) |
falesny prirazovaci operator | |
Private Types | |
enum | EnumUnitState { ENUM_UNIT_WORK, ENUM_UNIT_LOADFRAME, ENUM_UNIT_FINISHWORK, ENUM_UNIT_STOP } |
Enumerator s moznymi stavy stavoveho automatu uvnitr jednotky. More... | |
Private Member Functions | |
EnumUnitState | GetState (void) const |
Vrati aktualni stav stavoveho automatu ktery ridi vypocet. | |
void | SetState (EnumUnitState state) |
Nastavi novy stav stavoveho automatu, ktery ridi vypocet. | |
void | Loop (void) |
Hlavni smycka jednotky. | |
Static Private Member Functions | |
static DWORD WINAPI | TSimpleUnitThread (void *ptr) |
Tato staticka metoda tvori telo vlakna ve kterem jednotka zpracovava snimky. | |
Private Attributes | |
BOOL | m_lockFrame |
urcuje zda tato jednotka zamyka snimky | |
volatile DWORD | m_interval |
pocet snimku, ktere jednotka nestihla zpracovat pred zpracovanim posledniho snimku | |
EnumUnitState | m_state |
aktualni stav jednotky | |
TCriticalSection | m_critical |
kriticka sekce pro zmenu stavu jednotky | |
TThread * | m_thread |
vlakno bezici v jednotce pokud je NULL pak jednotka nebezi | |
TDispatcherInterface * | m_dispatcher |
rozhrani k dispatcheru snimku | |
TFrame * | m_frame |
prave ulozeny snimek je nad nim drzena reference a take zamek pokud jednotka zamyka snimky | |
TSimpleUnitProcessingInterface * | m_unit |
objekt pro vlastni vypocty |
POUZITI:
(A) JEDNOTKA KTERA NEVRACI ZADNA DATA
(1) Vytvorit tridu pro vypocet nad snimkem odvozenou od TSimpleUnitProcessingInterface s prepsanou metodou ProcessFrame(). Takova trida nevraci zadna data. (2) Pouzit objekt teto tridy primo v kontruktoru tridy TSimpleUnit.
(B) JEDNOTKA VRACEJICI DATA
(1) Vytvorit tridu pro vypocet nad snimkem odvozenou od TSimpleUnitProcessingInterface. Reimplementovat VSECHNY jeji metody. To zahrnuje vybrani (pripadne nadefinovani noveho) navratoveho datoveho typu. (2) Pouzit objekt teto tridy primo v kontruktoru tridy TSimpleUnit.
Definition at line 111 of file SimpleUnit.h.
|
Enumerator s moznymi stavy stavoveho automatu uvnitr jednotky.
Definition at line 161 of file SimpleUnit.h. |
|
Konstruktor. Vytvori jednotku, ktera musi byt nasledne spustena pomoci metody Start.
Definition at line 48 of file SimpleUnit.cpp. References ENUM_UNIT_LOADFRAME, m_dispatcher, m_frame, m_interval, m_lockFrame, m_state, m_thread, and m_unit. |
|
Destruktor. Destruktor smi byt volan pouze po radnem zastaveni jednotky metodou Stop!!! To zajisti, ze jednotka nebude udrzovat reference na zadne snimky. Definition at line 72 of file SimpleUnit.cpp. |
|
falesny kopirovaci konstruktor
|
|
Pocet snimku, ktere nebyly zpracovany mezi poslednimi dvema zpracovanymi snimky.
Implements NSPipeline::TUnitInterface. Definition at line 127 of file SimpleUnit.h. References m_interval. |
|
Vysledek vraceny jednotkou.
Implements NSPipeline::TUnitInterface. Definition at line 123 of file SimpleUnit.h. References NSPipeline::TSimpleUnitProcessingInterface::GetResult(), and m_unit. Here is the call graph for this function: ![]() |
|
Vrati aktualni stav stavoveho automatu ktery ridi vypocet.
Definition at line 202 of file SimpleUnit.h. References m_state. Referenced by TSimpleUnitThread(). |
|
Typ teto jednotky a zaroven typ navratove hodnoty.
Implements NSPipeline::TUnitInterface. Definition at line 119 of file SimpleUnit.h. References NSPipeline::TSimpleUnitProcessingInterface::GetType(), and m_unit. Here is the call graph for this function: ![]() |
|
Hlavni smycka jednotky. Je volana ze staticke metody TSimpleUnit::Run() a obsahuje ridici logiku cele jednotky. Definition at line 226 of file SimpleUnit.cpp. References NSPipeline::TCriticalSection::Enter(), ENUM_UNIT_FINISHWORK, ENUM_UNIT_LOADFRAME, ENUM_UNIT_STOP, ENUM_UNIT_WORK, NSPipeline::TDispatcherInterface::GetFrame(), NSPipeline::TTimeStamp::GetID(), NSPipeline::TDispatcherInterface::GetLockedFrame(), NSPipeline::TFrame::GetTimestamp(), NSPipeline::TCriticalSection::Leave(), m_critical, m_dispatcher, m_frame, m_interval, m_lockFrame, m_state, m_unit, NSPipeline::TSimpleUnitProcessingInterface::ProcessFrame(), NSPipeline::TFrame::Release(), and NSPipeline::TFrame::ReleaseLock(). Referenced by TSimpleUnitThread(). Here is the call graph for this function: ![]() |
|
falesny prirazovaci operator
|
|
Zniceni objektu. Neni zde zadne pocitani referenci, takze jednotka se znici okamzite. Metoda smi byt volana v okamziku kdy jiz jednotka nebezi. Tato metoda musi byt reimplementovana v odvozene tride !!! Implements NSPipeline::TUnitInterface. Definition at line 90 of file SimpleUnit.cpp. |
|
Nastavi novy stav stavoveho automatu, ktery ridi vypocet.
Definition at line 212 of file SimpleUnit.h. References m_state. Referenced by Start(). |
|
Spusteni jednotky. Vraci TRUE pokud byla jednotka spustena nebo jiz bezi. FALSE vraci pri kriticke chybe, kdyz napr. neni mozne vytvorit vlakno apod. V takovem pripade je nutne okmazite ukoncit aplikaci. Implements NSPipeline::TUnitInterface. Definition at line 103 of file SimpleUnit.cpp. References ENUM_UNIT_LOADFRAME, m_thread, NSPipeline::TThread::Run(), SetState(), and TSimpleUnitThread(). Here is the call graph for this function: ![]() |
|
Zastaveni jednotky. Vraci TRUE pokud se jednotku podarilo zastavit. Implements NSPipeline::TUnitInterface. Definition at line 140 of file SimpleUnit.cpp. References NSPipeline::TCriticalSection::Enter(), ENUM_UNIT_FINISHWORK, ENUM_UNIT_LOADFRAME, ENUM_UNIT_STOP, ENUM_UNIT_WORK, NSPipeline::TThread::Finish(), NSPipeline::TThread::IsTerminated(), NSPipeline::TCriticalSection::Leave(), m_critical, m_state, and m_thread. Here is the call graph for this function: ![]() |
|
Tato staticka metoda tvori telo vlakna ve kterem jednotka zpracovava snimky.
Definition at line 24 of file SimpleUnit.cpp. References ENUM_UNIT_STOP, GetState(), and Loop(). Referenced by Start(). Here is the call graph for this function: ![]() |
|
kriticka sekce pro zmenu stavu jednotky
Definition at line 185 of file SimpleUnit.h. |
|
rozhrani k dispatcheru snimku
Definition at line 190 of file SimpleUnit.h. Referenced by Loop(), and TSimpleUnit(). |
|
prave ulozeny snimek je nad nim drzena reference a take zamek pokud jednotka zamyka snimky
Definition at line 192 of file SimpleUnit.h. Referenced by Loop(), TSimpleUnit(), and ~TSimpleUnit(). |
|
pocet snimku, ktere jednotka nestihla zpracovat pred zpracovanim posledniho snimku
Definition at line 181 of file SimpleUnit.h. Referenced by GetFrameInterval(), Loop(), and TSimpleUnit(). |
|
urcuje zda tato jednotka zamyka snimky
Definition at line 179 of file SimpleUnit.h. Referenced by Loop(), and TSimpleUnit(). |
|
aktualni stav jednotky
Definition at line 184 of file SimpleUnit.h. Referenced by GetState(), Loop(), SetState(), Stop(), and TSimpleUnit(). |
|
vlakno bezici v jednotce pokud je NULL pak jednotka nebezi
Definition at line 187 of file SimpleUnit.h. Referenced by Start(), Stop(), and TSimpleUnit(). |
|
objekt pro vlastni vypocty
Definition at line 196 of file SimpleUnit.h. Referenced by GetResult(), GetType(), Loop(), TSimpleUnit(), and ~TSimpleUnit(). |