NSPipeline::TSimpleUnit Class Reference

Tato trida reprezentuje jednotku, ktera zpracovava data vzdy pouze z jednoho snimku. More...

#include <SimpleUnit.h>

Inherits NSPipeline::TUnitInterface.

Inheritance diagram for NSPipeline::TSimpleUnit:

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

Collaboration graph
[legend]
List of all members.

Public Member Functions

virtual EnumUnitType GetType (void)
 Typ teto jednotky a zaroven typ navratove hodnoty.
virtual TUnitRetTypeInterfaceGetResult (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
TThreadm_thread
 vlakno bezici v jednotce pokud je NULL pak jednotka nebezi
TDispatcherInterfacem_dispatcher
 rozhrani k dispatcheru snimku
TFramem_frame
 prave ulozeny snimek je nad nim drzena reference a take zamek pokud jednotka zamyka snimky
TSimpleUnitProcessingInterfacem_unit
 objekt pro vlastni vypocty

Detailed Description

Tato trida reprezentuje jednotku, ktera zpracovava data vzdy pouze z jednoho snimku.

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.


Member Enumeration Documentation

enum NSPipeline::TSimpleUnit::EnumUnitState [private]
 

Enumerator s moznymi stavy stavoveho automatu uvnitr jednotky.

Enumerator:
ENUM_UNIT_WORK  jednotka zpracovava snimek, po dokonceni prejde do stavu ENUM_UNIT_LOADFRAME z tohoto stavu muze jednotka prejit take do stavu ENUM_PROC_FINISHWORK aby bylo mozne ukoncit/prerusit jeji cinnost
ENUM_UNIT_LOADFRAME  jednotka je pripravena ziskat dalsi snimek, po ziskani snimku prejde do ENUM_UNIT_WORK z tohoto stavu muze jednotka prejit take do stavu ENUM_UNIT_FINISHWORK aby bylo mozne ukoncit/prerusit jeji cinnost toto je zaroven pocatecni stav jednotky po spusteni
ENUM_UNIT_FINISHWORK  jednotka zpracovava snimek, po dokonceni zastavi svou cinnost prechodem do ENUM_UNIT_STOP
ENUM_UNIT_STOP  signalizace zastaveni jednotky

Definition at line 161 of file SimpleUnit.h.


Constructor & Destructor Documentation

TSimpleUnit::TSimpleUnit TDispatcherInterface dispatcher,
TSimpleUnitProcessingInterface unit,
BOOL  lockFrame
 

Konstruktor.

Vytvori jednotku, ktera musi byt nasledne spustena pomoci metody Start.

Parameters:
dispatcher [in] rozhrani na objekt pro ziskavani novych snimku z kamery
unit [in] rozhrani vlastni zpracovavajici jednotky - objekt je jednotkou automaticky znicen v destruktoru
lockFrame [in] tento parametr urcuje zda bude jednotka zamykat snimky Zamknutim snimku jednotka neumozni zobrazit snimek dokud neni kompletne zpracovan.

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.

TSimpleUnit::~TSimpleUnit void   )  [protected]
 

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.

References m_frame, and m_unit.

NSPipeline::TSimpleUnit::TSimpleUnit const TSimpleUnit orig  )  [protected]
 

falesny kopirovaci konstruktor


Member Function Documentation

virtual DWORD NSPipeline::TSimpleUnit::GetFrameInterval  )  [inline, virtual]
 

Pocet snimku, ktere nebyly zpracovany mezi poslednimi dvema zpracovanymi snimky.

Implements NSPipeline::TUnitInterface.

Definition at line 127 of file SimpleUnit.h.

References m_interval.

virtual TUnitRetTypeInterface* NSPipeline::TSimpleUnit::GetResult DWORD  id  )  [inline, virtual]
 

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:

TSimpleUnit::EnumUnitState NSPipeline::TSimpleUnit::GetState void   )  const [inline, private]
 

Vrati aktualni stav stavoveho automatu ktery ridi vypocet.

Definition at line 202 of file SimpleUnit.h.

References m_state.

Referenced by TSimpleUnitThread().

virtual EnumUnitType NSPipeline::TSimpleUnit::GetType void   )  [inline, virtual]
 

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:

void TSimpleUnit::Loop void   )  [private]
 

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:

void NSPipeline::TSimpleUnit::operator= const TSimpleUnit orig  )  [protected]
 

falesny prirazovaci operator

void TSimpleUnit::Release void   )  [virtual]
 

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.

void NSPipeline::TSimpleUnit::SetState TSimpleUnit::EnumUnitState  state  )  [inline, private]
 

Nastavi novy stav stavoveho automatu, ktery ridi vypocet.

Parameters:
state [in] novy stav

Definition at line 212 of file SimpleUnit.h.

References m_state.

Referenced by Start().

BOOL TSimpleUnit::Start void   )  [virtual]
 

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:

BOOL TSimpleUnit::Stop void   )  [virtual]
 

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:

DWORD WINAPI TSimpleUnit::TSimpleUnitThread void *  ptr  )  [static, private]
 

Tato staticka metoda tvori telo vlakna ve kterem jednotka zpracovava snimky.

Parameters:
ptr [in] ukazatel na jednotku typu TSimpleUnit
Smycka bezi dokud vlakno nezastavi.

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:


Member Data Documentation

TCriticalSection NSPipeline::TSimpleUnit::m_critical [private]
 

kriticka sekce pro zmenu stavu jednotky

Definition at line 185 of file SimpleUnit.h.

Referenced by Loop(), and Stop().

TDispatcherInterface* NSPipeline::TSimpleUnit::m_dispatcher [private]
 

rozhrani k dispatcheru snimku

Definition at line 190 of file SimpleUnit.h.

Referenced by Loop(), and TSimpleUnit().

TFrame* NSPipeline::TSimpleUnit::m_frame [private]
 

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().

volatile DWORD NSPipeline::TSimpleUnit::m_interval [private]
 

pocet snimku, ktere jednotka nestihla zpracovat pred zpracovanim posledniho snimku

Definition at line 181 of file SimpleUnit.h.

Referenced by GetFrameInterval(), Loop(), and TSimpleUnit().

BOOL NSPipeline::TSimpleUnit::m_lockFrame [private]
 

urcuje zda tato jednotka zamyka snimky

Definition at line 179 of file SimpleUnit.h.

Referenced by Loop(), and TSimpleUnit().

EnumUnitState NSPipeline::TSimpleUnit::m_state [private]
 

aktualni stav jednotky

Definition at line 184 of file SimpleUnit.h.

Referenced by GetState(), Loop(), SetState(), Stop(), and TSimpleUnit().

TThread* NSPipeline::TSimpleUnit::m_thread [private]
 

vlakno bezici v jednotce pokud je NULL pak jednotka nebezi

Definition at line 187 of file SimpleUnit.h.

Referenced by Start(), Stop(), and TSimpleUnit().

TSimpleUnitProcessingInterface* NSPipeline::TSimpleUnit::m_unit [private]
 

objekt pro vlastni vypocty

Definition at line 196 of file SimpleUnit.h.

Referenced by GetResult(), GetType(), Loop(), TSimpleUnit(), and ~TSimpleUnit().


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