CMGDK r49-rc2
K:/CMGDKv18/SDK/Include/hgl/platform/compiler/Property.H
浏览该文件的文档。
00001 # i f n d e f   H G L _ P R O P E R T Y _ I N C L U D E 
00002  
00003  # d e f i n e   H G L _ P R O P E R T Y _ I N C L U D E 
00004  
00005  
00006  
00007  # i n c l u d e < h g l / p l a t f o r m / c o m p i l e r / E v e n t F u n c . 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      t e m p l a t e < t y p e n a m e   T >   c l a s s   P r o p e r t y 
00016  
00017      { 
00018  
00019      p u b l i c : 
00020  
00021  
00022  
00023          D e f E v e n t ( T , G e t , ( ) ) ; 
00024  
00025          D e f E v e n t ( v o i d , S e t , ( T ) ) ; 
00026  
00027  
00028  
00029      p u b l i c : 
00030  
00031  
00032  
00033          P r o p e r t y ( ) 
00034  
00035          { 
00036  
00037              G e t = 0 ; 
00038  
00039              S e t = 0 ; 
00040  
00041          } 
00042  
00043  
00044  
00045          v i r t u a l   ~ P r o p e r t y ( )   { } 
00046  
00047  
00048  
00049          o p e r a t o r   T ( )   c o n s t 
00050  
00051          { 
00052  
00053              # i f d e f   _ D E B U G 
00054  
00055                  # i f d e f   _ _ B O R L A N D C _ _ 
00056  
00057                  i f ( G e t = = 0 ) 
00058  
00059                  # e l s e 
00060  
00061                  i f ( G e t . o m f = = 0 ) 
00062  
00063                  # e n d i f / / 
00064  
00065                      P u t E r r o r ( L " v^\'`(uG e t = = N U L L " ) ; 
00066  
00067              # e n d i f / / 
00068  
00069  
00070  
00071              r e t u r n   C a l l E v e n t ( G e t , ( ) ) ; 
00072  
00073          } 
00074  
00075          
00076  
00077          v o i d   o p e r a t o r   =   ( T   v ) 
00078  
00079          { 
00080  
00081              C a l l E v e n t ( S e t , ( v ) ) ; 
00082  
00083          } 
00084  
00085  
00086  
00087          v o i d   o p e r a t o r   =   ( c o n s t   P r o p e r t y < T >   & v ) 
00088  
00089          { 
00090  
00091                      C a l l E v e n t ( S e t , ( v . o p e r a t o r   T ( ) ) ) ; 
00092  
00093          } 
00094  
00095  
00096  
00097                  T   o p e r a t o r   ! ( ) {   r e t u r n   ! ( o p e r a t o r   T ( ) ) ; } 
00098  
00099                  T   o p e r a t o r   ~ ( ) {   r e t u r n   ~ ( o p e r a t o r   T ( ) ) ; } 
00100  
00101  
00102  
00103          T   o p e r a t o r   + +   ( )     {   T   v = o p e r a t o r   T ( ) ;       C a l l E v e n t ( S e t , ( + + v ) ) ;       r e t u r n   v ;   }                       / / / < MRn+ + 
00104  
00105          T   o p e r a t o r   - -   ( )     {   T   v = o p e r a t o r   T ( ) ;       C a l l E v e n t ( S e t , ( - - v ) ) ;   r e t u r n   v ;       }                       / / / < MRn- - 
00106  
00107  
00108  
00109          T   o p e r a t o r   + +   ( i n t )   {   T   r , v ;     v = o p e r a t o r   T ( ) ;   r = v ;   C a l l E v e n t ( S e t , ( + + v ) ) ;   r e t u r n   r ;     }       / / / < Tn+ + 
00110  
00111          T   o p e r a t o r   - -   ( i n t )   {   T   r , v ;     v = o p e r a t o r   T ( ) ;   r = v ;   C a l l E v e n t ( S e t , ( - - v ) ) ;   r e t u r n   r ;     }       / / / < Tn- - 
00112  
00113  
00114  
00115          T   o p e r a t o r   > >   ( i n t   n )   {   r e t u r n   ( o p e r a t o r   T ( ) ) > > n ; } 
00116  
00117          T   o p e r a t o r   < <   ( i n t   n )   {   r e t u r n   ( o p e r a t o r   T ( ) ) < < n ; } 
00118  
00119  
00120  
00121          v o i d   o p e r a t o r   + =   ( T   v )     {   i f ( v ) { C a l l E v e n t ( S e t , ( o p e r a t o r   T ( )   +   v ) ) ; }   } 
00122  
00123          v o i d   o p e r a t o r   - =   ( T   v )     {   i f ( v ) { C a l l E v e n t ( S e t , ( o p e r a t o r   T ( )   -   v ) ) ; }   } 
00124  
00125          v o i d   o p e r a t o r   * =   ( T   v )     {   C a l l E v e n t ( S e t , ( o p e r a t o r   T ( )   *   v ) ) ;     } 
00126  
00127          v o i d   o p e r a t o r   / =   ( T   v )     {   C a l l E v e n t ( S e t , ( o p e r a t o r   T ( )   /   v ) ) ;     } 
00128  
00129          v o i d   o p e r a t o r   % =   ( T   v )     {   C a l l E v e n t ( S e t , ( o p e r a t o r   T ( )   %   v ) ) ;     } 
00130  
00131  
00132  
00133                  v o i d   o p e r a t o r   & =   ( T   v )     {   C a l l E v e n t ( S e t , ( o p e r a t o r   T ( )   &   v ) ) ;     } 
00134  
00135                  v o i d   o p e r a t o r   | =   ( T   v )     {   C a l l E v e n t ( S e t , ( o p e r a t o r   T ( )   |   v ) ) ;     } 
00136  
00137  
00138  
00139          v o i d   o p e r a t o r   > > =   ( i n t   n )   {   C a l l E v e n t ( S e t , ( ( o p e r a t o r   T ( ) ) > > n ) ) ; } 
00140  
00141          v o i d   o p e r a t o r   < < =   ( i n t   n )   {   C a l l E v e n t ( S e t , ( ( o p e r a t o r   T ( ) ) < < n ) ) ; } 
00142  
00143      } ; / / c l a s s   P r o p e r t y 
00144  
00145  
00146  
00147      t e m p l a t e < t y p e n a m e   T >   c l a s s   P r o p e r t y O b j e c t : p u b l i c   P r o p e r t y < T   * > 
00148  
00149      { 
00150  
00151      p u b l i c : 
00152  
00153  
00154  
00155          T   * o p e r a t o r   - > ( ) c o n s t 
00156  
00157          { 
00158  
00159              r e t u r n   C a l l E v e n t ( P r o p e r t y < T   * > : : G e t , ( ) ) ; 
00160  
00161          } 
00162  
00163  
00164  
00165          v o i d   o p e r a t o r   = ( v o i d   * p o i n t e r ) 
00166  
00167          { 
00168  
00169                          C a l l E v e n t ( P r o p e r t y < T   * > : : S e t , ( ( T   * ) p o i n t e r ) ) ; 
00170  
00171          } 
00172  
00173      } ; / / c l a s s   P r o p e r t y O b j e c t 
00174  
00175  
00176  
00177      # i f d e f   _ _ B O R L A N D C _ _ 
00178  
00179          # d e f i n e   h g l S e t P r o p e r t y R e a d ( n a m e , t p , g e t )       { n a m e . G e t = t p - > g e t ; } 
00180  
00181          # d e f i n e   h g l S e t P r o p e r t y W r i t e ( n a m e , t p , s e t )     { n a m e . S e t = t p - > s e t ; } 
00182  
00183      # e l s e 
00184  
00185          # d e f i n e   h g l S e t P r o p e r t y R e a d ( n a m e , t p , g e t )       {   \ 
00186  
00187                                                          n a m e . G e t . v p _ t h i s = t p ;     \ 
00188  
00189                                                          n a m e . G e t . o m f = O b j e c t M e m b e r F u n c ( & g e t ) ;     \ 
00190  
00191                                                      } 
00192  
00193  
00194  
00195          # d e f i n e   h g l S e t P r o p e r t y W r i t e ( n a m e , t p , s e t )     {   \ 
00196  
00197                                                          n a m e . S e t . v p _ t h i s = t p ;     \ 
00198  
00199                                                          n a m e . S e t . o m f = O b j e c t M e m b e r F u n c ( & s e t ) ;     \ 
00200  
00201                                                      } 
00202  
00203      # e n d i f / / 
00204  
00205  
00206  
00207          # d e f i n e   h g l S e t P r o p e r t y ( n a m e , t p , g e t , s e t )       {   \ 
00208  
00209                                                          h g l S e t P r o p e r t y R e a d ( n a m e , t p , g e t ) ;     \ 
00210  
00211                                                          h g l S e t P r o p e r t y W r i t e ( n a m e , t p , s e t ) ;   \ 
00212  
00213                                                                                                      } 
00214  
00215  } / / n a m e s p a c e   h g l 
00216  
00217  # e n d i f / / H G L _ P R O P E R T Y _ I N C L U D E 
00218  
00219  
 全部  名字空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义