CMGDK r49-rc2
|
00001 # i f n d e f H G L _ Q U E U E _ I N C L U D E 00002 00003 # d e f i n e H G L _ Q U E U E _ I N C L U D E 00004 00005 00006 00007 # i n c l u d e < h g l / t y p e / D a t a T y p e . H > 00008 00009 n a m e s p a c e h g l 00010 00011 { 00012 00013 / * * 00014 00015 * Q u e u e !jg{|(uNOX[ N*NHQۏHQQ0TۏTQvpencR 00016 00017 * 00018 00019 * lُ*N{|؏(WKmՋ-N 00020 NO9eُ*N{|vnNxY gO9ea5u\O0 00021 00022 * / 00023 00024 t e m p l a t e < t y p e n a m e T > c l a s s Q u e u e / / / Rz^penc{| 00025 00026 { 00027 00028 p r o t e c t e d : 00029 00030 00031 00032 i n t m a x _ c o u n t ; 00033 00034 i n t m e m _ c o u n t ; 00035 00036 i n t c o u n t ; 00037 00038 T * i t e m s ; 00039 00040 00041 00042 p r o t e c t e d : 00043 00044 00045 00046 i n t G e t C o u n t ( ) { r e t u r n c o u n t ; } 00047 00048 00049 00050 i n t G e t M a x ( ) { r e t u r n m a x _ c o u n t ; } 00051 00052 v o i d S e t M a x ( i n t ) ; 00053 00054 T G e t I t e m ( i n t n ) { r e t u r n ( n < 0 | | n > = c o u n t ) ? N U L L : i t e m s [ n ] ; } 00055 00056 00057 00058 p u b l i c : / / ^\'` 00059 00060 00061 00062 P r o p e r t y < i n t > C o u n t ; / / / < R-Npencv*Npe 00063 00064 P r o p e r t y < i n t > M a x C o u n t ; / / / < R-Nv g'Ypenc*Npe 00065 00066 00067 00068 p u b l i c : / / el 00069 00070 00071 00072 Q u e u e ( i n t = 0 ) ; 00073 00074 v i r t u a l ~ Q u e u e ( ) ; 00075 00076 00077 00078 b o o l P e e k ( T & ) ; 00079 00080 b o o l P o p ( T & ) ; 00081 00082 b o o l P u s h ( c o n s t T & ) ; 00083 00084 00085 00086 v o i d C l e a r ( ) ; / / / < nd@b gpenc 00087 00088 00089 00090 T o p e r a t o r [ ] ( i n t n ) { r e t u r n G e t I t e m ( n ) ; } 00091 00092 00093 00094 v i r t u a l v o i d o p e r a t o r = ( c o n s t Q u e u e < T > & ) ; 00095 00096 } ; / / t e m p l a t e < t y p e n a m e T > c l a s s Q u e u e 00097 00098 00099 00100 t e m p l a t e < t y p e n a m e T > c l a s s Q u e u e O b j e c t : p u b l i c Q u e u e < T * > / / / Xh[a 00101 00102 { 00103 00104 p u b l i c : 00105 00106 00107 00108 Q u e u e O b j e c t ( i n t n = 0 ) : Q u e u e < T * > ( n ) { } ; 00109 00110 v i r t u a l ~ Q u e u e O b j e c t ( ) { C l e a r ( ) ; } ; 00111 00112 00113 00114 v o i d C l e a r ( ) ; 00115 00116 } ; / / t e m p l a t e < t y p e n a m e T > c l a s s Q u e u e O b j e c t 00117 00118 } / / n a m e s p a c e h g l 00119 00120 # i n c l u d e < h g l / t y p e / Q u e u e . C P P > 00121 00122 # e n d i f / / H G L _ Q U E U E _ I N C L U D E 00123 00124