CMGDK r49-rc2
|
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 _Yo 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 _Yy0RDnvP o s i t i o n + o f f s e t MOn 00026 00027 s o E n d / / / < NDnv~_gMOn _Yo 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_MRMOnYg/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