CMGDK r49-rc2
K:/CMGDKv18/SDK/Include/hgl/stream/Stream.H
浏览该文件的文档。
00001 # i f n d e f   H G L _ S T R E A M _ I N C L U D E 
00002  
00003  # d e f i n e   H G L _ S T R E A M _ I N C L U D E 
00004  
00005  
00006  
00007  # i n c l u d e < h g l / O t h e r . 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  n a m e s p a c e   h g l 
00012  
00013  { 
00014  
00015      c l a s s   D a t a O b j e c t ; 
00016  
00017  
00018  
00019      e n u m   S e e k O r i g i n                           / / /   DnOPyeTg>N
00020  
00021      { 
00022  
00023          s o B e g i n ,                                 / / / < NDn g _YY _Yo f f s e t _{'YN0 0y0RDnvo f f s e t MOn
00024  
00025          s o C u r r e n t ,                             / / / < NDnS_MRMOn _Yy0RDnvP o s i t i o n + o f f s e t MOn
00026  
00027          s o E n d                                       / / / < NDnv~_gMOn _Yo f f s e t _{\N0 h:y~_gMRvW[&{pe
00028  
00029      } ; / / e n u m   S e e k O r i g i n 
00030  
00031  
00032  
00033      / * * 
00034  
00035      *   S t r e a m /fSNNTyX[PN(( QX[0eN0Q~I{I{) -NQNQeQAm_pencvbaW{|0
00036  
00037      * 
00038  
00039      *   S t r e a m {|
00040 N[OS[_{O`P[{|-N͑}vTybaeleg[s@b gvR0
00041  
00042      * / 
00043  
00044      c l a s s   S t r e a m                                                                                                                                                                         / / / Am_pencW{|
00045  
00046      { 
00047  
00048      p r o t e c t e d : 
00049  
00050  
00051  
00052          v i r t u a l   b o o l   G e t C a n S e e k ( ) = 0 ; 
00053  
00054          v i r t u a l   b o o l   G e t C a n R e a d ( ) = 0 ; 
00055  
00056          v i r t u a l   b o o l   G e t C a n W r i t e ( ) = 0 ; 
00057  
00058          
00059  
00060          v i r t u a l   i n t 6 4   _ R e a d ( v o i d   * b u f , i n t 6 4   s i z e ) = 0 ; 
00061  
00062          v i r t u a l   i n t 6 4   _ W r i t e ( c o n s t   v o i d   * b u f , i n t 6 4   s i z e ) = 0 ; 
00063  
00064  
00065  
00066      p u b l i c :   / / ^\'`
00067  
00068  
00069  
00070          P r o p e r t y < b o o l >   C a n S e e k ;                                                                       / / / < S_MRAm/f&TS[MO
00071  
00072          P r o p e r t y < b o o l >   C a n R e a d ;                                                                       / / / < S_MRAm/f&TS
00073  
00074          P r o p e r t y < b o o l >   C a n W r i t e ;                                                                     / / / < S_MRAm/f&TSQ
00075  
00076  
00077  
00078          P r o p e r t y < i n t 6 4 >   P o s i t i o n ;                                                                                                                                       / / / < ^\'`SNAmvS_MRMOnYg/f- 1 h:yeld\O
00079  
00080          P r o p e r t y < i n t 6 4 >   S i z e ;                                                                                                                                               / / / < ^\'`SNAmv'Y\Yg:N- 1 h:yelc6R
00081  
00082  
00083  
00084      p u b l i c :   / / el
00085  
00086  
00087  
00088          v i r t u a l   ~ S t r e a m ( ) { } 
00089  
00090          
00091  
00092          / * * 
00093  
00094          *   NAm-NSc[^vpenc
00095  
00096          *   @ p a r a m   p t r    N*NQX[c(uegX[>eQvpenc
00097  
00098          *   @ p a r a m   s i z e   Qvpenc^
00099  
00100          *   @ r e t u r n   > 0   bRSQegvpenc^
00101  
00102          *   @ r e t u r n   - 1   Am]S~_g
00103  
00104          *   @ r e t u r n   - 2   Am
00105 NSbQs
00106  
00107          * / 
00108  
00109          i n t 6 4   R e a d ( v o i d   * p t r , i n t 6 4   s i z e ) 
00110  
00111          { 
00112  
00113              i f ( ! s i z e ) r e t u r n ( 0 ) ; 
00114  
00115  
00116  
00117              i f ( ! p t r | | s i z e < 0 ) r e t u r n ( - 1 ) ; 
00118  
00119              
00120  
00121              r e t u r n ( _ R e a d ( p t r , s i z e ) ) ; 
00122  
00123          } 
00124  
00125          
00126  
00127          / * * 
00128  
00129          *   TAm-NQeQc[^vpenc
00130  
00131          *   @ p a r a m   p t r    N*NQX[c(uegX[>eQeQvpenc
00132  
00133          *   @ p a r a m   s i z e   QeQvpenc^
00134  
00135          *   @ r e t u r n   bRQeQvpenc^
00136  
00137          *   @ r e t u r n   - 1   SQzz]n
00138  
00139          *   @ r e t u r n   - 2   Am
00140 NSQ
00141  
00142          * / 
00143  
00144          i n t 6 4   W r i t e ( c o n s t   v o i d   * p t r , i n t 6 4   s i z e ) 
00145  
00146          { 
00147  
00148              i f ( ! s i z e ) r e t u r n ( 0 ) ; 
00149  
00150  
00151  
00152              i f ( ! p t r | | s i z e < 0 ) r e t u r n ( - 1 ) ; 
00153  
00154              
00155  
00156              r e t u r n ( _ W r i t e ( p t r , s i z e ) ) ; 
00157  
00158          } 
00159  
00160  
00161  
00162      p u b l i c :   / / [MOQpe
00163  
00164  
00165  
00166          v i r t u a l   i n t 6 4       S e e k ( i n t 6 4 , S e e k O r i g i n = s o B e g i n ) ; 
00167  
00168  
00169  
00170                  b o o l     E o f ( ) { r e t u r n   P o s i t i o n > = S i z e ; } 
00171  
00172  
00173  
00174      p u b l i c :   / / QQpe
00175  
00176  
00177  
00178          # d e f i n e   S T R E A M _ R W ( t y p e , n a m e )     b o o l   R e a d # # n a m e ( t y p e   & v a l u e ) { r e t u r n ( R e a d ( & v a l u e , s i z e o f ( t y p e ) ) = = i n t ( s i z e o f ( t y p e ) ) ) ; }   \ 
00179  
00180                                          b o o l   W r i t e # # n a m e ( t y p e   v a l u e ) { r e t u r n ( W r i t e ( & v a l u e , s i z e o f ( t y p e ) ) = = i n t ( s i z e o f ( t y p e ) ) ) ; } 
00181  
00182  
00183  
00184          S T R E A M _ R W ( c h a r ,       C h a r     ) ; 
00185  
00186          S T R E A M _ R W ( b o o l ,       B o o l     ) ; 
00187  
00188          S T R E A M _ R W ( i n t 8 ,       I n t 8     ) ; 
00189  
00190          S T R E A M _ R W ( i n t 1 6 ,     I n t 1 6   ) ; 
00191  
00192          S T R E A M _ R W ( i n t 3 2 ,     I n t 3 2   ) ; 
00193  
00194          S T R E A M _ R W ( i n t 6 4 ,     I n t 6 4   ) ; 
00195  
00196          S T R E A M _ R W ( u i n t 8 ,     U i n t 8   ) ; 
00197  
00198          S T R E A M _ R W ( u i n t 1 6 ,   U i n t 1 6     ) ; 
00199  
00200          S T R E A M _ R W ( u i n t 3 2 ,   U i n t 3 2     ) ; 
00201  
00202          S T R E A M _ R W ( u i n t 6 4 ,   U i n t 6 4     ) ; 
00203  
00204          S T R E A M _ R W ( w c h a r _ t ,     W i d e C h a r ) ; 
00205  
00206          S T R E A M _ R W ( f l o a t ,     F l o a t   ) ; 
00207  
00208          S T R E A M _ R W ( d o u b l e ,   D o u b l e     ) ; 
00209  
00210  
00211  
00212          # u n d e f   S T R E A M _ R W 
00213  
00214  
00215  
00216          b o o l   R e a d S t r i n g ( w c h a r _ t   * , i n t ) ; 
00217  
00218          b o o l   R e a d S t r i n g ( W i d e S t r i n g   & ) ; 
00219  
00220  
00221  
00222          b o o l   W r i t e S t r i n g ( c o n s t   w c h a r _ t   * , i n t ) ; 
00223  
00224          b o o l   W r i t e S t r i n g ( c o n s t   w c h a r _ t   * s t r ) { r e t u r n   W r i t e S t r i n g ( s t r , s t r l e n ( s t r ) ) ; } 
00225  
00226          b o o l   W r i t e S t r i n g ( c o n s t   W i d e S t r i n g   & w s ) { r e t u r n   W r i t e S t r i n g ( w s . w c _ s t r ( ) , w s . L e n g t h ) ; } 
00227  
00228  
00229  
00230          b o o l   R e a d O b j e c t ( D a t a O b j e c t   * ) ; 
00231  
00232          b o o l   W r i t e O b j e c t ( D a t a O b j e c t   * ) ; 
00233  
00234  
00235  
00236      p u b l i c :   / / ^{|WQQpe
00237  
00238  
00239  
00240          t e m p l a t e < t y p e n a m e   T >   b o o l   R e a d ( T   & v a l u e ) { r e t u r n ( R e a d ( & v a l u e , s i z e o f ( v a l u e ) ) = = s i z e o f ( v a l u e ) ) ; } 
00241  
00242          t e m p l a t e < t y p e n a m e   T >   b o o l   R e a d ( T   * ) { R e a d ( ybkSc) ; } ;                                   / / ybkSc
00243  
00244  
00245  
00246          t e m p l a t e < t y p e n a m e   T >   b o o l   W r i t e ( c o n s t   T   & v a l u e ) { r e t u r n ( W r i t e ( & v a l u e , s i z e o f ( v a l u e ) ) = = s i z e o f ( v a l u e ) ) ; } 
00247  
00248          t e m p l a t e < t y p e n a m e   T >   b o o l   W r i t e ( T   * ) { W r i t e ( ybkQeQc) ; } ;                                   / / ybkQeQc
00249  
00250          t e m p l a t e < t y p e n a m e   T >   b o o l   W r i t e ( c o n s t   T   * ) { W r i t e ( ybkQeQc) ; } ;                           / / ybkQeQc
00251  
00252  
00253  
00254          t e m p l a t e < t y p e n a m e   T >   b o o l   R e a d A r r a y ( T   * v a l u e , i n t   c o u n t ) { r e t u r n ( R e a d ( v a l u e , c o u n t * s i z e o f ( T ) ) = = c o u n t * s i z e o f ( T ) ) ; } 
00255  
00256          t e m p l a t e < t y p e n a m e   T >   b o o l   R e a d A r r a y ( T   * * , i n t   c o u n t ) { R e a d A r r a y ( ybkSc) ; } ;                 / / ybkSc
00257  
00258  
00259  
00260          t e m p l a t e < t y p e n a m e   T >   b o o l   W r i t e A r r a y ( T   * v a l u e , i n t   c o u n t ) { r e t u r n ( W r i t e ( v a l u e , c o u n t * s i z e o f ( T ) ) = = c o u n t * s i z e o f ( T ) ) ; } 
00261  
00262          t e m p l a t e < t y p e n a m e   T >   b o o l   W r i t e A r r a y ( T   * * , i n t   c o u n t ) { W r i t e A r r a y ( ybkQeQc) ; } ;             / / ybkQeQc
00263  
00264          t e m p l a t e < t y p e n a m e   T >   b o o l   W r i t e A r r a y ( c o n s t   T   * * , i n t   c o u n t ) { W r i t e A r r a y ( ybkQeQc) ; } ;         / / ybkQeQc
00265  
00266  
00267  
00268      p u b l i c :   / / ^{|Wd\O&{͑}
00269  
00270  
00271  
00272          t e m p l a t e < t y p e n a m e   T >   v o i d   o p e r a t o r   > > ( T   & v a l u e ) { R e a d ( & v a l u e , s i z e o f ( v a l u e ) ) ; } 
00273  
00274          t e m p l a t e < t y p e n a m e   T >   v o i d   o p e r a t o r   > > ( T   * ) { R e a d ( ybkSc) ; } ;                             / / ybkSc
00275  
00276  
00277  
00278          t e m p l a t e < t y p e n a m e   T >   v o i d   o p e r a t o r   < < ( c o n s t   T   & v a l u e ) { W r i t e ( & v a l u e , s i z e o f ( v a l u e ) ) ; } 
00279  
00280          t e m p l a t e < t y p e n a m e   T >   v o i d   o p e r a t o r   < < ( T   * ) { W r i t e ( ybkQeQc) ; } ;                           / / ybkQeQc
00281  
00282          t e m p l a t e < t y p e n a m e   T >   v o i d   o p e r a t o r   < < ( c o n s t   T   * ) { W r i t e ( ybkQeQc) ; } ;                       / / ybkQeQc
00283  
00284      } ; / / c l a s s   S t r e a m 
00285  
00286  } / / n a m e s p a c e   h g l 
00287  
00288  # e n d i f / / H G L _ S T R E A M _ I N C L U D E 
00289  
00290  
 全部  名字空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义