CMGDK r49-rc2
K:/CMGDKv18/SDK/Include/hgl/network/TCPDistribute.h
浏览该文件的文档。
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  
 全部  名字空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义