62 lines
		
	
	
		
			987 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			987 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| #include <config/xf-config.h>
 | |
| 
 | |
| #if (USE_XF_EVENT_QUEUE_DEFAULT_IDF_IMPLEMENTATION != 0)
 | |
| 
 | |
| #include <cassert>
 | |
| #include "eventqueue-default.h"
 | |
| 
 | |
| XFEventQueueDefault::XFEventQueueDefault()
 | |
| {
 | |
| 
 | |
| }
 | |
| 
 | |
| XFEventQueueDefault::~XFEventQueueDefault()
 | |
| {
 | |
| 
 | |
| }
 | |
| 
 | |
| bool XFEventQueueDefault::empty() const
 | |
| {
 | |
|     return _queue.empty();
 | |
| }
 | |
| 
 | |
| bool XFEventQueueDefault::push(const XFEvent * pEvent, bool fromISR)
 | |
| {
 | |
|     _mutex.lock();
 | |
|     {
 | |
|         _queue.push(pEvent);
 | |
|     }
 | |
|     _mutex.unlock();
 | |
| 
 | |
|     return true;
 | |
| }
 | |
| 
 | |
| const XFEvent * XFEventQueueDefault::front()
 | |
| {
 | |
|     const XFEvent * event;
 | |
|     _mutex.lock();
 | |
|     {
 | |
|         event =  _queue.front();
 | |
|     }
 | |
|     _mutex.unlock();
 | |
|     return event;
 | |
| }
 | |
| 
 | |
| void XFEventQueueDefault::pop()
 | |
| {
 | |
|     _mutex.lock();
 | |
|     {
 | |
|         _queue.pop();
 | |
|     }
 | |
|     _mutex.unlock();
 | |
| }
 | |
| 
 | |
| bool XFEventQueueDefault::pend()
 | |
| {
 | |
|     // Method cannot be used in an IDF! Waiting within
 | |
|     // this method would block the whole XF
 | |
|     return false;
 | |
| }
 | |
| 
 | |
| #endif // USE_XF_EVENT_QUEUE_DEFAULT_IDF_IMPLEMENTATION
 |