CMGDK r49-rc2
|
00001 # i f n d e f H G L _ N E T W O R K _ T C P _ P A C K E T _ D I S T R I B U T E _ I N C L U D E 00002 00003 # d e f i n e H G L _ N E T W O R K _ T C P _ P A C K E T _ D I S T R I B U T E _ I N C L U D E 00004 00005 00006 00007 # i n c l u d e < h g l / n e t w o r k / S o c k e t . 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 n a m e s p a c e n e t w o r k 00018 00019 { 00020 00021 c l a s s T C P S o c k e t ; 00022 00023 c l a s s R e c v B u f f e r S t r e a m ; 00024 00025 c l a s s T C P D i s t r i b u t e ; 00026 00027 00028 00029 t y p e d e f D e f E v e n t ( b o o l , T C P P a c k e t P r o c e s s F u n c , ( v o i d * ) ) / / / < \SYtNN 00030 00031 00032 00033 # d e f i n e H G L _ T C P _ P A C K E T _ N A M E ( n a m e ) n a m e # # P a c k e t 00034 00035 00036 00037 # d e f i n e H G L _ T C P _ P A C K E T _ B E G I N ( n a m e ) s t r u c t H G L _ T C P _ P A C K E T _ N A M E ( n a m e ) : p u b l i c T C P P a c k e t \ 00038 00039 { \ 00040 00041 H G L _ T C P _ P A C K E T _ N A M E ( n a m e ) ( ) : T C P P a c k e t ( n a m e ) { } 00042 00043 00044 00045 # d e f i n e H G L _ T C P _ P A C K E T _ E N D ( n a m e ) p u b l i c : \ 00046 00047 \ 00048 00049 b o o l C r e a t e ( S t r e a m * ) ; \ 00050 00051 b o o l P a r s e ( S t r e a m * ) ; \ 00052 00053 } ; 00054 00055 00056 00057 # d e f i n e H G L _ T C P _ P A C K E T _ P R O C _ C R E A T E ( n a m e , f u n c ) ( n e w T C P P a c k e t P r o c ( n e w H G L _ T C P _ P A C K E T _ N A M E ( n a m e ) , f u n c ) ) 00058 00059 00060 00061 # d e f i n e H G L _ T C P _ P A C K E T _ C R E A T E _ F U N C ( n a m e ) b o o l H G L _ T C P _ P A C K E T _ N A M E ( n a m e ) : : C r e a t e ( S t r e a m * m s ) 00062 00063 # d e f i n e H G L _ T C P _ P A C K E T _ P A R S E _ F U N C ( n a m e ) b o o l H G L _ T C P _ P A C K E T _ N A M E ( n a m e ) : : P a r s e ( S t r e a m * m s ) 00064 00065 00066 00067 # d e f i n e H G L _ T C P _ P A C K E T _ R E C V _ F U N C ( t y p e , n a m e ) b o o l O n R e c v # # n a m e ( H G L _ T C P _ P A C K E T _ N A M E ( t y p e # # n a m e ) * ) ; 00068 00069 00070 00071 # d e f i n e H G L _ T C P _ P A C K E T _ R E C V _ R E G I S T R Y ( d i s , o b j , o b j _ n a m e , t y p e , n a m e ) { \ 00072 00073 T C P P a c k e t P r o c e s s F u n c p p f ; \ 00074 00075 \ 00076 00077 S e t E v e n t C a l l ( p p f , o b j , o b j _ n a m e , O n R e c v # # n a m e ) ; \ 00078 00079 \ 00080 00081 d i s - > R e g i s t r y ( n e w T C P P a c k e t P r o c ( n e w H G L _ T C P _ P A C K E T _ N A M E ( t y p e # # n a m e ) , p p f ) ) ; \ 00082 00083 } 00084 00085 00086 00087 / * * 00088 00089 * T C P \SW{|(uN\SRSYt 00090 00091 * / 00092 00093 c l a s s T C P P a c k e t / / / T C P \SW{| 00094 00095 { 00096 00097 H G L _ P A C K E T _ T Y P E p a c k e t _ t y p e ; 00098 00099 00100 00101 p u b l i c : 00102 00103 00104 00105 T C P P a c k e t ( H G L _ P A C K E T _ T Y P E t y p e ) 00106 00107 { 00108 00109 p a c k e t _ t y p e = t y p e ; 00110 00111 } 00112 00113 00114 00115 v i r t u a l ~ T C P P a c k e t ( ) 00116 00117 { 00118 00119 } 00120 00121 00122 00123 c o n s t H G L _ P A C K E T _ T Y P E G e t P a c k e t T y p e ( ) c o n s t 00124 00125 { 00126 00127 r e t u r n p a c k e t _ t y p e ; 00128 00129 } 00130 00131 00132 00133 b o o l S e n d ( T C P S o c k e t * ) ; / / / < S0Rc[vT C P S o c k e t 00134 00135 / / b o o l S e n d ( T C P S o c k e t * * , i n t ) ; / / / < S0Rc[v NybT C P S o c k e t 00136 00137 00138 00139 v i r t u a l b o o l C r e a t e ( S t r e a m * ) = 0 ; / / / < \penclbcbAm 00140 00141 v i r t u a l b o o l P a r s e ( S t r e a m * ) = 0 ; / / / < NAm-Npfpenc 00142 00143 } ; / / c l a s s T C P P a c k e t 00144 00145 00146 00147 / * * 00148 00149 * T C P \SYtW{|(uN\SYtgbL 00150 00151 * / 00152 00153 c l a s s T C P P a c k e t P r o c 00154 00155 { 00156 00157 p r o t e c t e d : 00158 00159 00160 00161 T C P P a c k e t * p a c k ; 00162 00163 00164 00165 T C P P a c k e t P r o c e s s F u n c O n P r o c e s s ; / / / < \SYtNN 00166 00167 00168 00169 p u b l i c : 00170 00171 00172 00173 T C P P a c k e t P r o c ( T C P P a c k e t * t p , T C P P a c k e t P r o c e s s F u n c p p f ) 00174 00175 { 00176 00177 p a c k = t p ; 00178 00179 O n P r o c e s s = p p f ; 00180 00181 } 00182 00183 00184 00185 v i r t u a l ~ T C P P a c k e t P r o c ( ) 00186 00187 { 00188 00189 d e l e t e p a c k ; 00190 00191 } 00192 00193 00194 00195 c o n s t H G L _ P A C K E T _ T Y P E G e t P a c k e t T y p e ( ) c o n s t / / / < S_\S{|W 00196 00197 { 00198 00199 r e t u r n p a c k - > G e t P a c k e t T y p e ( ) ; 00200 00201 } 00202 00203 00204 00205 b o o l P a r s e ( S t r e a m * r b s ) / / / < pf\S 00206 00207 { 00208 00209 r e t u r n p a c k - > P a r s e ( r b s ) ; 00210 00211 } 00212 00213 00214 00215 / * * 00216 00217 * \SYt _S[wQSOS͑} 00218 00219 * / 00220 00221 v i r t u a l b o o l P r o c e s s ( ) / / / < Yt\S 00222 00223 { 00224 00225 i f ( O n P r o c e s s = = N U L L ) r e t u r n ( f a l s e ) ; 00226 00227 00228 00229 r e t u r n C a l l E v e n t ( O n P r o c e s s , ( p a c k ) ) ; 00230 00231 } 00232 00233 } ; / / c l a s s T C P P a c k e t P r o c 00234 00235 00236 00237 / * * 00238 00239 * T C P \SRSYt{| 00240 00241 * / 00242 00243 c l a s s T C P D i s t r i b u t e / / / \SRSYt{| 00244 00245 { 00246 00247 p r o t e c t e d : 00248 00249 00250 00251 T C P S o c k e t * s o c k ; / / / < T C P ޏc 00252 00253 00254 00255 H G L _ P A C K E T _ T Y P E s t a r t , e n d ; / / / < ꁨRRS\S{|W 00256 00257 T C P P a c k e t P r o c * * p a c k e t _ l i s t ; / / / < ꁨRRS\S[a 00258 00259 R e c v B u f f e r S t r e a m * R e c v S t r e a m ; / / / < \SSAm 00260 00261 00262 00263 p u b l i c : 00264 00265 00266 00267 T C P D i s t r i b u t e ( T C P S o c k e t * , H G L _ P A C K E T _ T Y P E , H G L _ P A C K E T _ T Y P E ) ; 00268 00269 v i r t u a l ~ T C P D i s t r i b u t e ( ) ; 00270 00271 00272 00273 v o i d S e t S o c k e t ( T C P S o c k e t * t c p ) ; / / / < ns o c k e t 00274 00275 00276 00277 b o o l R e g i s t r y ( T C P P a c k e t P r o c * ) ; / / / < lQ N*N\SpfhV 00278 00279 b o o l U n r e g i s t r y ( H G L _ P A C K E T _ T Y P E ) ; / / / < d N*N\SpfhV 00280 00281 v o i d C l e a r ( ) ; / / / < d@b g\SpfhV 00282 00283 00284 00285 v i r t u a l i n t U p d a t e ( i n t = 0 ) ; / / / < 6ev^RS\S 00286 00287 } ; / / c l a s s T C P D i s t r i b u t e 00288 00289 } / / n a m e s p a c e n e t w o r k 00290 00291 } / / n a m e s p a c e h g l 00292 00293 # e n d i f / / H G L _ N E T W O R K _ T C P _ P A C K E T _ D I S T R I B U T E _ I N C L U D E 00294 00295