diff -r f345bda72bc4 -r 43e37759235e Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/stack_8h_source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/stack_8h_source.html Tue Mar 30 16:16:55 2010 +0100 @@ -0,0 +1,81 @@ + + +
+ +00001 +00015 #ifndef STACK_H +00016 #define STACK_H +00017 +00018 /* INCLUDE FILES */ +00019 #include <string.h> +00020 #include "CommanHeader.h" +00021 +00022 +00023 /* +00024 C++ Class that defines Stack +00025 */ +00026 class Stack { +00027 enum +00028 { +00029 EMaxProduction = 1000 +00030 }; +00031 +00032 public: +00033 +00034 Stack() : iStatckTop(-1) +00035 { +00036 } +00037 +00042 ~Stack() +00043 { +00044 ProducedItem* item = NULL; +00045 do +00046 { +00047 item = Pop(); +00048 delete item; +00049 } while(item != NULL); +00050 } +00051 +00060 void Push( ProducedItem* aItem ) +00061 { +00062 //If there is enough space to put item onto stack +00063 if(iStatckTop < EMaxProduction-1) +00064 { +00065 ProducedItem* item = new ProducedItem; +00066 memcpy(item, aItem, sizeof(ProducedItem)); +00067 iItems[++iStatckTop] = item; +00068 } +00069 //else Ignore it! +00070 } +00071 +00082 ProducedItem* Pop() +00083 { +00084 if(iStatckTop != -1) +00085 { +00086 ProducedItem* item = iItems[iStatckTop]; +00087 iItems[iStatckTop--] = NULL; +00088 return item; +00089 } +00090 return NULL; +00091 } +00092 +00093 private: +00094 ProducedItem* iItems[EMaxProduction]; +00095 int iStatckTop; +00096 }; +00097 +00098 #endif /*STACK_H*/ +00099 +00100 /* End of File */ +