CMGDK r49-rc2
K:/CMGDKv18/SDK/Include/hgl/endian/Endian.h
浏览该文件的文档。
00001 # i f n d e f   H G L _ E N D I A N _ I N C L U D E 
00002  
00003  # d e f i n e   H G L _ E N D I A N _ 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 >               / /   s^S[IN
00008  
00009  n a m e s p a c e   h g l 
00010  
00011  { 
00012  
00013      n a m e s p a c e   e n d i a n 
00014  
00015      { 
00016  
00017          e n u m   B y t e O r d e r M a s k 
00018  
00019          { 
00020  
00021              b o m A n s i = 0 , 
00022  
00023              b o m U T F 8 , 
00024  
00025              b o m U T F 1 6 L E , 
00026  
00027              b o m U T F 1 6 B E , 
00028  
00029              b o m U T F 3 2 L E , 
00030  
00031              b o m U T F 3 2 B E , 
00032  
00033              b o m E n d 
00034  
00035          } ; 
00036  
00037  
00038  
00039          s t r u c t   B O M F i l e H e a d e r 
00040  
00041          { 
00042  
00043              i n t   s i z e ; 
00044  
00045              u n s i g n e d   c h a r   d a t a [ 4 ] ; 
00046  
00047          } ; 
00048  
00049  
00050  
00051          c o n s t   B O M F i l e H e a d e r   B O M D a t a [ b o m E n d ] = 
00052  
00053          { 
00054  
00055              { 0 , { } } , 
00056  
00057              { 3 , { 0 x E F , 0 x B B , 0 x B F } } , 
00058  
00059              { 2 , { 0 x F F , 0 x F E } } , 
00060  
00061              { 2 , { 0 x F E , 0 x F F } } , 
00062  
00063              { 4 , { 0 x F F , 0 x F E , 0 x 0 0 , 0 x 0 0 } } , 
00064  
00065              { 4 , { 0 x 0 0 , 0 x 0 0 , 0 X F E , 0 x F F } } 
00066  
00067          } ; 
00068  
00069  
00070  
00071          t e m p l a t e < i n t , c h a r >   c o n s t   c h a r   * G e t C u r W i d e C h a r S e t ( ) ; 
00072  
00073  
00074  
00075          t e m p l a t e < >   i n l i n e   c o n s t   c h a r   * G e t C u r W i d e C h a r S e t < 2 , H G L _ L I T T L E _ E N D I A N 	 > ( ) { r e t u r n   " u t f - 1 6 l e " ; } 
00076  
00077          t e m p l a t e < >   i n l i n e   c o n s t   c h a r   * G e t C u r W i d e C h a r S e t < 2 , H G L _ B I G _ E N D I A N 	 > ( ) { r e t u r n   " u t f - 1 6 b e " ; } 
00078  
00079          t e m p l a t e < >   i n l i n e   c o n s t   c h a r   * G e t C u r W i d e C h a r S e t < 4 , H G L _ L I T T L E _ E N D I A N 	 > ( ) { r e t u r n   " u t f - 3 2 l e " ; } 
00080  
00081          t e m p l a t e < >   i n l i n e   c o n s t   c h a r   * G e t C u r W i d e C h a r S e t < 4 , H G L _ B I G _ E N D I A N 	 > ( ) { r e t u r n   " u t f - 3 2 b e " ; } 
00082  
00083  
00084  
00085          i n l i n e   c o n s t   c h a r   * G e t W i d e C h a r S e t ( ) 
00086  
00087          { 
00088  
00089              r e t u r n   G e t C u r W i d e C h a r S e t < s i z e o f ( w c h a r _ t ) , H G L _ E N D I A N > ( ) ; 
00090  
00091          } 
00092  
00093  
00094  
00095          t e m p l a t e < t y p e n a m e   T > 
00096  
00097          i n l i n e   T   E n d i a n S w a p ( c o n s t   T   v a l u e ) 
00098  
00099          { 
00100  
00101              u n i o n 
00102  
00103              { 
00104  
00105                  T   v ; 
00106  
00107                  u i n t 8   b y t e s [ s i z e o f ( T ) ] ; 
00108  
00109              } a , b ; 
00110  
00111  
00112  
00113              a . v = v a l u e ; 
00114  
00115  
00116  
00117              f o r ( i n t   i = 0 ; i < s i z e o f ( T ) ; i + + ) 
00118  
00119                  b . b y t e s [ i ] = a . b y t e s [ s i z e o f ( T ) - 1 - i ] ; 
00120  
00121  
00122  
00123              r e t u r n   b . v ; 
00124  
00125          } 
00126  
00127  
00128  
00129          t e m p l a t e < >   i n l i n e     i n t 8   E n d i a n S w a p <   i n t 8 > ( c o n s t     i n t 8   v a l u e ) { r e t u r n   v a l u e ; } 
00130  
00131          t e m p l a t e < >   i n l i n e   u i n t 8   E n d i a n S w a p < u i n t 8 > ( c o n s t   u i n t 8   v a l u e ) { r e t u r n   v a l u e ; } 
00132  
00133  
00134  
00135          t e m p l a t e < t y p e n a m e   T > 
00136  
00137          i n l i n e   v o i d   E n d i a n S w a p ( T   * v a l u e , c o n s t   i n t 6 4   c o u n t ) 
00138  
00139          { 
00140  
00141              f o r ( u i n t   i = 0 ; i < c o u n t ; i + + ) 
00142  
00143                  * v a l u e + + = E n d i a n S w a p ( * v a l u e ) ; 
00144  
00145          } 
00146  
00147  
00148  
00149          t e m p l a t e < t y p e n a m e   T > 
00150  
00151          i n l i n e   v o i d   E n d i a n S w a p ( T   * d s t , c o n s t   T   * s r c , c o n s t   i n t 6 4   c o u n t ) 
00152  
00153          { 
00154  
00155              f o r ( u i n t   i = 0 ; i < c o u n t ; i + + ) 
00156  
00157                  * d s t + + = E n d i a n S w a p ( * s r c ) ; 
00158  
00159          } 
00160  
00161  
00162  
00163          t e m p l a t e < t y p e n a m e   D , t y p e n a m e   S > 
00164  
00165          i n l i n e   v o i d   E n d i a n S w a p ( D   * d s t , c o n s t   S   * s r c , c o n s t   i n t 6 4   c o u n t ) 
00166  
00167          { 
00168  
00169              f o r ( u i n t   i = 0 ; i < c o u n t ; i + + ) 
00170  
00171                  * d s t + + = D ( E n d i a n S w a p ( * s r c ) ) ; 
00172  
00173          } 
00174  
00175  
00176  
00177          # i f   H G L _ E N D I A N   = =   H G L _ B I G _ E N D I A N 
00178  
00179  
00180  
00181              # d e f i n e   H G L _ B O M _ U T F 1 6 L E   0 x f f f e 
00182  
00183              # d e f i n e   H G L _ B O M _ U T F 1 6 B E   0 x f e f f 
00184  
00185              # d e f i n e   H G L _ B O M _ U T F 3 2 L E   0 x f f f e 0 0 0 0 
00186  
00187              # d e f i n e   H G L _ B O M _ U T F 3 2 B E   0 x 0 0 0 0 f e f f 
00188  
00189  
00190  
00191              # d e f i n e   L i t t l e T o C u r r e n t E n d i a n   E n d i a n S w a p 
00192  
00193              # d e f i n e   B i g T o C u r r e n t E n d i a n         T o B i g E n d i a n 
00194  
00195  
00196  
00197              t e m p l a t e < t y p e n a m e   T >   T   T o B i g E n d i a n ( T   v a l u e ) { r e t u r n   v a l u e ; } 
00198  
00199  
00200  
00201              t e m p l a t e < t y p e n a m e   T >   i n l i n e   v o i d   T o B i g E n d i a n ( T   * v a l u e , c o n s t   i n t 6 4   c o u n t ) { } 
00202  
00203              t e m p l a t e < t y p e n a m e   D , t y p e n a m e   S >   i n l i n e   v o i d   T o B i g E n d i a n ( D   * d s t , c o n s t   S   * s r c , c o n s t   i n t 6 4   c o u n t ) { h g l _ c p y ( d s t , s r c , c o u n t ) ; } 
00204  
00205  
00206  
00207              t e m p l a t e < t y p e n a m e   T >   T   T o L i t t l e E n d i a n ( T   v a l u e ) { r e t u r n   E n d i a n S w a p ( v a l u e ) ; } 
00208  
00209  
00210  
00211              t e m p l a t e < t y p e n a m e   T >   i n l i n e   v o i d   T o L i t t l e E n d i a n ( T   * v a l u e , c o n s t   i n t 6 4   c o u n t ) { E n d i a n S w a p < T > ( v a l u e , c o u n t ) ; } 
00212  
00213              t e m p l a t e < t y p e n a m e   D , t y p e n a m e   S >   i n l i n e   v o i d   T o L i t t l e E n d i a n ( D   * d s t , c o n s t   S   * s r c , c o n s t   i n t 6 4   c o u n t ) { E n d i a n S w a p < D , S > ( d s t , s r c , c o u n t ) ; } 
00214  
00215          # e l s e 
00216  
00217  
00218  
00219              # d e f i n e   H G L _ B O M _ U T F 1 6 L E   0 x f e f f 
00220  
00221              # d e f i n e   H G L _ B O M _ U T F 1 6 B E   0 x f f f e 
00222  
00223              # d e f i n e   H G L _ B O M _ U T F 3 2 L E   0 x 0 0 0 0 f e f f 
00224  
00225              # d e f i n e   H G L _ B O M _ U T F 3 2 B E   0 x f f f e 0 0 0 0 
00226  
00227  
00228  
00229              # d e f i n e   L i t t l e T o C u r r e n t E n d i a n   T o L i t t l e E n d i a n 
00230  
00231              # d e f i n e   B i g T o C u r r e n t E n d i a n         E n d i a n S w a p 
00232  
00233  
00234  
00235              t e m p l a t e < t y p e n a m e   T >   T   T o B i g E n d i a n ( T   v a l u e ) { r e t u r n   E n d i a n S w a p ( v a l u e ) ; } 
00236  
00237  
00238  
00239              t e m p l a t e < t y p e n a m e   T >   i n l i n e   v o i d   T o B i g E n d i a n ( T   * v a l u e , c o n s t   i n t 6 4   c o u n t ) { E n d i a n S w a p < T > ( v a l u e , c o u n t ) ; } 
00240  
00241              t e m p l a t e < t y p e n a m e   D , t y p e n a m e   S >   i n l i n e   v o i d   T o B i g E n d i a n ( D   * d s t , c o n s t   S   * s r c , c o n s t   i n t 6 4   c o u n t ) { E n d i a n S w a p < D , S > ( d s t , s r c , c o u n t ) ; } 
00242  
00243  
00244  
00245              t e m p l a t e < t y p e n a m e   T >   T   T o L i t t l e E n d i a n ( T   v a l u e ) { r e t u r n   v a l u e ; } 
00246  
00247  
00248  
00249              t e m p l a t e < t y p e n a m e   T >   i n l i n e   v o i d   T o L i t t l e E n d i a n ( T   * v a l u e , c o n s t   i n t 6 4   c o u n t ) { } 
00250  
00251              t e m p l a t e < t y p e n a m e   D , t y p e n a m e   S >   i n l i n e   v o i d   T o L i t t l e E n d i a n ( D   * d s t , c o n s t   S   * s r c , c o n s t   i n t 6 4   c o u n t ) { h g l _ c p y ( d s t , s r c , c o u n t ) ; } 
00252  
00253          # e n d i f / / H G L _ B I G _ E N D I A N 
00254  
00255      } / / n a m e s p a c e   e n d i a n 
00256  
00257  
00258  
00259      u s i n g   n a m e s p a c e   e n d i a n ; 
00260  
00261  } / / n a m e s p a c e   h g l 
00262  
00263  # e n d i f / / H G L _ E N D I A N _ I N C L U D E 
00264  
00265  
 全部  名字空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义