CMGDK r49-rc2
K:/CMGDKv18/SDK/Include/hgl/type/IndexData.H
浏览该文件的文档。
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-NydFOv^
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-NydFOv^
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-NydFOv^
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-NydFOv^
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-NydFOv^
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*NpencFO
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  
 全部  名字空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义