CMGDK r49-rc2
|
00001 # i f n d e f H G L _ F I L E S T R E A M _ I N C L U D E 00002 00003 # d e f i n e H G L _ F I L E 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 / s t r e a m / S t r e a m . H > 00008 00009 n a m e s p a c e h g l 00010 00011 { 00012 00013 e n u m F i l e O p e n M o d e / / / eN!j_g>N 00014 00015 { 00016 00017 f o m C r e a t e = 0 x 0 1 , / / / < R^ N*NeN, SQe_ 00018 00019 f o m O p e n R e a d = 0 x 0 2 , / / / < Sb _ N*NeN, Se_ 00020 00021 f o m O p e n W r i t e = 0 x 0 4 , / / / < Sb _ N*NeN, SQe_ 00022 00023 f o m O p e n R e a d W r i t e = f o m O p e n R e a d | f o m O p e n W r i t e , / / / < Sb _ N*NeN, SSQ 00024 00025 00026 00027 f o m R e a d = f o m O p e n R e a d , 00028 00029 f o m W r i t e = f o m O p e n W r i t e , 00030 00031 f o m R e a d W r i t e = f o m O p e n R e a d W r i t e 00032 00033 } ; / / e n u m F i l e O p e n M o d e 00034 00035 00036 00037 / * * 00038 00039 * F i l e S t r e a m /f N*N[eNvAm_{|[NS t r e a m {|>mu 00040 00041 * / 00042 00043 c l a s s F i l e S t r e a m : p u b l i c S t r e a m / / / eNAmd\O{| 00044 00045 { 00046 00047 f r i e n d c l a s s P a r t F i l e S t r e a m ; 00048 00049 00050 00051 w c h a r _ t * f i l e n a m e ; 00052 00053 00054 00055 # i f H G L _ O S = = H G L _ O S _ W i n d o w s 00056 00057 v o i d * f p ; 00058 00059 # e l s e 00060 00061 i n t f p ; 00062 00063 # e n d i f / / H G L _ O S = = H G L _ O S _ W i n d o w s 00064 00065 00066 00067 u n s i g n e d l o n g r e s u l t ; 00068 00069 00070 00071 i n t 6 4 c u r _ p o s ; 00072 00073 00074 00075 b o o l c a n _ r e a d , c a n _ w r i t e ; 00076 00077 00078 00079 p r o t e c t e d : 00080 00081 00082 00083 i n t 6 4 G e t P o s i t i o n ( ) ; 00084 00085 v o i d S e t P o s i t i o n ( i n t 6 4 ) ; 00086 00087 00088 00089 i n t 6 4 G e t S i z e ( ) ; 00090 00091 v o i d S e t S i z e ( i n t 6 4 ) ; 00092 00093 00094 00095 b o o l G e t C a n S e e k ( ) { r e t u r n t r u e ; } 00096 00097 b o o l G e t C a n R e a d ( ) { r e t u r n c a n _ r e a d ; } 00098 00099 b o o l G e t C a n W r i t e ( ) { r e t u r n c a n _ w r i t e ; } 00100 00101 00102 00103 v o i d I n i t P r i v a t e ( ) ; 00104 00105 00106 00107 i n t 6 4 _ R e a d ( v o i d * , i n t 6 4 ) ; 00108 00109 i n t 6 4 _ W r i t e ( c o n s t v o i d * , i n t 6 4 ) ; 00110 00111 00112 00113 p u b l i c : / / el 00114 00115 00116 00117 F i l e S t r e a m ( ) ; 00118 00119 F i l e S t r e a m ( v o i d * ) ; 00120 00121 ~ F i l e S t r e a m ( ) ; 00122 00123 00124 00125 b o o l C r e a t e ( c o n s t w c h a r _ t * ) ; 00126 00127 b o o l O p e n ( c o n s t w c h a r _ t * , F i l e O p e n M o d e = f o m O p e n R e a d ) ; 00128 00129 v o i d C l o s e ( ) ; 00130 00131 00132 00133 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 ) ; 00134 00135 } ; / / c l a s s F i l e S t r e a m 00136 00137 00138 00139 _ _ i n l i n e F i l e S t r e a m * O p e n F i l e S t r e a m ( c o n s t w c h a r _ t * f i l e n a m e , F i l e O p e n M o d e m o d e = f o m O p e n R e a d ) 00140 00141 { 00142 00143 F i l e S t r e a m * f s = n e w F i l e S t r e a m ; 00144 00145 00146 00147 i f ( f s - > O p e n ( f i l e n a m e , m o d e ) ) 00148 00149 r e t u r n ( f s ) ; 00150 00151 e l s e 00152 00153 { 00154 00155 d e l e t e f s ; 00156 00157 r e t u r n ( N U L L ) ; 00158 00159 } 00160 00161 } 00162 00163 } / / n a m e s p a c e h g l 00164 00165 / / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 00166 00167 # e n d i f / / H G L _ F I L E S T R E A M _ I N C L U D E 00168 00169