myqueue.h 938 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. //myqueue.h
  2. #ifndef __MYQUEUE_H__
  3. #define __MYQUEUE_H__
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. #include <pthread.h>
  7. #define TRUE 1
  8. #define FALSE 0
  9. #define MAXCNTBUF 1024*1
  10. typedef struct sqlString
  11. {
  12. int len;
  13. char buf[MAXCNTBUF];
  14. }ElemType;
  15. typedef struct
  16. {
  17. ElemType **rear;
  18. ElemType *front;
  19. int len;
  20. int size;
  21. pthread_mutex_t locker;
  22. pthread_cond_t notEmpty;
  23. pthread_cond_t notFull;
  24. }ArrQueue;
  25. ArrQueue *CreateQueue( int nLen) ;
  26. void DestroyQueue( ArrQueue *pQueue );
  27. void ClearQueue( ArrQueue *pQueue );
  28. int GetLength( ArrQueue *pQueue );
  29. int GetSize( ArrQueue *pQueue );
  30. int IsEmpty( ArrQueue *pQueue );
  31. int GetHead( ArrQueue *pQueue, ElemType **pe );
  32. int EnQueue( ArrQueue *pQueue, ElemType *pe );
  33. int DeQueue( ArrQueue *pQueue, ElemType **pe );
  34. void ForEachQueue( ArrQueue *pQueue, void (*func)(ElemType *pe) );
  35. #endif