22 CQueue(HANDLE hEvent) {m_hEvent= hEvent; InitializeCriticalSection(&m_rLock);}
23 virtual ~
CQueue() {DeleteCriticalSection(&m_rLock);}
27 EnterCriticalSection(&m_rLock);
28 if (m_hEvent && !m_cPacketQueue.size())
30 m_cPacketQueue.push(pHead);
31 LeaveCriticalSection(&m_rLock);
38 T
Front(
bool bPop,
bool &bValid){
41 EnterCriticalSection(&m_rLock);
42 if (m_cPacketQueue.size() != 0){
43 pHead= m_cPacketQueue.front();
48 LeaveCriticalSection(&m_rLock);
53 EnterCriticalSection(&m_rLock);
54 int nSize= (int)m_cPacketQueue.size();
55 LeaveCriticalSection(&m_rLock);
60 EnterCriticalSection(&m_rLock);
61 if (!m_cPacketQueue.size())
63 LeaveCriticalSection(&m_rLock);
66 std::queue<T> m_cPacketQueue;
67 CRITICAL_SECTION m_rLock;
T Front(bool bPop, bool &bValid)