CMGDK r49-rc2
|
00001 # i f n d e f H G L _ I O _ D A T A _ O U T P U T _ S T R E A M _ I N C L U D E 00002 00003 # d e f i n e H G L _ I O _ D A T A _ O U T P U T _ 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 / i o / O u t p u t S t r e a m . 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 n a m e s p a c e i o 00016 00017 { 00018 00019 c l a s s O u t p u t S t r e a m ; 00020 00021 00022 00023 / * * 00024 00025 * <h_pencQAmW{| 00026 00027 * / 00028 00029 c l a s s D a t a O u t p u t S t r e a m / / / <h_pencQAmW{| 00030 00031 { 00032 00033 p r o t e c t e d : 00034 00035 00036 00037 O u t p u t S t r e a m * o u t ; 00038 00039 00040 00041 p r o t e c t e d : 00042 00043 00044 00045 t e m p l a t e < i n t , c h a r T > 00046 00047 b o o l W r i t e U T F 1 6 C h a r s ( c o n s t w c h a r _ t * w i d e _ s t r , i n t 6 4 c o u n t ) ; 00048 00049 00050 00051 p u b l i c : 00052 00053 00054 00055 D a t a O u t p u t S t r e a m ( O u t p u t S t r e a m * o s ) 00056 00057 { 00058 00059 o u t = o s ; 00060 00061 } 00062 00063 00064 00065 v i r t u a l ~ D a t a O u t p u t S t r e a m ( ) 00066 00067 { 00068 00069 } 00070 00071 00072 00073 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 ) 00074 00075 { 00076 00077 i f ( ! b u f | | s i z e < 0 ) r e t u r n ( - 1 ) ; 00078 00079 00080 00081 r e t u r n ( o u t ? o u t - > W r i t e ( b u f , s i z e ) : - 1 ) ; 00082 00083 } 00084 00085 00086 00087 v i r t u a l i n t 6 4 S e e k ( i n t 6 4 o f f s e t , S e e k O r i g i n s o = s o B e g i n ) 00088 00089 { 00090 00091 r e t u r n ( o u t ? o u t - > S e e k ( o f f s e t , s o ) : - 1 ) ; 00092 00093 } 00094 00095 00096 00097 # d e f i n e S T R E A M _ W R I T E ( t y p e , n a m e ) v i r t u a l b o o l W r i t e # # n a m e ( c o n s t 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 6 4 ( s i z e o f ( t y p e ) ) ) ; } 00098 00099 00100 00101 S T R E A M _ W R I T E ( c h a r , C h a r ) ; 00102 00103 S T R E A M _ W R I T E ( b o o l , B o o l ) ; 00104 00105 S T R E A M _ W R I T E ( i n t 8 , I n t 8 ) ; 00106 00107 S T R E A M _ W R I T E ( u i n t 8 , U i n t 8 ) ; 00108 00109 00110 00111 # u n d e f S T R E A M _ W R I T E 00112 00113 00114 00115 v i r t u a l b o o l W r i t e I n t 1 6 ( c o n s t i n t 1 6 & v a l u e ) = 0 ; 00116 00117 v i r t u a l b o o l W r i t e I n t 3 2 ( c o n s t i n t 3 2 & v a l u e ) = 0 ; 00118 00119 v i r t u a l b o o l W r i t e I n t 6 4 ( c o n s t i n t 6 4 & v a l u e ) = 0 ; 00120 00121 00122 00123 v i r t u a l b o o l W r i t e U i n t 1 6 ( c o n s t u i n t 1 6 & v a l u e ) = 0 ; 00124 00125 v i r t u a l b o o l W r i t e U i n t 3 2 ( c o n s t u i n t 3 2 & v a l u e ) = 0 ; 00126 00127 v i r t u a l b o o l W r i t e U i n t 6 4 ( c o n s t u i n t 6 4 & v a l u e ) = 0 ; 00128 00129 00130 00131 v i r t u a l b o o l W r i t e W i d e C h a r ( c o n s t w c h a r _ t & v a l u e ) = 0 ; 00132 00133 v i r t u a l b o o l W r i t e F l o a t ( c o n s t f l o a t & v a l u e ) = 0 ; 00134 00135 v i r t u a l b o o l W r i t e D o u b l e ( c o n s t d o u b l e & v a l u e ) = 0 ; 00136 00137 00138 00139 / * * 00140 00141 * ^{|WpencQeQ< / p > 00142 00143 * (WYs^Sm(uv`QN 00144 NO(udkQpeNMQ b 00145 NTs^Spenc[(~g 00146 N Nv`Q 00147 00148 * / 00149 00150 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 & d a t a ) 00151 00152 { 00153 00154 r e t u r n W r i t e ( & d a t a , s i z e o f ( T ) ) = = s i z e o f ( T ) ; 00155 00156 } 00157 00158 00159 00160 / * * 00161 00162 * ^{|Wpenc5RQeQ< / p > 00163 00164 * (WYs^Sm(uv`QN 00165 NO(udkQpeNMQ b 00166 NTs^Spenc[(~g 00167 N Nv`Q 00168 00169 * @ p a r a m d a t a penc 00170 00171 * @ p a r a m c o u n t penc*Npe 00172 00173 * @ r e t u r n [(QeQvpenc*Npe 00174 00175 * @ r e t u r n - 1 Q 00176 00177 * / 00178 00179 t e m p l a t e < t y p e n a m e T > i n t 6 4 W r i t e A r r a y s ( c o n s t T * d a t a , i n t 6 4 c o u n t ) 00180 00181 { 00182 00183 r e t u r n W r i t e ( d a t a , c o u n t * s i z e o f ( T ) ) / s i z e o f ( T ) ; 00184 00185 } 00186 00187 00188 00189 v i r t u a l b o o l W r i t e C h a r s ( c o n s t c h a r * s t r , i n t 6 4 c o u n t ) 00190 00191 { 00192 00193 i f ( c o u n t = = 0 ) r e t u r n ( t r u e ) ; 00194 00195 00196 00197 i f ( ! s t r | | ! * s t r | | c o u n t < 0 ) r e t u r n ( f a l s e ) ; 00198 00199 00200 00201 r e t u r n ( W r i t e A r r a y s ( s t r , c o u n t ) = = c o u n t ) ; 00202 00203 } 00204 00205 00206 00207 v i r t u a l b o o l W r i t e U T F 1 6 L E C h a r s ( c o n s t w c h a r _ t * , i n t 6 4 ) ; / / / < cu t f 1 6 - l e <h_QeQw c h a r _ t * -NvW[&{5R 00208 00209 v i r t u a l b o o l W r i t e U T F 1 6 B E C h a r s ( c o n s t w c h a r _ t * , i n t 6 4 ) ; / / / < cu t f 1 6 - b e <h_QeQw c h a r _ t * -NvW[&{5R 00210 00211 00212 00213 v i r t u a l b o o l W r i t e U T F 1 6 L E C h a r s ( c o n s t W i d e S t r i n g & s t r ) { r e t u r n W r i t e U T F 1 6 L E C h a r s ( s t r . w c _ s t r ( ) , s t r . L e n g t h ) ; } 00214 00215 v i r t u a l b o o l W r i t e U T F 1 6 B E C h a r s ( c o n s t W i d e S t r i n g & s t r ) { r e t u r n W r i t e U T F 1 6 B E C h a r s ( s t r . w c _ s t r ( ) , s t r . L e n g t h ) ; } 00216 00217 00218 00219 v i r t u a l b o o l W r i t e U T F 8 S t r i n g ( c o n s t W i d e S t r i n g & ) ; / / / < cu t f 8 <h_QeQW[&{2N 00220 00221 v i r t u a l b o o l W r i t e U T F 1 6 L E S t r i n g ( c o n s t W i d e S t r i n g & ) ; / / / < cu t f 1 6 - l e <h_QeQW[&{2N 00222 00223 v i r t u a l b o o l W r i t e U T F 1 6 B E S t r i n g ( c o n s t W i d e S t r i n g & ) ; / / / < cu t f 1 6 - b e <h_QeQW[&{2N 00224 00225 } ; / / c l a s s D a t a O u t p u t S t r e a m 00226 00227 } / / n a m e s p a c e i o 00228 00229 } / / n a m e s p a c e h g l 00230 00231 # i n c l u d e < h g l / i o / E n d i a n D a t a O u t p u t S t r e a m . H > 00232 00233 # e n d i f / / H G L _ I O _ D A T A _ O U T P U T _ S T R E A M _ I N C L U D E s 00234 00235