CMGDK r49-rc2
|
00001 # i f n d e f H G L _ T C P _ A C C E P T _ I N C L U D E 00002 00003 # d e f i n e H G L _ T C P _ A C C E P T _ 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 / T C P S o c k e t . H > 00008 00009 # i n c l u d e < h g l / t h r e a d / R W L o c k . 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 n e t w o r k 00016 00017 { 00018 00019 c l a s s T C P S e r v e r ; 00020 00021 c l a s s T C P A c c e p t M a n a g e ; 00022 00023 00024 00025 / * * 00026 00027 * T C P (u7bceQYt{| 00028 00029 * / 00030 00031 c l a s s T C P A c c e p t : p u b l i c T C P S o c k e t / / / T C P ceQYtW{| 00032 00033 { 00034 00035 p r o t e c t e d : 00036 00037 00038 00039 R W L o c k * r w l o c k ; / / / < Q 00040 00041 00042 00043 T C P A c c e p t M a n a g e * m a n a g e ; / / / < ceQ{thV 00044 00045 00046 00047 v i r t u a l v o i d I n i t P r i v a t e ( ) ; 00048 00049 00050 00051 p u b l i c : / / NN 00052 00053 00054 00055 D e f E v e n t ( v o i d , O n I n i t A c c e p t , ( T C P A c c e p t * ) ) ; / / / < ޏc[bNNQpe 00056 00057 D e f E v e n t ( v o i d , O n C l e a r A c c e p t , ( T C P A c c e p t * ) ) ; / / / < ޏcsQ핋NNQpe 00058 00059 D e f E v e n t ( b o o l , O n U p d a t e , ( T C P A c c e p t * , b o o l ) ) ; / / / < ޏc7ReNNQpe 00060 00061 00062 00063 p u b l i c : 00064 00065 00066 00067 T C P A c c e p t ( T C P A c c e p t M a n a g e * , i n t ) ; 00068 00069 T C P A c c e p t ( T C P A c c e p t M a n a g e * , i n t , s o c k a d d r _ i n * , i n t ) ; 00070 00071 v i r t u a l ~ T C P A c c e p t ( ) ; 00072 00073 00074 00075 H G L _ R W L O C K ( r w l o c k ) ; 00076 00077 00078 00079 p u b l i c : / / (u7b͑}vQpe 00080 00081 00082 00083 v i r t u a l v o i d I n i t A c c e p t ( ) { S a f e C a l l E v e n t ( O n I n i t A c c e p t , ( t h i s ) ) ; } / / / < RYS, (WRYSޏc[bT(u 00084 00085 v i r t u a l v o i d C l e a r A c c e p t ( ) { S a f e C a l l E v e n t ( O n C l e a r A c c e p t , ( t h i s ) ) ; } / / / < sQ, (WsQޏcMR(u 00086 00087 00088 00089 v i r t u a l v o i d C l o s e S o c k e t ( ) ; / / / < sQޏc 00090 00091 00092 00093 / * * 00094 00095 * 7Red\O (u7b͑}0_(WۏL^[hQd\Oe R 00096 00097 * / 00098 00099 v i r t u a l b o o l U p d a t e ( b o o l b l o c k = f a l s e ) / / / < 7Red\O 00100 00101 { 00102 00103 i f ( O n U p d a t e = = N U L L ) r e t u r n ( t r u e ) ; 00104 00105 00106 00107 r e t u r n C a l l E v e n t ( O n U p d a t e , ( t h i s , b l o c k ) ) ; 00108 00109 } 00110 00111 } ; / / c l a s s T C P A c c e p t 00112 00113 } / / n a m e s p a c e n e t w o r k 00114 00115 00116 00117 u s i n g n a m e s p a c e n e t w o r k ; 00118 00119 } / / n a m e s p a c e h g l 00120 00121 # e n d i f / / H G L _ T C P _ A C C E P T _ I N C L U D E 00122 00123