void EnQ(int element) { if(IsQFull()) { return; } /* Enque element */ if (f == -1) f = 0; if (r==MAX-1) { r = 0; Q[r] = element; } else { r++; Q[r] = element; } }
bool HTTPSourceMMIExtensionEventHandler::HTTPMMIEventQManager<T>::Enqueue ( const T& eventToWrite ) { bool bOk = false; //Check if the queue is already full, if not push the new event //into the queue if (IsQFull()) { QTV_MSG_PRIO( QTVDIAG_STREAMING, QTVDIAG_PRIO_MEDIUM, "MMIEventQManager - MMI event queue full" ); } else { (void)MM_CriticalSection_Enter(m_hEventQLock); if (m_nEventWriteIndex < ARR_SIZE(m_eventQ)) { //Update the write index and number of queued events bOk = true; m_eventQ[m_nEventWriteIndex] = eventToWrite; m_nOutstandingEvents++; QTV_MSG_PRIO2( QTVDIAG_STREAMING, QTVDIAG_PRIO_MEDIUM, "MMIEventQManager - Queued event to index %u, " "%u events remain", m_nEventReadIndex, m_nOutstandingEvents ); m_nEventWriteIndex = (m_nEventWriteIndex + 1) % (uint32)ARR_SIZE(m_eventQ); } else { QTV_MSG_PRIO1( QTVDIAG_STREAMING, QTVDIAG_PRIO_ERROR, "MMIEventQManager - Invalid MMI event queue write index %u", m_nEventWriteIndex ); } (void)MM_CriticalSection_Leave(m_hEventQLock); } return bOk; }