DirectShow DirectShow 레퍼런스 DirectShow base class base class 레퍼런스 CQueue   [목차열람] [주소복사] [슬롯비우기]
CQueue 클래스
 
Microsoft DirectX 9.0

CQueue 클래스

CQueue 클래스 템플릿은, 단순하고 정적으로 사이즈를 할당한 큐를 처리 한다.

클래스 생성자은 큐의 사이즈를 지정한다. 항목을 큐에 넣으려면 CQueue::PutQueueObject 메서드를 사용해, 항목을 큐로부터 내려면 CQueue::GetQueueObject 메서드를 사용한다. 큐가 가득해 있는 경우,PutQueueObject 메서드는 항목이 큐로부터 나올 때까지 블록 한다. 큐가 하늘의 경우,GetQueueObject 는 항목이 큐에 넣어질 때까지 블록 한다. 템플릿 파라미터로 항목의 타입을 지정한다. 다음에 예를 나타낸다.

CQueue<int> number_queue;
number_queue.PutQueueObject(7);

이 클래스는 2 개의 semaphore를 사용해 큐 조작을 제어한다. 1 개는 "get" semaphore, 이제 1 개는 "put" semaphore이다. GetQueueObject 메서드는 (WaitForSingleObject 함수를 사용해) "get" semaphore로 기다려,"put" semaphore를 (ReleaseSemaphore 함수를 사용해) 릴리즈 한다. PutQueueObject 메서드는 "put" semaphore로 기다려,"get" semaphore를 릴리즈 한다. 이 클래스는 크리티컬 섹션을 사용해 복수 thread에서의 큐 조작을 처리한다.

요건

헤더: Wxutil.h 로 선언해, Streams.h 를 인클루드 한다.

라이브러리: Strmbase.lib (리테일 빌드) 또는 Strmbasd.lib (디버그 빌드).

퍼블릭 메서드  
CQueue 생성자 메서드.
~CQueue 소멸자 메서드.
GetQueueObject 큐로부터 다음의 항목을 얻어온다.
PutQueueObject 큐에 항목을 넣는다.

↑TOP