CMGDK r49-rc2
K:/CMGDKv18/SDK/Include/hgl/thread/Atomic.H
浏览该文件的文档。
00001 # i f n d e f   H G L _ A T O M I C _ I N C L U D E 
00002  
00003  # d e f i n e   H G L _ A T O M I C _ 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 / P l a t f o r m . H > 
00008  
00009  n a m e s p a c e   h g l 
00010  
00011  { 
00012  
00013      t y p e d e f   v o l a t i l e   u i n t   a v u i n t ; 
00014  
00015      t y p e d e f   c o n s t   a v u i n t   c a v u i n t ; 
00016  
00017  
00018  
00019          / * * 
00020  
00021          *   SP[teWpencWNSP[d\Ovl o n g WSϑ!jb\ň
00022  
00023          * / 
00024  
00025          c l a s s   a t o m _ u i n t                                                                               / / / SP[u i n t 3 2 penc
00026  
00027          { 
00028  
00029                  a v u i n t   v a l u e ; 
00030  
00031  
00032  
00033          p u b l i c : 
00034  
00035  
00036  
00037                  a t o m _ u i n t ( ) ; 
00038  
00039                  a t o m _ u i n t ( c a v u i n t ) ; 
00040  
00041                  ~ a t o m _ u i n t ( ) ; 
00042  
00043  
00044  
00045          o p e r a t o r   u i n t ( ) ; 
00046  
00047  
00048  
00049                  u i n t   o p e r a t o r   =   ( c a v u i n t ) ; 
00050  
00051  
00052  
00053                  u i n t   o p e r a t o r   + =   ( c a v u i n t ) ; 
00054  
00055                  u i n t   o p e r a t o r   - =   ( c a v u i n t ) ; 
00056  
00057  
00058  
00059                  u i n t   o p e r a t o r     * =   ( c a v u i n t   v ) { r e t u r n   o p e r a t o r = ( v a l u e   * = v ) ; } 
00060  
00061                  u i n t   o p e r a t o r     / =   ( c a v u i n t   v ) { r e t u r n   o p e r a t o r = ( v a l u e   / = v ) ; } 
00062  
00063                  u i n t   o p e r a t o r     % =   ( c a v u i n t   v ) { r e t u r n   o p e r a t o r = ( v a l u e   % = v ) ; } 
00064  
00065                  u i n t   o p e r a t o r     & =   ( c a v u i n t   v ) { r e t u r n   o p e r a t o r = ( v a l u e   & = v ) ; } 
00066  
00067                  u i n t   o p e r a t o r     | =   ( c a v u i n t   v ) { r e t u r n   o p e r a t o r = ( v a l u e   | = v ) ; } 
00068  
00069                  u i n t   o p e r a t o r   > > =   ( c a v u i n t   v ) { r e t u r n   o p e r a t o r = ( v a l u e > > = v ) ; } 
00070  
00071                  u i n t   o p e r a t o r   < < =   ( c a v u i n t   v ) { r e t u r n   o p e r a t o r = ( v a l u e < < = v ) ; } 
00072  
00073  
00074  
00075                  u i n t   o p e r a t o r   ~   ( ) { r e t u r n   o p e r a t o r = ( ~ v a l u e ) ; } 
00076  
00077                  u i n t   o p e r a t o r   !   ( ) { r e t u r n   o p e r a t o r = ( ! v a l u e ) ; } 
00078  
00079  
00080  
00081                  u i n t   o p e r a t o r   + +   ( ) ;         / / MRn+ + 
00082  
00083                  u i n t   o p e r a t o r   - -   ( ) ;         / / MRn- - 
00084  
00085  
00086  
00087                  u i n t   o p e r a t o r   + +   ( i n t )       / / Tn+ + 
00088  
00089          {           
00090  
00091              u i n t   r e t = v a l u e ; 
00092  
00093  
00094  
00095              o p e r a t o r + + ( ) ; 
00096  
00097  
00098  
00099              r e t u r n   r e t ; 
00100  
00101          } 
00102  
00103  
00104  
00105                  u i n t   o p e r a t o r   - -   ( i n t )       / / Tn- - 
00106  
00107          { 
00108  
00109              u i n t   r e t = v a l u e ; 
00110  
00111  
00112  
00113              o p e r a t o r - - ( ) ; 
00114  
00115  
00116  
00117              r e t u r n   r e t ; 
00118  
00119          } 
00120  
00121          } ; / / c l a s s   a t o m _ u i n t 
00122  
00123  } / / n a m e s p a c e   h g l 
00124  
00125  # e n d i f / / H G L _ A T O M I C _ I N C L U D E 
00126  
00127  
 全部  名字空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义