version 1.4, 2003/11/03 18:38:16
|
version 1.5.2.1, 2004/03/03 10:53:21
|
|
|
| |
#include <Pegasus/Common/Config.h> | #include <Pegasus/Common/Config.h> |
#include <Pegasus/Common/Queue.h> | #include <Pegasus/Common/Queue.h> |
|
#include <Pegasus/Common/IPC.h> |
| |
#include <Pegasus/ProviderManager2/MutexLock.h> |
#include <Pegasus/ProviderManager2/Linkage.h> |
|
|
#include <Pegasus/Server/Linkage.h> |
|
| |
PEGASUS_NAMESPACE_BEGIN | PEGASUS_NAMESPACE_BEGIN |
| |
template<class T> | template<class T> |
class PEGASUS_SERVER_LINKAGE SafeQueue |
class PEGASUS_PPM_LINKAGE SafeQueue |
{ | { |
public: | public: |
SafeQueue(void); | SafeQueue(void); |
|
|
template<class T> | template<class T> |
void SafeQueue<T>::enqueue(const T & O) | void SafeQueue<T>::enqueue(const T & O) |
{ | { |
MutexLock lock(_mutex); |
AutoMutex lock(_mutex); |
| |
_queue.enqueue(O); | _queue.enqueue(O); |
} | } |
|
|
template<class T> | template<class T> |
T SafeQueue<T>::dequeue(void) | T SafeQueue<T>::dequeue(void) |
{ | { |
MutexLock lock(_mutex); |
AutoMutex lock(_mutex); |
| |
T O = _queue.front(); | T O = _queue.front(); |
| |
|
|
template<class T> | template<class T> |
T & SafeQueue<T>::front(void) | T & SafeQueue<T>::front(void) |
{ | { |
MutexLock lock(_mutex); |
AutoMutex lock(_mutex); |
| |
return(_queue.front()); | return(_queue.front()); |
} | } |
|
|
template<class T> | template<class T> |
const T & SafeQueue<T>::front(void) const | const T & SafeQueue<T>::front(void) const |
{ | { |
MutexLock lock(_mutex); |
AutoMutex lock(_mutex); |
| |
return(_queue.front()); | return(_queue.front()); |
} | } |
|
|
template<class T> | template<class T> |
T & SafeQueue<T>::back(void) | T & SafeQueue<T>::back(void) |
{ | { |
MutexLock lock(_mutex); |
AutoMutex lock(_mutex); |
| |
return(_queue.back()); | return(_queue.back()); |
} | } |
|
|
template<class T> | template<class T> |
const T & SafeQueue<T>::back(void) const | const T & SafeQueue<T>::back(void) const |
{ | { |
MutexLock lock(_mutex); |
AutoMutex lock(_mutex); |
| |
return(_queue.back()); | return(_queue.back()); |
} | } |
|
|
template<class T> | template<class T> |
Uint32 SafeQueue<T>::size(void) const | Uint32 SafeQueue<T>::size(void) const |
{ | { |
MutexLock lock(_mutex); |
AutoMutex lock(_mutex); |
| |
return(_queue.size()); | return(_queue.size()); |
} | } |