CMGDK r49-rc2
|
00001 # i f n d e f H G L _ M A C R O _ I N C L U D E 00002 00003 # d e f i n e H G L _ M A C R O _ I N C L U D E 00004 00005 n a m e s p a c e h g l 00006 00007 { 00008 00009 # d e f i n e N E W _ N U L L _ A R R A Y ( n a m e , t y p e , c o u n t ) { \ 00010 00011 n a m e = n e w t y p e [ c o u n t ] ; \ 00012 00013 \ 00014 00015 m e m s e t ( n a m e , 0 , s i z e o f ( t y p e ) * c o u n t ) ; \ 00016 00017 } 00018 00019 00020 00021 # d e f i n e S A F E _ C L E A R ( n a m e ) { \ 00022 00023 i f ( n a m e ) \ 00024 00025 { \ 00026 00027 d e l e t e n a m e ; \ 00028 00029 n a m e = N U L L ; \ 00030 00031 } \ 00032 00033 } 00034 00035 00036 00037 # d e f i n e S A F E _ C L E A R _ A R R A Y ( n a m e ) { \ 00038 00039 i f ( n a m e ) \ 00040 00041 { \ 00042 00043 d e l e t e [ ] n a m e ; \ 00044 00045 n a m e = N U L L ; \ 00046 00047 } \ 00048 00049 } 00050 00051 00052 00053 # d e f i n e S A F E _ C L E A R _ O B J E C T _ A R R A Y ( n a m e , n u m ) { \ 00054 00055 i f ( n a m e & & n u m > = 0 ) \ 00056 00057 { \ 00058 00059 i n t s a f e _ c l e a r _ o b j e c t _ a r r a y _ n u m b e r = n u m ; \ 00060 00061 \ 00062 00063 w h i l e ( s a f e _ c l e a r _ o b j e c t _ a r r a y _ n u m b e r - - ) \ 00064 00065 i f ( n a m e [ s a f e _ c l e a r _ o b j e c t _ a r r a y _ n u m b e r ] ) \ 00066 00067 d e l e t e n a m e [ s a f e _ c l e a r _ o b j e c t _ a r r a y _ n u m b e r ] ; \ 00068 00069 \ 00070 00071 d e l e t e [ ] n a m e ; \ 00072 00073 n a m e = N U L L ; \ 00074 00075 } \ 00076 00077 } 00078 00079 00080 00081 # d e f i n e F R E E _ O B J E C T _ A R R A Y ( n a m e , n u m ) { \ 00082 00083 i f ( n a m e & & n u m > = 0 ) \ 00084 00085 { \ 00086 00087 i n t f r e e _ o b j e c t _ a r r a y _ n u m b e r = n u m ; \ 00088 00089 \ 00090 00091 w h i l e ( f r e e _ o b j e c t _ a r r a y _ n u m b e r - - ) \ 00092 00093 i f ( n a m e [ f r e e _ o b j e c t _ a r r a y _ n u m b e r ] ) \ 00094 00095 d e l e t e n a m e [ f r e e _ o b j e c t _ a r r a y _ n u m b e r ] ; \ 00096 00097 \ 00098 00099 h g l _ f r e e ( n a m e ) ; \ 00100 00101 n a m e = N U L L ; \ 00102 00103 } \ 00104 00105 } 00106 00107 00108 00109 # d e f i n e S A F E _ F R E E _ O B J E C T _ A R R A Y ( n a m e , n u m ) { \ 00110 00111 i f ( n a m e ) \ 00112 00113 F R E E _ O B J E C T _ A R R A Y ( n a m e , n u m ) ; \ 00114 00115 } 00116 00117 00118 00119 # d e f i n e S A F E _ R E C R E A T E ( n a m e , c o d e ) { \ 00120 00121 i f ( n a m e ) \ 00122 00123 d e l e t e n a m e ; \ 00124 00125 \ 00126 00127 n a m e = c o d e ; \ 00128 00129 } 00130 00131 00132 00133 # d e f i n e A R R A Y _ C A L L ( n a m e , n u m , c o d e ) { \ 00134 00135 i n t a r r a y _ c a l l _ n u m b e r = n u m ; \ 00136 00137 \ 00138 00139 w h i l e ( a r r a y _ c a l l _ n u m b e r - - ) \ 00140 00141 n a m e [ a r r a y _ c a l l _ n u m b e r ] - > c o d e ; \ 00142 00143 } 00144 00145 00146 00147 # d e f i n e L O A D _ F U N C ( t y p e , f u n c ) t y p e f u n c ( v o i d * b u f , i n t b u f _ s i z e ) \ 00148 00149 { \ 00150 00151 i f ( ! b u f | | b u f _ s i z e < = 0 ) r e t u r n 0 ; \ 00152 00153 \ 00154 00155 M e m S t r e a m m s ( b u f , b u f _ s i z e ) ; \ 00156 00157 \ 00158 00159 r e t u r n ( f u n c ( & m s ) ) ; \ 00160 00161 } \ 00162 00163 \ 00164 00165 t y p e f u n c ( c o n s t W i d e S t r i n g & f i l e n a m e ) \ 00166 00167 { \ 00168 00169 F i l e S t r e a m f s ; \ 00170 00171 \ 00172 00173 i f ( f s . O p e n ( f i l e n a m e ) ) \ 00174 00175 r e t u r n ( f u n c ( & f s ) ) ; \ 00176 00177 e l s e \ 00178 00179 r e t u r n 0 ; \ 00180 00181 } \ 00182 00183 \ 00184 00185 t y p e f u n c ( H A C * h a c , c o n s t W i d e S t r i n g & f i l e n a m e ) \ 00186 00187 { \ 00188 00189 i f ( ! h a c ) r e t u r n 0 ; \ 00190 00191 \ 00192 00193 S t r e a m * s = h a c - > L o a d F i l e ( f i l e n a m e ) ; \ 00194 00195 \ 00196 00197 i f ( s ) \ 00198 00199 { \ 00200 00201 t y p e r e s u l t = f u n c ( s ) ; \ 00202 00203 \ 00204 00205 d e l e t e s ; \ 00206 00207 r e t u r n ( r e s u l t ) ; \ 00208 00209 } \ 00210 00211 \ 00212 00213 r e t u r n 0 ; \ 00214 00215 } 00216 00217 00218 00219 # d e f i n e S A V E _ F U N C ( t y p e , f u n c ) b o o l f u n c ( t y p e d a t a , v o i d * b u f , i n t b u f _ s i z e ) \ 00220 00221 { \ 00222 00223 i f ( ! b u f | | b u f _ s i z e < = 0 ) r e t u r n ( f a l s e ) ; \ 00224 00225 \ 00226 00227 M e m S t r e a m m s ( b u f , b u f _ s i z e ) ; \ 00228 00229 \ 00230 00231 r e t u r n ( f u n c ( d a t a , & m s ) ) ; \ 00232 00233 } \ 00234 00235 \ 00236 00237 b o o l f u n c ( t y p e d a t a , c o n s t W i d e S t r i n g & f i l e n a m e ) \ 00238 00239 { \ 00240 00241 F i l e S t r e a m f s ; \ 00242 00243 \ 00244 00245 i f ( f s . C r e a t e ( f i l e n a m e ) ) \ 00246 00247 r e t u r n ( f u n c ( d a t a , & f s ) ) ; \ 00248 00249 e l s e \ 00250 00251 r e t u r n ( f a l s e ) ; \ 00252 00253 } 00254 00255 } / / n a m e s p a c e h g l 00256 00257 # e n d i f / / H G L _ M A C R O _ I N C L U D E 00258 00259