CMGDK r49-rc2
|
00001 # i f n d e f D e v i l C o m m a n d H 00002 00003 # d e f i n e D e v i l C o m m a n d H 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 / t y p e / W i d e S t r i n g . H > 00010 00011 # i n c l u d e " a s _ t o k e n i z e r . h " 00012 00013 00014 00015 u s i n g n a m e s p a c e a n g l e _ s c r i p t ; 00016 00017 n a m e s p a c e h g l 00018 00019 { 00020 00021 c l a s s D e v i l E n g i n e ; 00022 00023 c l a s s D e v i l F u n c ; 00024 00025 00026 00027 u n i o n D e v i l S y s t e m F u n c P a r a m / / QpeSpe 00028 00029 { 00030 00031 v o i d * v o i d _ p o i n t e r ; 00032 00033 00034 00035 c h a r c ; 00036 00037 c h a r * s t r ; 00038 00039 w c h a r _ t w c ; 00040 00041 w c h a r _ t * w i d e _ s t r ; 00042 00043 i n t i ; 00044 00045 i n t * i n t _ p o i n t e r ; 00046 00047 u i n t u ; 00048 00049 u i n t * u i n t _ p o i n t e r ; 00050 00051 f l o a t f ; 00052 00053 f l o a t * f l o a t _ p o i n t e r ; 00054 00055 00056 00057 # i f H G L _ C P U = = H G L _ C P U _ X 8 6 _ 6 4 00058 00059 d o u b l e d ; 00060 00061 d o u b l e * d o u b l e _ p o i n t e r ; 00062 00063 # e n d i f / / H G L _ C P U = = H G L _ C P U _ X 8 6 _ 6 4 00064 00065 } ; / / u n i o n D e v i l S y s t e m F u n c P a r a m 00066 00067 00068 00069 s t r u c t D e v i l F u n c M a p / / w[Qpe f\ 00070 00071 { 00072 00073 v o i d * b a s e ; / / W0W@W 00074 00075 00076 00077 v o i d * f u n c ; / / Qpe0W@W 00078 00079 00080 00081 e T o k e n T y p e r e s u l t ; / / ԏV{|W 00082 00083 00084 00085 L i s t < e T o k e n T y p e > p a r a m ; / / Spe{|W 00086 00087 00088 00089 D e v i l F u n c M a p ( ) 00090 00091 { 00092 00093 b a s e = 0 ; 00094 00095 f u n c = 0 ; 00096 00097 } 00098 00099 00100 00101 b o o l C a l l ( c o n s t D e v i l S y s t e m F u n c P a r a m * , c o n s t i n t , v o i d * ) ; 00102 00103 } ; / / s t r u c t D e v i l F u n c M a p 00104 00105 00106 00107 s t r u c t D e v i l P r o p e r t y M a p / / w[^\'` f\ 00108 00109 { 00110 00111 e T o k e n T y p e t y p e ; / / penc{|W 00112 00113 00114 00115 v o i d * a d d r e s s ; / / ^\'`0W@W 00116 00117 } ; 00118 00119 00120 00121 c l a s s D e v i l C o m m a n d / / Zb:gcN 00122 00123 { 00124 00125 p u b l i c : 00126 00127 00128 00129 D e v i l C o m m a n d ( ) { } ; 00130 00131 v i r t u a l ~ D e v i l C o m m a n d ( ) { } ; 00132 00133 00134 00135 v i r t u a l b o o l R u n ( ) { r e t u r n f a l s e ; } 00136 00137 } ; 00138 00139 00140 00141 t e m p l a t e < t y p e n a m e T > c l a s s D e v i l F u n c C a l l : p u b l i c D e v i l C o m m a n d / / Qpe|TS 00142 00143 { 00144 00145 p u b l i c : 00146 00147 00148 00149 T r e s u l t ; / / ԏV<P 00150 00151 00152 00153 p u b l i c : 00154 00155 00156 00157 v i r t u a l ~ D e v i l F u n c C a l l ( ) { } ; 00158 00159 00160 00161 v i r t u a l b o o l R u n ( ) = 0 ; 00162 00163 } ; 00164 00165 00166 00167 / / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 00168 00169 c l a s s D e v i l V a l u e I n t e r f a c e / / SϑcS 00170 00171 { 00172 00173 p r o t e c t e d : 00174 00175 00176 00177 D e v i l E n g i n e * e n g i n e ; 00178 00179 00180 00181 p u b l i c : 00182 00183 00184 00185 e T o k e n T y p e t y p e ; 00186 00187 00188 00189 p u b l i c : 00190 00191 00192 00193 D e v i l V a l u e I n t e r f a c e ( D e v i l E n g i n e * d e , e T o k e n T y p e t t ) 00194 00195 { 00196 00197 e n g i n e = d e ; 00198 00199 t y p e = t t ; 00200 00201 } 00202 00203 00204 00205 v i r t u a l ~ D e v i l V a l u e I n t e r f a c e ( ) { } ; 00206 00207 } ; 00208 00209 00210 00211 t e m p l a t e < t y p e n a m e T > c l a s s D e v i l V a l u e : p u b l i c D e v i l V a l u e I n t e r f a c e / / Sϑ 00212 00213 { 00214 00215 p u b l i c : 00216 00217 00218 00219 v i r t u a l T & G e t V a l u e ( ) = 0 ; 00220 00221 00222 00223 v o i d S e t V a l u e ( T & ) { } ; 00224 00225 00226 00227 p u b l i c : 00228 00229 00230 00231 D e v i l V a l u e ( D e v i l E n g i n e * d e , e T o k e n T y p e t t ) : D e v i l V a l u e I n t e r f a c e ( d e , t t ) { } ; 00232 00233 00234 00235 v i r t u a l ~ D e v i l V a l u e ( ) { } ; 00236 00237 } ; 00238 00239 00240 00241 c l a s s D e v i l C o m p I n t e r f a c e / / kW{| 00242 00243 { 00244 00245 p u b l i c : 00246 00247 00248 00249 v i r t u a l ~ D e v i l C o m p I n t e r f a c e ( ) { } ; 00250 00251 00252 00253 v i r t u a l b o o l C o m p ( ) = 0 ; 00254 00255 } ; 00256 00257 00258 00259 # i f d e f O P E R _ O V E R 00260 00261 # u n d e f O P E R _ O V E R 00262 00263 # e n d i f / / 00264 00265 00266 00267 # d e f i n e O P E R _ O V E R ( n a m e , o p e r ) t e m p l a t e < t y p e n a m e T 1 , t y p e n a m e T 2 > c l a s s n a m e : p u b l i c D e v i l C o m p I n t e r f a c e \ 00268 00269 { \ 00270 00271 D e v i l V a l u e < T 1 > * l e f t ; \ 00272 00273 D e v i l V a l u e < T 2 > * r i g h t ; \ 00274 00275 \ 00276 00277 p u b l i c : \ 00278 00279 \ 00280 00281 n a m e ( D e v i l V a l u e I n t e r f a c e * l , D e v i l V a l u e I n t e r f a c e * r ) \ 00282 00283 { \ 00284 00285 l e f t = ( D e v i l V a l u e < T 1 > * ) l ; \ 00286 00287 r i g h t = ( D e v i l V a l u e < T 2 > * ) r ; \ 00288 00289 } \ 00290 00291 \ 00292 00293 ~ n a m e ( ) \ 00294 00295 { \ 00296 00297 d e l e t e l e f t ; \ 00298 00299 d e l e t e r i g h t ; \ 00300 00301 } \ 00302 00303 \ 00304 00305 b o o l C o m p ( ) \ 00306 00307 { \ 00308 00309 r e t u r n ( l e f t - > G e t V a l u e ( ) o p e r r i g h t - > G e t V a l u e ( ) ) ; \ 00310 00311 } \ 00312 00313 } ; 00314 00315 00316 00317 O P E R _ O V E R ( D e v i l C o m p E q u , = = ) ; 00318 00319 O P E R _ O V E R ( D e v i l C o m p N o t E q u , ! = ) ; 00320 00321 O P E R _ O V E R ( D e v i l C o m p L e s s E q u , < = ) ; 00322 00323 O P E R _ O V E R ( D e v i l C o m p G r e a t e r E q u , > = ) ; 00324 00325 O P E R _ O V E R ( D e v i l C o m p L e s s , < ) ; 00326 00327 O P E R _ O V E R ( D e v i l C o m p G r e a t e r , > ) ; 00328 00329 00330 00331 # u n d e f O P E R _ O V E R 00332 00333 00334 00335 # i f d e f D E V I L _ V A L U E 00336 00337 # d e f i n e D E V I L _ V A L U E 00338 00339 # e n d i f / / D E V I L _ V A L U E 00340 00341 00342 00343 # d e f i n e D E V I L _ V A L U E ( n a m e , T , t t , p r o c ) c l a s s n a m e : p u b l i c D e v i l V a l u e < T > \ 00344 00345 { \ 00346 00347 T v a l u e ; \ 00348 00349 \ 00350 00351 p u b l i c : \ 00352 00353 \ 00354 00355 T & G e t V a l u e ( ) { r e t u r n v a l u e ; } \ 00356 00357 \ 00358 00359 p u b l i c : \ 00360 00361 \ 00362 00363 n a m e ( D e v i l E n g i n e * d e , c o n s t w c h a r _ t * s t r ) : D e v i l V a l u e < T > ( d e , t t ) \ 00364 00365 { \ 00366 00367 v a l u e = p r o c ( s t r ) ; \ 00368 00369 } \ 00370 00371 } ; 00372 00373 00374 00375 D E V I L _ V A L U E ( D e v i l I n t e g e r , i n t , t t I n t , w t o i ) ; / / w[pe<P, g&{Stepe 00376 00377 D E V I L _ V A L U E ( D e v i l U I n t e g e r , u i n t , t t U I n t , w t o u ) ; / / w[pe<P, e&{Stepe 00378 00379 D E V I L _ V A L U E ( D e v i l F l o a t , f l o a t , t t F l o a t , w t o f ) ; / / w[pe<P, nmppe 00380 00381 D E V I L _ V A L U E ( D e v i l B o o l , b o o l , t t B o o l , w t o b ) ; / / w[pe<P, ^\W 00382 00383 D E V I L _ V A L U E ( D e v i l I n t 6 4 , i n t 6 4 , t t I n t 6 4 , w t o i ) ; 00384 00385 D E V I L _ V A L U E ( D e v i l U I n t 6 4 , u i n t 6 4 , t t U I n t 6 4 , w t o u ) ; 00386 00387 D E V I L _ V A L U E ( D e v i l D o u b l e , d o u b l e , t t D o u b l e , w t o d ) ; 00388 00389 00390 00391 # u n d e f D E V I L _ V A L U E 00392 00393 00394 00395 t e m p l a t e < t y p e n a m e T > c l a s s D e v i l V a l u e P r o p e r t y : p u b l i c D e v i l V a l u e < T > / / Sϑw[^\'` f\ 00396 00397 { 00398 00399 T * a d d r e s s ; 00400 00401 00402 00403 p u b l i c : 00404 00405 00406 00407 D e v i l V a l u e P r o p e r t y ( D e v i l E n g i n e * d e , D e v i l P r o p e r t y M a p * d p m , e T o k e n T y p e t y p e ) : D e v i l V a l u e < T > ( d e , t y p e ) 00408 00409 { 00410 00411 a d d r e s s = ( T * ) ( d p m - > a d d r e s s ) ; 00412 00413 } 00414 00415 00416 00417 T & G e t V a l u e ( ) 00418 00419 { 00420 00421 r e t u r n * a d d r e s s ; 00422 00423 } 00424 00425 } ; 00426 00427 00428 00429 t e m p l a t e < t y p e n a m e T > c l a s s D e v i l V a l u e F u n c M a p : p u b l i c D e v i l V a l u e < T > / / Sϑ: Qpe f\ 00430 00431 { 00432 00433 D e v i l C o m m a n d * c m d ; 00434 00435 00436 00437 p u b l i c : 00438 00439 00440 00441 D e v i l V a l u e F u n c M a p ( D e v i l E n g i n e * d e , D e v i l C o m m a n d * d f c , e T o k e n T y p e t y p e ) : D e v i l V a l u e < T > ( d e , t y p e ) 00442 00443 { 00444 00445 c m d = d f c ; 00446 00447 } 00448 00449 00450 00451 ~ D e v i l V a l u e F u n c M a p ( ) 00452 00453 { 00454 00455 d e l e t e c m d ; 00456 00457 } 00458 00459 00460 00461 T & G e t V a l u e ( ) 00462 00463 { 00464 00465 c m d - > R u n ( ) ; 00466 00467 00468 00469 r e t u r n ( ( D e v i l F u n c C a l l < T > * ) c m d ) - > r e s u l t ; 00470 00471 } 00472 00473 } ; 00474 00475 00476 00477 t e m p l a t e < t y p e n a m e T > c l a s s D e v i l S c r i p t V a l u e : p u b l i c D e v i l V a l u e < T > / / Sϑ,gSϑ 00478 00479 { 00480 00481 W i d e S t r i n g f u n c _ n a m e ; 00482 00483 W i d e S t r i n g v a l u e _ n a m e ; 00484 00485 00486 00487 T v a l u e ; 00488 00489 00490 00491 p u b l i c : 00492 00493 00494 00495 D e v i l S c r i p t V a l u e ( ) 00496 00497 { 00498 00499 f u n c _ n a m e = L " n u l l " ; 00500 00501 v a l u e _ n a m e = L " n u l l " ; 00502 00503 } 00504 00505 00506 00507 D e v i l S c r i p t V a l u e ( D e v i l E n g i n e * d e , c o n s t W i d e S t r i n g & f n , c o n s t W i d e S t r i n g & v n , e T o k e n T y p e t t ) : D e v i l V a l u e < T > ( d e , t t ) 00508 00509 { 00510 00511 f u n c _ n a m e = f n ; 00512 00513 v a l u e _ n a m e = v n ; 00514 00515 } 00516 00517 00518 00519 T & G e t V a l u e ( ) 00520 00521 { 00522 00523 r e t u r n v a l u e ; 00524 00525 } 00526 00527 00528 00529 v o i d S e t V a l u e ( T & v ) 00530 00531 { 00532 00533 v a l u e = v ; 00534 00535 } 00536 00537 } ; 00538 00539 / / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 00540 00541 t e m p l a t e < t y p e n a m e T > c l a s s D e v i l S y s t e m F u n c C a l l : p u b l i c D e v i l F u n c C a l l < T > / / w[Qpe|TS 00542 00543 { 00544 00545 p u b l i c : 00546 00547 } ; 00548 00549 00550 00551 t e m p l a t e < t y p e n a m e T > c l a s s D e v i l S y s t e m F u n c C a l l F i x e d : p u b l i c D e v i l F u n c C a l l < T > / / V[Spevw[Qpe|TS 00552 00553 { 00554 00555 D e v i l F u n c M a p * f u n c ; / / w[Qpe f\ 00556 00557 00558 00559 D e v i l S y s t e m F u n c P a r a m * p a r a m ; 00560 00561 i n t p a r a m _ s i z e ; 00562 00563 00564 00565 p u b l i c : 00566 00567 00568 00569 D e v i l S y s t e m F u n c C a l l F i x e d ( D e v i l F u n c M a p * d f m , D e v i l S y s t e m F u n c P a r a m * p , i n t p c ) 00570 00571 { 00572 00573 f u n c = d f m ; 00574 00575 00576 00577 p a r a m = p ; 00578 00579 p a r a m _ s i z e = p c * s i z e o f ( D e v i l S y s t e m F u n c P a r a m ) ; 00580 00581 } 00582 00583 00584 00585 ~ D e v i l S y s t e m F u n c C a l l F i x e d ( ) 00586 00587 { 00588 00589 d e l e t e [ ] p a r a m ; 00590 00591 } 00592 00593 00594 00595 b o o l R u n ( ) 00596 00597 { 00598 00599 r e t u r n f u n c - > C a l l ( p a r a m , p a r a m _ s i z e , & r e s u l t ) ; 00600 00601 } 00602 00603 } ; 00604 00605 00606 00607 / / c l a s s D e v i l S y s t e m F u n c C a l l D y n a m i c : p u b l i c D e v i l F u n c C a l l / / SSSpevw[Qpe|TS 00608 00609 / / { 00610 00611 / / D e v i l F u n c M a p * f u n c ; / / w[Qpe f\ 00612 00613 / / 00614 00615 / / u i n t * p a r a m ; 00616 00617 / / i n t p a r a m _ s i z e ; 00618 00619 / / 00620 00621 / / p u b l i c : 00622 00623 / / 00624 00625 / / D e v i l S y s t e m F u n c C a l l D y n a m i c ( D e v i l F u n c M a p * ) ; 00626 00627 / / ~ D e v i l S y s t e m F u n c C a l l D y n a m i c ( ) ; 00628 00629 / / 00630 00631 / / b o o l R u n ( ) ; 00632 00633 / / } ; 00634 00635 00636 00637 c l a s s D e v i l S c r i p t F u n c C a l l : p u b l i c D e v i l C o m m a n d / / ,gQpe|TS 00638 00639 { 00640 00641 D e v i l E n g i n e * e n g i n e ; 00642 00643 D e v i l F u n c * f u n c ; 00644 00645 00646 00647 p u b l i c : 00648 00649 00650 00651 D e v i l S c r i p t F u n c C a l l ( D e v i l E n g i n e * , D e v i l F u n c * ) ; 00652 00653 00654 00655 b o o l R u n ( ) ; 00656 00657 } ; 00658 00659 00660 00661 c l a s s D e v i l G o t o : p u b l i c D e v i l C o m m a n d / / l 00662 00663 { 00664 00665 D e v i l E n g i n e * e n g i n e ; 00666 00667 D e v i l F u n c * f u n c ; 00668 00669 W i d e S t r i n g n a m e ; 00670 00671 00672 00673 i n t i n d e x ; 00674 00675 00676 00677 p u b l i c : 00678 00679 00680 00681 D e v i l G o t o ( D e v i l E n g i n e * , D e v i l F u n c * , c o n s t W i d e S t r i n g & ) ; 00682 00683 00684 00685 b o o l R u n ( ) ; 00686 00687 } ; 00688 00689 00690 00691 c l a s s D e v i l C o m p G o t o : p u b l i c D e v i l C o m m a n d / / kv^l 00692 00693 { 00694 00695 D e v i l E n g i n e * e n g i n e ; 00696 00697 D e v i l C o m p I n t e r f a c e * c o m p ; 00698 00699 D e v i l F u n c * f u n c ; 00700 00701 00702 00703 i n t i n d e x ; 00704 00705 00706 00707 p u b l i c : 00708 00709 00710 00711 W i d e S t r i n g e l s e _ f l a g ; 00712 00713 00714 00715 p u b l i c : 00716 00717 00718 00719 D e v i l C o m p G o t o ( D e v i l E n g i n e * , D e v i l C o m p I n t e r f a c e * d c i , D e v i l F u n c * ) ; 00720 00721 ~ D e v i l C o m p G o t o ( ) ; 00722 00723 00724 00725 b o o l R u n ( ) ; 00726 00727 } ; 00728 00729 00730 00731 c l a s s D e v i l R e t u r n : p u b l i c D e v i l C o m m a n d / / QpeԏV 00732 00733 { 00734 00735 D e v i l E n g i n e * e n g i n e ; 00736 00737 00738 00739 p u b l i c : 00740 00741 00742 00743 D e v i l R e t u r n ( D e v i l E n g i n e * ) ; 00744 00745 00746 00747 b o o l R u n ( ) ; 00748 00749 } ; 00750 00751 00752 00753 c l a s s D e v i l S y s t e m V a l u e E q u : p u b l i c D e v i l C o m m a n d / / w[SϑK<P 00754 00755 { 00756 00757 p u b l i c : 00758 00759 00760 00761 D e v i l S y s t e m V a l u e E q u ( D e v i l E n g i n e * ) ; 00762 00763 00764 00765 b o o l R u n ( ) ; 00766 00767 } ; 00768 00769 } / / n a m e s p a c e h g l 00770 00771 # e n d i f / / D e v i l C o m m a n d H 00772 00773