CMGDK r49-rc2
K:/CMGDKv18/SDK/Source/SQL/MySQL/include/queues.h
浏览该文件的文档。
00001 / *   C o p y r i g h t   ( C )   2 0 0 0   M y S Q L   A B 
00002  
00003        T h i s   p r o g r a m   i s   f r e e   s o f t w a r e ;   y o u   c a n   r e d i s t r i b u t e   i t   a n d / o r   m o d i f y 
00004  
00005        i t   u n d e r   t h e   t e r m s   o f   t h e   G N U   G e n e r a l   P u b l i c   L i c e n s e   a s   p u b l i s h e d   b y 
00006  
00007        t h e   F r e e   S o f t w a r e   F o u n d a t i o n ;   v e r s i o n   2   o f   t h e   L i c e n s e . 
00008  
00009        T h i s   p r o g r a m   i s   d i s t r i b u t e d   i n   t h e   h o p e   t h a t   i t   w i l l   b e   u s e f u l , 
00010  
00011        b u t   W I T H O U T   A N Y   W A R R A N T Y ;   w i t h o u t   e v e n   t h e   i m p l i e d   w a r r a n t y   o f 
00012  
00013        M E R C H A N T A B I L I T Y   o r   F I T N E S S   F O R   A   P A R T I C U L A R   P U R P O S E .     S e e   t h e 
00014  
00015        G N U   G e n e r a l   P u b l i c   L i c e n s e   f o r   m o r e   d e t a i l s . 
00016  
00017        Y o u   s h o u l d   h a v e   r e c e i v e d   a   c o p y   o f   t h e   G N U   G e n e r a l   P u b l i c   L i c e n s e 
00018  
00019        a l o n g   w i t h   t h i s   p r o g r a m ;   i f   n o t ,   w r i t e   t o   t h e   F r e e   S o f t w a r e 
00020  
00021        F o u n d a t i o n ,   I n c . ,   5 9   T e m p l e   P l a c e ,   S u i t e   3 3 0 ,   B o s t o n ,   M A     0 2 1 1 1 - 1 3 0 7     U S A   * / 
00022  
00023  / * 
00024  
00025      C o d e   f o r   g e n e r e l l   h a n d l i n g   o f   p r i o r i t y   Q u e u e s . 
00026  
00027      I m p l e m e n t i o n   o f   q u e u e s   f r o m   " A l g o r i t m s   i n   C "   b y   R o b e r t   S e d g e w i c k . 
00028  
00029      C o p y r i g h t   M o n t y   P r o g r a m   K B . 
00030  
00031      B y   m o n t y . 
00032  
00033  * / 
00034  
00035  # i f n d e f   _ q u e u e s _ h 
00036  
00037  # d e f i n e   _ q u e u e s _ h 
00038  
00039  # i f d e f     _ _ c p l u s p l u s 
00040  
00041  e x t e r n   " C "   { 
00042  
00043  # e n d i f 
00044  
00045  t y p e d e f   s t r u c t   s t _ q u e u e   { 
00046  
00047      u c h a r   * * r o o t ; 
00048  
00049      v o i d   * f i r s t _ c m p _ a r g ; 
00050  
00051      u i n t   e l e m e n t s ; 
00052  
00053      u i n t   m a x _ e l e m e n t s ; 
00054  
00055      u i n t   o f f s e t _ t o _ k e y ;   / *   c o m p a r e   i s   d o n e   o n   e l e m e n t + o f f s e t   * / 
00056  
00057      i n t   m a x _ a t _ t o p ;   / *   N o r m a l l y   1 ,   s e t   t o   - 1   i f   q u e u e _ t o p   g i v e s   m a x   * / 
00058  
00059      i n t     ( * c o m p a r e ) ( v o i d   * ,   u c h a r   * , u c h a r   * ) ; 
00060  
00061      u i n t   a u t o _ e x t e n t ; 
00062  
00063  }   Q U E U E ; 
00064  
00065  # d e f i n e   q u e u e _ t o p ( q u e u e )   ( ( q u e u e ) - > r o o t [ 1 ] ) 
00066  
00067  # d e f i n e   q u e u e _ e l e m e n t ( q u e u e , i n d e x )   ( ( q u e u e ) - > r o o t [ i n d e x + 1 ] ) 
00068  
00069  # d e f i n e   q u e u e _ e n d ( q u e u e )   ( ( q u e u e ) - > r o o t [ ( q u e u e ) - > e l e m e n t s ] ) 
00070  
00071  # d e f i n e   q u e u e _ r e p l a c e d ( q u e u e )   _ d o w n h e a p ( q u e u e , 1 ) 
00072  
00073  # d e f i n e   q u e u e _ s e t _ c m p _ a r g ( q u e u e ,   s e t _ a r g )   ( q u e u e ) - > f i r s t _ c m p _ a r g =   s e t _ a r g 
00074  
00075  # d e f i n e   q u e u e _ s e t _ m a x _ a t _ t o p ( q u e u e ,   s e t _ a r g )   \ 
00076  
00077      ( q u e u e ) - > m a x _ a t _ t o p =   s e t _ a r g   ?   - 1   :   1 
00078  
00079  t y p e d e f   i n t   ( * q u e u e _ c o m p a r e ) ( v o i d   * , u c h a r   * ,   u c h a r   * ) ; 
00080  
00081  i n t   i n i t _ q u e u e ( Q U E U E   * q u e u e , u i n t   m a x _ e l e m e n t s , u i n t   o f f s e t _ t o _ k e y , 
00082  
00083                    p b o o l   m a x _ a t _ t o p ,   q u e u e _ c o m p a r e   c o m p a r e , 
00084  
00085                    v o i d   * f i r s t _ c m p _ a r g ) ; 
00086  
00087  i n t   i n i t _ q u e u e _ e x ( Q U E U E   * q u e u e , u i n t   m a x _ e l e m e n t s , u i n t   o f f s e t _ t o _ k e y , 
00088  
00089                    p b o o l   m a x _ a t _ t o p ,   q u e u e _ c o m p a r e   c o m p a r e , 
00090  
00091                    v o i d   * f i r s t _ c m p _ a r g ,   u i n t   a u t o _ e x t e n t ) ; 
00092  
00093  i n t   r e i n i t _ q u e u e ( Q U E U E   * q u e u e , u i n t   m a x _ e l e m e n t s , u i n t   o f f s e t _ t o _ k e y , 
00094  
00095                                    p b o o l   m a x _ a t _ t o p ,   q u e u e _ c o m p a r e   c o m p a r e , 
00096  
00097                                    v o i d   * f i r s t _ c m p _ a r g ) ; 
00098  
00099  i n t   r e s i z e _ q u e u e ( Q U E U E   * q u e u e ,   u i n t   m a x _ e l e m e n t s ) ; 
00100  
00101  v o i d   d e l e t e _ q u e u e ( Q U E U E   * q u e u e ) ; 
00102  
00103  v o i d   q u e u e _ i n s e r t ( Q U E U E   * q u e u e , u c h a r   * e l e m e n t ) ; 
00104  
00105  i n t   q u e u e _ i n s e r t _ s a f e ( Q U E U E   * q u e u e ,   u c h a r   * e l e m e n t ) ; 
00106  
00107  u c h a r   * q u e u e _ r e m o v e ( Q U E U E   * q u e u e , u i n t   i d x ) ; 
00108  
00109  # d e f i n e   q u e u e _ r e m o v e _ a l l ( q u e u e )   {   ( q u e u e ) - > e l e m e n t s =   0 ;   } 
00110  
00111  # d e f i n e   q u e u e _ i s _ f u l l ( q u e u e )   ( q u e u e - > e l e m e n t s   = =   q u e u e - > m a x _ e l e m e n t s ) 
00112  
00113  v o i d   _ d o w n h e a p ( Q U E U E   * q u e u e , u i n t   i d x ) ; 
00114  
00115  v o i d   q u e u e _ f i x ( Q U E U E   * q u e u e ) ; 
00116  
00117  # d e f i n e   i s _ q u e u e _ i n i t e d ( q u e u e )   ( ( q u e u e ) - > r o o t   ! =   0 ) 
00118  
00119  # i f d e f     _ _ c p l u s p l u s 
00120  
00121  } 
00122  
00123  # e n d i f 
00124  
00125  # e n d i f 
00126  
00127  
 全部  名字空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义