CMGDK r49-rc2
|
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^\'`(uG 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