CMGDK r49-rc2
K:/CMGDKv18/SDK/Include/hgl/type/RingBuffer.H
浏览该文件的文档。
00001 # i f n d e f   H G L _ M U L T I _ T H R E A D _ R I N G _ B U F F E R _ I N C L U D E 
00002  
00003  # d e f i n e   H G L _ M U L T I _ T H R E A D _ R I N G _ B U F F E R _ I N C L U D E 
00004  
00005  
00006  
00007  # i n c l u d e < h g l / t h r e a d / T h r e a d M u t e x . H > 
00008  
00009  n a m e s p a c e   h g l 
00010  
00011  { 
00012  
00013      / * * 
00014  
00015      *   Y~zsb_pencAm, (uNebQv`QNS(WY~z^(u-NTeNQv`Q0
00016  
00017      * / 
00018  
00019      c l a s s   R i n g B u f f e r : p r o t e c t e d   T h r e a d M u t e x                                                                 / / / Y~zsb_pencAm
00020  
00021      { 
00022  
00023      p r o t e c t e d : 
00024  
00025  
00026  
00027          c h a r   * b u f f e r ; 
00028  
00029          i n t   b u f f e r _ s i z e ; 
00030  
00031          
00032  
00033          i n t   r e a d _ p o s , w r i t e _ p o s ; 
00034  
00035  
00036  
00037          i n t   r e a d _ c u r , w r i t e _ c u r ; 
00038  
00039          i n t   r e a d _ o f f , w r i t e _ o f f ; 
00040  
00041          i n t   r e a d _ m a x , w r i t e _ m a x ; 
00042  
00043          i n t   r e a d _ c o u n t , w r i t e _ c o u n t ; 
00044  
00045  
00046  
00047          b o o l   r e a d _ p e e k ; 
00048  
00049  
00050  
00051      p r o t e c t e d : 
00052  
00053  
00054  
00055          v o i d   C l a m p P o s i t i o n ( ) ; 
00056  
00057  
00058  
00059          i n t   _ G e t R e a d S i z e ( ) c o n s t { r e t u r n   w r i t e _ p o s - r e a d _ p o s ; } 
00060  
00061          i n t   _ G e t W r i t e S i z e ( ) c o n s t { r e t u r n   b u f f e r _ s i z e - ( w r i t e _ p o s - r e a d _ p o s ) ; } 
00062  
00063  
00064  
00065          i n t   _ S a f e W r i t e S t a r t ( ) ; 
00066  
00067          i n t   _ S a f e R e a d S t a r t ( b o o l ) ; 
00068  
00069  
00070  
00071          i n t   _ W r i t e ( c o n s t   v o i d   * , i n t ) ; 
00072  
00073          i n t   _ R e a d ( v o i d   * , i n t , b o o l ) ; 
00074  
00075  
00076  
00077      p u b l i c : 
00078  
00079  
00080  
00081          R i n g B u f f e r ( i n t ) ;                                                                             / / / < ,g{|g Qpe
00082  
00083          v i r t u a l   ~ R i n g B u f f e r ( ) ;                                                                         / / / < ,g{|ggQpe
00084  
00085  
00086  
00087          c o n s t   i n t   G e t B u f f e r S i z e ( ) c o n s t { r e t u r n   b u f f e r _ s i z e ; }                                           / / / < dSQ:S^
00088  
00089  
00090  
00091          v o i d   C l e a r ( ) ;                                                                               / / / < ndte*NQ:S
00092  
00093          v o i d   S a f e C l e a r ( ) ;                                                                           / / / < [hQndte*NQ:S
00094  
00095  
00096  
00097      p u b l i c :   / / QYtQpe
00098  
00099  
00100  
00101          i n t   W r i t e S t a r t ( ) ;                                                                           / / / <  _YQeQ
00102  
00103          i n t   G e t W r i t e S i z e ( ) c o n s t { r e t u r n   w r i t e _ m a x ; }                                                     / / / < S_SQeQpenc^
00104  
00105          i n t   W r i t e ( c o n s t   v o i d   * , i n t ) ;                                                                 / / / < TAm-NQeQpenc
00106  
00107          i n t   W r i t e E n d ( ) ;                                                                               / / / < ~_gQeQ
00108  
00109  
00110  
00111          i n t   S a f e T r y W r i t e S t a r t ( ) ;                                                                     / / / < [hQ\Ջ _YQeQ
00112  
00113          i n t   S a f e W r i t e S t a r t ( ) ;                                                                       / / / < [hQ _YQeQ
00114  
00115          i n t   S a f e W r i t e E n d ( ) ;                                                                           / / / < [hQ~_gQeQ
00116  
00117  
00118  
00119          i n t   S a f e G e t W r i t e S i z e ( ) ;                                                                       / / / < [hQS_SQeQpenc^
00120  
00121          i n t   S a f e W r i t e ( c o n s t   v o i d   * , i n t ) ;                                                             / / / < [hQQeQ(uN{USv N!k'`QeQ
00122  
00123  
00124  
00125      p u b l i c :   / / YtQpe
00126  
00127  
00128  
00129          i n t   R e a d S t a r t ( b o o l = t r u e ) ;                                                                   / / / <  _YS
00130  
00131          i n t   G e t R e a d S i z e ( ) c o n s t { r e t u r n   r e a d _ m a x ; }                                                     / / / < S_SSpenc^
00132  
00133          i n t   R e a d ( v o i d   * , i n t , b o o l = t r u e ) ;                                                               / / / < NAm-NSpenc
00134  
00135          i n t   R e a d E n d ( ) ;                                                                                 / / / < ~_gQeQ
00136  
00137  
00138  
00139          i n t   S a f e T r y R e a d S t a r t ( b o o l = t r u e ) ;                                                             / / / < [hQ\Ջ _YS
00140  
00141          i n t   S a f e R e a d S t a r t ( b o o l = t r u e ) ;                                                               / / / < [hQ _YS
00142  
00143          i n t   S a f e R e a d E n d ( ) ;                                                                             / / / < [hQ~_gS
00144  
00145          
00146  
00147          i n t   S a f e G e t R e a d S i z e ( ) ;                                                                         / / / < [hQS_SSpenc^
00148  
00149          i n t   S a f e R e a d ( v o i d   * , i n t , b o o l = t r u e ) ;                                                           / / / < [hQS(uN{USv N!k'`S
00150  
00151      } ; / / c l a s s   R i n g B u f f e r 
00152  
00153  } / / n a m e s p a c e   h g l 
00154  
00155  # e n d i f / / H G L _ M U L T I _ T H R E A D _ R I N G _ B U F F E R _ I N C L U D E 
00156  
00157  
 全部  名字空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义