Committer:
okini3939
Date:
Sun Jun 26 12:01:49 2011 +0000
Revision:
3:d76eb9986be8
Parent:
2:24471619232e

        

Who changed what in which revision?

UserRevisionLine numberNew 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