Sample code that uses EvrythngApi library.

Dependencies:   EvrythngApi mbed

Committer:
vladounet
Date:
Thu Aug 30 13:57:45 2012 +0000
Revision:
0:85d6be554642
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
vladounet 0:85d6be554642 1 /*
vladounet 0:85d6be554642 2 * (c) Copyright 2012 EVRYTHNG Ltd London / Zurich
vladounet 0:85d6be554642 3 * www.evrythng.com
vladounet 0:85d6be554642 4 *
vladounet 0:85d6be554642 5 * --- DISCLAIMER ---
vladounet 0:85d6be554642 6 *
vladounet 0:85d6be554642 7 * EVRYTHNG provides this source code "as is" and without warranty of any kind,
vladounet 0:85d6be554642 8 * and hereby disclaims all express or implied warranties, including without
vladounet 0:85d6be554642 9 * limitation warranties of merchantability, fitness for a particular purpose,
vladounet 0:85d6be554642 10 * performance, accuracy, reliability, and non-infringement.
vladounet 0:85d6be554642 11 *
vladounet 0:85d6be554642 12 * Author: Michel Yerly
vladounet 0:85d6be554642 13 *
vladounet 0:85d6be554642 14 */
vladounet 0:85d6be554642 15 #include <queue>
vladounet 0:85d6be554642 16 #include <stdint.h>
vladounet 0:85d6be554642 17
vladounet 0:85d6be554642 18 enum EventType {
vladounet 0:85d6be554642 19 EVT_SET_PROP,
vladounet 0:85d6be554642 20 EVT_GET_PROP
vladounet 0:85d6be554642 21 };
vladounet 0:85d6be554642 22
vladounet 0:85d6be554642 23 struct Event {
vladounet 0:85d6be554642 24 int64_t time;
vladounet 0:85d6be554642 25 EventType type;
vladounet 0:85d6be554642 26 };
vladounet 0:85d6be554642 27
vladounet 0:85d6be554642 28 class EventComparison
vladounet 0:85d6be554642 29 {
vladounet 0:85d6be554642 30 public:
vladounet 0:85d6be554642 31 bool operator() (const Event& lhs, const Event&rhs) const {
vladounet 0:85d6be554642 32 return (lhs.time>rhs.time);
vladounet 0:85d6be554642 33 }
vladounet 0:85d6be554642 34 };
vladounet 0:85d6be554642 35
vladounet 0:85d6be554642 36 class EventQueue
vladounet 0:85d6be554642 37 {
vladounet 0:85d6be554642 38 public:
vladounet 0:85d6be554642 39 void put(int64_t time, EventType type);
vladounet 0:85d6be554642 40 EventType waitNext(int64_t currentTime);
vladounet 0:85d6be554642 41 bool empty();
vladounet 0:85d6be554642 42 int size();
vladounet 0:85d6be554642 43 private:
vladounet 0:85d6be554642 44 std::priority_queue<Event, std::vector<Event>, EventComparison> queue;
vladounet 0:85d6be554642 45 };