Bas Vuyk
/
Robin_Board_Test
Test
events/EventQueue.cpp
- Committer:
- basvuyk
- Date:
- 2018-06-27
- Revision:
- 0:9adff937d42a
File content as of revision 0:9adff937d42a:
#include "EventQueue.h" #include "mbed_events.h" #include "mbed.h" EventQueue::EventQueue(unsigned event_size, unsigned char *event_pointer) { if (!event_pointer) { equeue_create(&_equeue, event_size); } else { equeue_create_inplace(&_equeue, event_size, event_pointer); } } EventQueue::~EventQueue() { equeue_destroy(&_equeue); } void EventQueue::dispatch(int ms) { return equeue_dispatch(&_equeue, ms); } void EventQueue::break_dispatch() { return equeue_break(&_equeue); } unsigned EventQueue::tick() { return equeue_tick(); } void EventQueue::cancel(int id) { return equeue_cancel(&_equeue, id); } void EventQueue::background(Callback<void(int)> update) { _update = update; if (_update) { equeue_background(&_equeue, &Callback<void(int)>::thunk, &_update); } else { equeue_background(&_equeue, 0, 0); } } void EventQueue::chain(EventQueue *target) { if (target) { equeue_chain(&_equeue, &target->_equeue); } else { equeue_chain(&_equeue, 0); } }