CMGDK r49-rc2
|
00001 # i f n d e f H G L _ B I T A R R A Y _ I N C L U D E 00002 00003 # d e f i n e H G L _ B I T A R R A Y _ I N C L U D E 00004 00005 00006 00007 # i n c l u d e < h g l / t y p e / D a t a T y p e . H > 00008 00009 n a m e s p a c e h g l 00010 00011 { 00012 00013 c l a s s S t r e a m ; 00014 00015 00016 00017 / * * 00018 00019 * MOR(uNYt cMOOX[vpenc[SN cMOSTQeQ 00020 00021 * / 00022 00023 c l a s s B i t A r r a y / / / MOR 00024 00025 { 00026 00027 b o o l m a p p i n g ; 00028 00029 00030 00031 i n t b y t e _ s i z e ; 00032 00033 i n t c o u n t , p o s ; 00034 00035 u i n t 8 * d a t a ; 00036 00037 00038 00039 p r i v a t e : 00040 00041 00042 00043 i n t G e t C o u n t ( ) { r e t u r n c o u n t ; } 00044 00045 v o i d S e t C o u n t ( i n t ) ; 00046 00047 00048 00049 i n t G e t B y t e S i z e ( ) { r e t u r n b y t e _ s i z e ; } 00050 00051 00052 00053 i n t G e t P o s ( ) { r e t u r n p o s ; } 00054 00055 v o i d S e t P o s ( i n t ) ; 00056 00057 00058 00059 u i n t 8 * G e t D a t a ( ) { r e t u r n d a t a ; } 00060 00061 00062 00063 v o i d I n i t P r i v a t e ( ) ; 00064 00065 00066 00067 p u b l i c : 00068 00069 00070 00071 P r o p e r t y < i n t > C o u n t ; / / / < penc^ 00072 00073 P r o p e r t y < i n t > B y t e S i z e ; / / / < W[^ 00074 00075 P r o p e r t y < i n t > P o s i t i o n ; / / / < S_MRMOn 00076 00077 P r o p e r t y < u i n t 8 * > D a t a ; / / / < penc 00078 00079 00080 00081 p u b l i c : 00082 00083 00084 00085 B i t A r r a y ( i n t = 0 ) ; 00086 00087 B i t A r r a y ( v o i d * , i n t , b o o l = t r u e ) ; 00088 00089 ~ B i t A r r a y ( ) ; 00090 00091 00092 00093 v o i d C r e a t e ( i n t ) ; / / / < R^penc:S 00094 00095 v o i d M a p D a t a ( v o i d * , i n t ) ; / / / < f\penc 00096 00097 v o i d C l e a r ( ) ; / / / < nd@b gpenc 00098 00099 00100 00101 v o i d F i l l ( b o o l ) ; / / / < kXEQpenc 00102 00103 00104 00105 b o o l W r i t e Z e r o ( ) ; / / / < QeQ NMO0 00106 00107 b o o l W r i t e O n e ( ) ; / / / < QeQ NMO1 00108 00109 00110 00111 b o o l W r i t e T r u e ( ) { r e t u r n W r i t e O n e ( ) ; } / / / < QeQ NMOw( sS1 ) 00112 00113 b o o l W r i t e F a l s e ( ) { r e t u r n W r i t e Z e r o ( ) ; } / / / < QeQ NMOGP( sS0 ) 00114 00115 00116 00117 b o o l W r i t e B i t ( b o o l b i t ) / / / < QeQ NMOpenc 00118 00119 { r e t u r n ( b i t ? W r i t e O n e ( ) : W r i t e Z e r o ( ) ) ; } 00120 00121 b o o l W r i t e B y t e ( u n s i g n e d _ _ i n t 8 * , i n t ) ; / / / < cW[QeQpenc 00122 00123 00124 00125 b o o l R e a d B i t ( b o o l & ) ; / / / < S NMO 00126 00127 00128 00129 b o o l F l i p B i t ( ) ; / / / < l NMO 00130 00131 b o o l F l i p B i t ( i n t o ) / / / < lc[MO 00132 00133 { P o s i t i o n = o ; r e t u r n ( F l i p B i t ( ) ) ; } 00134 00135 00136 00137 b o o l R e a d P o s ( i n t o , b o o l & b i t ) c o n s t ; / / / < Sc[MO 00138 00139 b o o l W r i t e P o s ( i n t o , b o o l b i t ) ; / / / < QeQ NMOpenc 00140 00141 00142 00143 b o o l S a v e T o S t r e a m ( S t r e a m * ) ; / / / < OX[S_MRMO5Rpenc0RAm 00144 00145 b o o l L o a d F r o m S t r e a m ( S t r e a m * ) ; / / / < NAm-NSMO5Rpenc 00146 00147 b o o l S a v e T o F i l e ( c o n s t w c h a r _ t * ) ; / / / < OX[S_MRMO5Rpenc0ReN 00148 00149 b o o l L o a d F r o m F i l e ( c o n s t w c h a r _ t * ) ; / / / < NeN-NSMO5Rpenc 00150 00151 00152 00153 p u b l i c : / / d\O&{͑} 00154 00155 00156 00157 B i t A r r a y & o p e r a t o r = ( c o n s t B i t A r r a y & ) ; / / / < = S͑} 00158 00159 00160 00161 B i t A r r a y & o p e r a t o r + = ( c o n s t B i t A r r a y & ) ; / / / < + 00162 00163 B i t A r r a y & o p e r a t o r - = ( c o n s t B i t A r r a y & ) ; / / / < - 00164 00165 B i t A r r a y & o p e r a t o r * = ( c o n s t B i t A r r a y & ) ; / / / < * 00166 00167 00168 00169 b o o l o p e r a t o r = = ( c o n s t B i t A r r a y & ) c o n s t ; 00170 00171 b o o l o p e r a t o r ! = ( c o n s t B i t A r r a y & r h s ) c o n s t { r e t u r n ! o p e r a t o r = = ( r h s ) ; } 00172 00173 } ; 00174 00175 } / / n a m e s p a c e h g l 00176 00177 # e n d i f / / H G L _ B I T A R R A Y _ I N C L U D E ; 00178 00179