home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 4 / DATAFILE_PDCD4.iso / unix / unixtools / util / h / queue < prev    next >
Text File  |  1992-07-21  |  925b  |  41 lines

  1. /*      > H.Queue - Queue data type header file */
  2.  
  3. #ifndef __queue_h
  4.  
  5. #define __queue_h
  6.  
  7. struct queue
  8. {
  9.         void *head;     /* pointer to head of queue */
  10.         void *tail;     /* pointer to tail of queue */
  11.         int obj_size;   /* size of one element */
  12. };
  13.  
  14. typedef struct queue *queue;
  15.  
  16. /* General component routines */
  17.  
  18. queue Q_new (int obj_len);
  19. void Q_free (queue q);
  20. void Q_clear (queue q);
  21. int Q_copy (queue q1, const queue q2);
  22. int Q_equal (const queue q1, const queue q2);
  23. int Q_empty (const queue q);
  24. int Q_size (const queue q);
  25.  
  26. /* Iterator */
  27.  
  28. #define STATUS_CONTINUE 0       /* Continue processing */
  29. #define STATUS_STOP     1       /* Stop processing */
  30. #define STATUS_ERROR    (-1)    /* Error - terminate */
  31.  
  32. int Q_iterate (const queue q, int (*process)(void *));
  33.  
  34. /* Queue-specific routines */
  35.  
  36. int Q_add (queue q, const void *object);
  37. int Q_remove (queue q);
  38. void *Q_head (const queue q);
  39.  
  40. #endif
  41.