Full Program

Dependencies:   TCPEthernetEverything

Committer:
lachu
Date:
Tue Jan 24 22:17:16 2017 +0000
Revision:
0:ca66419d3b8b
working

Who changed what in which revision?

UserRevisionLine numberNew contents of line
lachu 0:ca66419d3b8b 1 /*
lachu 0:ca66419d3b8b 2 * (c) Copyright 2012 EVRYTHNG Ltd London / Zurich
lachu 0:ca66419d3b8b 3 * www.evrythng.com
lachu 0:ca66419d3b8b 4 *
lachu 0:ca66419d3b8b 5 * --- DISCLAIMER ---
lachu 0:ca66419d3b8b 6 *
lachu 0:ca66419d3b8b 7 * EVRYTHNG provides this source code "as is" and without warranty of any kind,
lachu 0:ca66419d3b8b 8 * and hereby disclaims all express or implied warranties, including without
lachu 0:ca66419d3b8b 9 * limitation warranties of merchantability, fitness for a particular purpose,
lachu 0:ca66419d3b8b 10 * performance, accuracy, reliability, and non-infringement.
lachu 0:ca66419d3b8b 11 *
lachu 0:ca66419d3b8b 12 * Author: Michel Yerly
lachu 0:ca66419d3b8b 13 *
lachu 0:ca66419d3b8b 14 */
lachu 0:ca66419d3b8b 15 #include "mbed.h"
lachu 0:ca66419d3b8b 16 #include "eventqueue.h"
lachu 0:ca66419d3b8b 17 #include <time.h>
lachu 0:ca66419d3b8b 18
lachu 0:ca66419d3b8b 19 #include "util.h"
lachu 0:ca66419d3b8b 20
lachu 0:ca66419d3b8b 21 void EventQueue::put(int64_t time, EventType type)
lachu 0:ca66419d3b8b 22 {
lachu 0:ca66419d3b8b 23 Event event;
lachu 0:ca66419d3b8b 24 event.time = time;
lachu 0:ca66419d3b8b 25 event.type = type;
lachu 0:ca66419d3b8b 26 queue.push(event);
lachu 0:ca66419d3b8b 27 }
lachu 0:ca66419d3b8b 28
lachu 0:ca66419d3b8b 29 EventType EventQueue::waitNext(int64_t currentTime)
lachu 0:ca66419d3b8b 30 {
lachu 0:ca66419d3b8b 31 Event event = queue.top();
lachu 0:ca66419d3b8b 32 queue.pop();
lachu 0:ca66419d3b8b 33 int64_t w = event.time - currentTime;
lachu 0:ca66419d3b8b 34 if (w > 0) wait_ms(w);
lachu 0:ca66419d3b8b 35 return event.type;
lachu 0:ca66419d3b8b 36 }
lachu 0:ca66419d3b8b 37
lachu 0:ca66419d3b8b 38 bool EventQueue::empty()
lachu 0:ca66419d3b8b 39 {
lachu 0:ca66419d3b8b 40 return queue.empty();
lachu 0:ca66419d3b8b 41 }
lachu 0:ca66419d3b8b 42
lachu 0:ca66419d3b8b 43 int EventQueue::size()
lachu 0:ca66419d3b8b 44 {
lachu 0:ca66419d3b8b 45 return queue.size();
lachu 0:ca66419d3b8b 46 }