1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
#ifndef __equeue__
#define __equeue__
#if defined(__WXMSW__)
# include "equeue_win_impl.h"
#else
# include "equeue_unix_impl.h"
#endif
template <class T>
class eQueue
{
protected:
eQueueImpl<T> *m_impl;
public:
eQueue();
virtual ~eQueue();
bool put(const T& item);
bool get(T& item, long timeout);
};
//----------------------------
// Implementation
//----------------------------
template<class T>
eQueue<T>::eQueue()
{
m_impl = new eQueueImpl<T>();
}
template<class T>
eQueue<T>::~eQueue()
{
delete m_impl;
}
template<class T>
bool eQueue<T>::get(T& item, long timeout)
{
return m_impl->get(item, timeout);
}
template<class T>
bool eQueue<T>::put(const T& item)
{
return m_impl->put(item);
}
#endif // __equeue__
|