Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of com by
queue/queue.h@15:3f742edaa359, 2014-08-27 (annotated)
- Committer:
- oprospero
- Date:
- Wed Aug 27 06:20:23 2014 +0000
- Revision:
- 15:3f742edaa359
- Parent:
- 0:26a151d2c6db
Changed to new controls.; Off load code from RX callback to main loop
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| oprospero | 0:26a151d2c6db | 1 | /**************************** queue.h ****************************************/ |
| oprospero | 0:26a151d2c6db | 2 | /* */ |
| oprospero | 0:26a151d2c6db | 3 | /* Authers: Greg Abdo. */ |
| oprospero | 0:26a151d2c6db | 4 | /* Date: February 23, 2013 */ |
| oprospero | 0:26a151d2c6db | 5 | /* Version: 1.0 */ |
| oprospero | 0:26a151d2c6db | 6 | /* */ |
| oprospero | 0:26a151d2c6db | 7 | /* The queue is used to stack StructureItem in order with a FILO arrangement.*/ |
| oprospero | 0:26a151d2c6db | 8 | /*****************************************************************************/ |
| oprospero | 0:26a151d2c6db | 9 | |
| oprospero | 0:26a151d2c6db | 10 | #ifndef QUEUE_H |
| oprospero | 0:26a151d2c6db | 11 | #define QUEUE_H |
| oprospero | 0:26a151d2c6db | 12 | |
| oprospero | 0:26a151d2c6db | 13 | #include "mbed.h" |
| oprospero | 0:26a151d2c6db | 14 | |
| oprospero | 0:26a151d2c6db | 15 | using namespace std; |
| oprospero | 0:26a151d2c6db | 16 | |
| oprospero | 15:3f742edaa359 | 17 | const int MAXQUEUELENGTH = 12; |
| oprospero | 0:26a151d2c6db | 18 | |
| oprospero | 0:26a151d2c6db | 19 | class queue |
| oprospero | 0:26a151d2c6db | 20 | { |
| oprospero | 0:26a151d2c6db | 21 | public: |
| oprospero | 0:26a151d2c6db | 22 | queue(); // Queue constructor |
| oprospero | 0:26a151d2c6db | 23 | ~queue(); // Queue destructor |
| oprospero | 0:26a151d2c6db | 24 | |
| oprospero | 0:26a151d2c6db | 25 | bool isEmpty(); // Check for an empty queue. |
| oprospero | 0:26a151d2c6db | 26 | void clear(); // Clears the entire queue. |
| oprospero | 0:26a151d2c6db | 27 | void add( short* ); // Push commandData into the queue. |
| oprospero | 0:26a151d2c6db | 28 | short* peek(); // Look at the last item in the queue. |
| oprospero | 0:26a151d2c6db | 29 | short* pop(); // Pop the top item off the queue. |
| oprospero | 0:26a151d2c6db | 30 | short queueLength(); // Return how many objects are in the queue. |
| oprospero | 0:26a151d2c6db | 31 | |
| oprospero | 0:26a151d2c6db | 32 | private: |
| oprospero | 0:26a151d2c6db | 33 | int length; |
| oprospero | 0:26a151d2c6db | 34 | |
| oprospero | 0:26a151d2c6db | 35 | struct queueNode // Node object for the queue. |
| oprospero | 0:26a151d2c6db | 36 | { |
| oprospero | 0:26a151d2c6db | 37 | queueNode( short* array ) |
| oprospero | 0:26a151d2c6db | 38 | { |
| oprospero | 0:26a151d2c6db | 39 | data = array; |
| oprospero | 0:26a151d2c6db | 40 | next = NULL; |
| oprospero | 0:26a151d2c6db | 41 | } |
| oprospero | 0:26a151d2c6db | 42 | |
| oprospero | 0:26a151d2c6db | 43 | ~queueNode() |
| oprospero | 0:26a151d2c6db | 44 | {} |
| oprospero | 0:26a151d2c6db | 45 | |
| oprospero | 0:26a151d2c6db | 46 | short* data; // Pointer to the StructureItem object. |
| oprospero | 0:26a151d2c6db | 47 | queueNode * next; // Next node in the queue. |
| oprospero | 0:26a151d2c6db | 48 | }; |
| oprospero | 0:26a151d2c6db | 49 | |
| oprospero | 0:26a151d2c6db | 50 | queueNode * front; // Root of the queue. |
| oprospero | 0:26a151d2c6db | 51 | }; |
| oprospero | 0:26a151d2c6db | 52 | |
| oprospero | 0:26a151d2c6db | 53 | #endif |
