The CQueue class implements a simple queue abstract data type. The queue contains a finite number of objects, and a semaphore controls access to these objects. The semaphore is created with an initial count (N). Each time an object is added, a call to the Microsoft® Win32® WaitForSingleObject function is made on the handle of the semaphore. When this function returns, it reserves a slot in the queue for the new object. If no slots are available, the member function blocks until it becomes available. Each time an object is removed from the queue, the Win32 ReleaseSemaphore function is called on the handle of the semaphore, thus freeing a slot in the queue. If no objects are present in the queue, the function blocks until an object has been added.
CQueue Constructs a CQueue object. GetQueueObject Retrieves an object from the queue. PutQueueObject Puts an object into the queue.
Constructs a CQueue object.
Syntax
CQueue(
int n
);
CQueue(void);
Parameters
- n
- Size of the queue to create.
Return Value
No return value.
Remarks
If constructed with no parameters, the size of the queue is set to DEFAULT_QUEUESIZE.
Retrieves an object from the queue.
Syntax
T GetQueueObject(void);
Return Value
Returns an object of type T (template).
Remarks
This member function blocks until an object is available on the queue. It uses a CCritSec object for security.
Puts an object into the queue.
Syntax
void PutQueueObject(
T object
);
Parameters
- object
- Template object to be inserted into the queue.
Return Value
No return value.
Remarks
This member function blocks if there is no open slot into which to put the object. It releases any blocking CQueue::GetQueueObject member function that is waiting for an object to retrieve.
Top of Page
© 2000 Microsoft and/or its suppliers. All rights reserved. Terms of Use.