Stack.h@3:d76eb9986be8, 2011-06-26 (annotated)
- Committer:
- okini3939
- Date:
- Sun Jun 26 12:01:49 2011 +0000
- Revision:
- 3:d76eb9986be8
- Parent:
- 2:24471619232e
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
okini3939 | 0:b265e22ddece | 1 | /* |
okini3939 | 0:b265e22ddece | 2 | * mbed library for Stack |
okini3939 | 0:b265e22ddece | 3 | * Copyright (c) 2011 Hiroshi Suga |
okini3939 | 0:b265e22ddece | 4 | * Released under the MIT License: http://mbed.org/license/mit |
okini3939 | 0:b265e22ddece | 5 | */ |
okini3939 | 0:b265e22ddece | 6 | |
okini3939 | 0:b265e22ddece | 7 | /** @file Stack.h |
okini3939 | 0:b265e22ddece | 8 | * @brief Stack |
okini3939 | 0:b265e22ddece | 9 | */ |
okini3939 | 0:b265e22ddece | 10 | |
okini3939 | 0:b265e22ddece | 11 | #ifndef Stack_H |
okini3939 | 0:b265e22ddece | 12 | #define Stack_H |
okini3939 | 0:b265e22ddece | 13 | |
okini3939 | 0:b265e22ddece | 14 | #include "mbed.h" |
okini3939 | 0:b265e22ddece | 15 | |
okini3939 | 0:b265e22ddece | 16 | /** Stack class |
okini3939 | 0:b265e22ddece | 17 | */ |
okini3939 | 3:d76eb9986be8 | 18 | template <class T> |
okini3939 | 0:b265e22ddece | 19 | class Stack { |
okini3939 | 0:b265e22ddece | 20 | public: |
okini3939 | 0:b265e22ddece | 21 | /** init Stack class |
okini3939 | 0:b265e22ddece | 22 | * @param p_size size of stack |
okini3939 | 0:b265e22ddece | 23 | */ |
okini3939 | 0:b265e22ddece | 24 | Stack (int p_size); |
okini3939 | 0:b265e22ddece | 25 | ~Stack (); |
okini3939 | 0:b265e22ddece | 26 | |
okini3939 | 0:b265e22ddece | 27 | /** push to stack |
okini3939 | 0:b265e22ddece | 28 | * @param dat data |
okini3939 | 0:b265e22ddece | 29 | * @return data or -1:error |
okini3939 | 0:b265e22ddece | 30 | */ |
okini3939 | 3:d76eb9986be8 | 31 | int push (T dat); |
okini3939 | 0:b265e22ddece | 32 | |
okini3939 | 0:b265e22ddece | 33 | /** pop from stack |
okini3939 | 0:b265e22ddece | 34 | * @param dat data |
okini3939 | 0:b265e22ddece | 35 | * @return 0:ok / -1:error |
okini3939 | 0:b265e22ddece | 36 | */ |
okini3939 | 3:d76eb9986be8 | 37 | int pop (T *dat); |
okini3939 | 0:b265e22ddece | 38 | |
okini3939 | 3:d76eb9986be8 | 39 | int read (T *dat); |
okini3939 | 1:6385db13c2d6 | 40 | |
okini3939 | 0:b265e22ddece | 41 | void clear (); |
okini3939 | 0:b265e22ddece | 42 | int available (); |
okini3939 | 0:b265e22ddece | 43 | int use (); |
okini3939 | 0:b265e22ddece | 44 | |
okini3939 | 0:b265e22ddece | 45 | private: |
okini3939 | 3:d76eb9986be8 | 46 | T *buf; |
okini3939 | 0:b265e22ddece | 47 | int size; |
okini3939 | 0:b265e22ddece | 48 | int addr; |
okini3939 | 0:b265e22ddece | 49 | }; |
okini3939 | 0:b265e22ddece | 50 | |
okini3939 | 0:b265e22ddece | 51 | #endif |