CMGDK r49-rc2
|
00001 # i f n d e f H G L _ I N D E X _ D A T A _ I N C L U D E 00002 00003 # d e f i n e H G L _ I N D E X _ D A T A _ 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 / L i s t . H > 00008 00009 # i n c l u d e < h g l / L o g I n f o . H > 00010 00011 n a m e s p a c e h g l 00012 00013 { 00014 00015 c l a s s S t r e a m ; 00016 00017 c l a s s T D F N o d e ; 00018 00019 00020 00021 t e m p l a t e < t y p e n a m e F , t y p e n a m e T > s t r u c t I n d e x F l a g D a t a 00022 00023 { 00024 00025 F f l a g ; 00026 00027 T d a t a ; 00028 00029 } ; / / s t r u c t I n d e x F l a g D a t a 00030 00031 00032 00033 / * * 00034 00035 * "}_penc!jg 00036 00037 * / 00038 00039 t e m p l a t e < t y p e n a m e F , t y p e n a m e T , t y p e n a m e d a t a _ s t r u c t > c l a s s _ I n d e x D a t a : p u b l i c _ O b j e c t 00040 00041 { 00042 00043 p u b l i c : / / {|W 00044 00045 00046 00047 t y p e d e f d a t a _ s t r u c t D a t a S t r u c t ; 00048 00049 00050 00051 p r o t e c t e d : 00052 00053 00054 00055 O b j e c t L i s t < D a t a S t r u c t > d a t a _ l i s t ; 00056 00057 00058 00059 t y p e d e f _ I n d e x D a t a < F , T , D a t a S t r u c t > t h i s _ c a l s s ; 00060 00061 00062 00063 p r o t e c t e d : 00064 00065 00066 00067 i n t F i n d P o s ( c o n s t F & ) c o n s t ; 00068 00069 00070 00071 i n t G e t C o u n t ( ) { r e t u r n d a t a _ l i s t . C o u n t ; } / / / < S_penc;`ϑ 00072 00073 00074 00075 p u b l i c : / / ^\'` 00076 00077 00078 00079 P r o p e r t y < i n t > C o u n t ; / / / < penc*Npe 00080 00081 00082 00083 p u b l i c : / / NN 00084 00085 00086 00087 b o o l ( * O n S a v e T o S t r e a m ) ( S t r e a m * , c o n s t F & , T & ) ; / / / < OX[0RAmNN 00088 00089 b o o l ( * O n L o a d F r o m S t r e a m ) ( S t r e a m * , F & , T & ) ; / / / < NAmR}NN 00090 00091 00092 00093 p u b l i c : / / el 00094 00095 00096 00097 _ I n d e x D a t a ( ) ; 00098 00099 v i r t u a l ~ _ I n d e x D a t a ( ) { } ; 00100 00101 00102 00103 D a t a S t r u c t * A d d ( c o n s t F & , c o n s t T & ) ; / / / < mR N*Npenc 00104 00105 T & A d d ( c o n s t F & ) ; / / / < mR N*Npenc 00106 00107 v o i d A d d ( D a t a S t r u c t * ) ; / / / < mR N*Npenc 00108 00109 i n t F i n d ( c o n s t F & ) c o n s t ; / / / < g~bpenc/f&TX[(W 00110 00111 i n t F i n d B y D a t a ( c o n s t T & ) c o n s t ; / / / < g~bpenc/f&TX[(W 00112 00113 v i r t u a l b o o l G e t ( c o n s t F & , T & ) c o n s t ; / / / < S_penc 00114 00115 v i r t u a l v o i d S e t ( c o n s t F & , T & ) ; / / / < npenc( Y 00116 NX[(WRR^) 00117 00118 v i r t u a l b o o l U n l i n k ( c o n s t F & , T & ) ; / / / < \c[pencNRh-NydFOv^ 00119 N Rdُ*Npenc 00120 00121 v i r t u a l b o o l U n l i n k B y I n d e x ( c o n s t F & ) ; / / / < 9hnc"}_\c[pencNRh-NydFOv^ 00122 N Rdُ*Npenc 00123 00124 v i r t u a l b o o l U n l i n k B y D a t a ( c o n s t T & ) ; / / / < 9hncpenc\c[pencNRh-NydFOv^ 00125 N Rdُ*Npenc 00126 00127 v i r t u a l b o o l U n l i n k B y S e r i a l ( i n t ) ; / / / < 9hnc^S\c[pencNRh-NydFOv^ 00128 N Rdُ*Npenc 00129 00130 v i r t u a l v o i d U n l i n k A l l ( ) ; / / / < \@b gpencNRh-NydFOv^ 00131 N Rdpenc 00132 00133 v i r t u a l b o o l D e l e t e B y I n d e x ( c o n s t F & ) ; / / / < Rd N*Npenc( c"}_) 00134 00135 v i r t u a l b o o l D e l e t e B y D a t a ( T & ) ; / / / < Rd N*Npenc( cpenc) 00136 00137 v i r t u a l b o o l D e l e t e B y S e r i a l ( i n t ) ; / / / < Rd N*Npenc( c^S) 00138 00139 v i r t u a l v o i d D e l e t e A l l ( ) ; / / / < Rd@b gpenc 00140 00141 v i r t u a l b o o l C h a n g e ( c o n s t F & , T & ) ; / / / < f9e N*NpencvQ[( Y 00142 NX[(WRf9e1YHe) 00143 00144 v i r t u a l v o i d C l e a r ( ) ; / / / < nd@b gpenc 00145 00146 00147 00148 D a t a S t r u c t * G e t I t e m ( i n t n ) c o n s t { r e t u r n d a t a _ l i s t [ n ] ; } / / / < Sc[^Svpenc 00149 00150 b o o l G e t ( i n t , F & , T & ) c o n s t ; / / / < Sc[^Svpenc 00151 00152 b o o l G e t I n d e x ( i n t , F & ) c o n s t ; / / / < Sc[^Sv"}_ 00153 00154 b o o l G e t D a t a ( i n t , T & ) c o n s t ; / / / < Sc[^Svpenc 00155 00156 00157 00158 b o o l S a v e T o S t r e a m ( S t r e a m * ) c o n s t ; / / / < OX[0RAm 00159 00160 b o o l L o a d F r o m S t r e a m ( S t r e a m * ) ; / / / < NAmR} 00161 00162 00163 00164 b o o l S a v e T o F i l e ( c o n s t w c h a r _ t * ) c o n s t ; / / / < OX[0ReN 00165 00166 b o o l L o a d F r o m F i l e ( c o n s t w c h a r _ t * ) ; / / / < NeNR} 00167 00168 00169 00170 v o i d o p e r a t o r = ( c o n s t _ I n d e x D a t a < F , T , D a t a S t r u c t > & ) ; / / / < d\O&{͑} 00171 Y6R N*NRh 00172 00173 } ; / / c l a s s _ I n d e x D a t a 00174 00175 00176 00177 t e m p l a t e < t y p e n a m e F , t y p e n a m e T > c l a s s I n d e x D a t a : p u b l i c _ I n d e x D a t a < F , T , I n d e x F l a g D a t a < F , T > > 00178 00179 { 00180 00181 p u b l i c : 00182 00183 00184 00185 t y p e d e f I n d e x F l a g D a t a < F , T > I n d e x I t e m ; 00186 00187 00188 00189 p u b l i c : 00190 00191 00192 00193 v i r t u a l ~ I n d e x D a t a ( ) { } ; 00194 00195 } ; / / c l a s s I n d e x D a t a 00196 00197 00198 00199 t e m p l a t e < t y p e n a m e F , t y p e n a m e T , t y p e n a m e d a t a _ s t r u c t > c l a s s _ I n d e x O b j e c t : p u b l i c _ I n d e x D a t a < F , T * , d a t a _ s t r u c t > 00200 00201 { 00202 00203 p r o t e c t e d : 00204 00205 00206 00207 i n t F i n d B y D a t a ( T * ) c o n s t ; 00208 00209 00210 00211 / / v i r t u a l T * C r e a t e O b j e c t ( c o n s t F & ) = 0 ; / / / < R^ N*NpencFO 00212 NReQRh 00213 00214 v i r t u a l v o i d D e l e t e O b j e c t ( c o n s t F & , T * ) = 0 ; / / / < Rd N*Npenc 00215 00216 00217 00218 p u b l i c : 00219 00220 00221 00222 _ I n d e x O b j e c t ( ) { } ; 00223 00224 v i r t u a l ~ _ I n d e x O b j e c t ( ) 00225 00226 { 00227 00228 i f ( C o u n t > 0 ) 00229 00230 P u t E r r o r ( L " ُ/f N*N%N͑vz^ONu~ZQpe(u(W>mu{|vggQpe-N(uC l e a r QpeNndpenc0" ) ; 00231 00232 } 00233 00234 00235 00236 / / T * C r e a t e ( c o n s t F & ) ; 00237 00238 v o i d S e t ( c o n s t F & , T * ) ; 00239 00240 b o o l D e l e t e B y I n d e x ( c o n s t F & ) ; 00241 00242 b o o l D e l e t e B y D a t a ( T * ) ; 00243 00244 b o o l D e l e t e B y S e r i a l ( i n t ) ; 00245 00246 v o i d D e l e t e A l l ( ) ; 00247 00248 b o o l C h a n g e ( c o n s t F & , T * ) ; 00249 00250 v o i d C l e a r ( ) { D e l e t e A l l ( ) ; } 00251 00252 } ; / / c l a s s _ I n d e x O b j e c t 00253 00254 00255 00256 t e m p l a t e < t y p e n a m e F , t y p e n a m e T , t y p e n a m e d a t a _ s t r u c t > c l a s s C u s I n d e x O b j e c t : p u b l i c _ I n d e x O b j e c t < F , T , d a t a _ s t r u c t > 00257 00258 { 00259 00260 p r o t e c t e d : 00261 00262 00263 00264 / / v i r t u a l T * C r e a t e O b j e c t ( c o n s t F & ) { r e t u r n ( n e w T ) ; } / / / < R^ N*Npenc 00265 00266 v i r t u a l v o i d D e l e t e O b j e c t ( c o n s t F & , T * o b j ) { d e l e t e o b j ; } / / / < Rd N*Npenc 00267 00268 00269 00270 p u b l i c : 00271 00272 00273 00274 v i r t u a l ~ C u s I n d e x O b j e c t ( ) { C l e a r ( ) ; } 00275 00276 } ; / / c l a s s C u s I n d e x O b j e c t 00277 00278 00279 00280 t e m p l a t e < t y p e n a m e F , t y p e n a m e T > c l a s s I n d e x O b j e c t : p u b l i c C u s I n d e x O b j e c t < F , T , I n d e x F l a g D a t a < F , T * > > 00281 00282 { 00283 00284 p u b l i c : 00285 00286 00287 00288 v i r t u a l ~ I n d e x O b j e c t ( ) { C l e a r ( ) ; } 00289 00290 00291 00292 T * o p e r a t o r [ ] ( c o n s t F & f l a g ) c o n s t 00293 00294 { 00295 00296 T * o b j ; 00297 00298 00299 00300 i f ( G e t ( f l a g , o b j ) ) 00301 00302 r e t u r n ( o b j ) ; 00303 00304 e l s e 00305 00306 r e t u r n ( N U L L ) ; 00307 00308 } ; 00309 00310 } ; / / c l a s s I n d e x O b j e c t 00311 00312 } / / n a m e s p a c e h g l 00313 00314 # i n c l u d e < h g l / t y p e / I n d e x D a t a . C P P > 00315 00316 # e n d i f / / H G L _ I N D E X _ D A T A _ I N C L U D E 00317 00318