Actual source code: queue.h
1: /*$Id: queue.h,v 1.2 2001/04/10 19:37:38 bsmith Exp $*/
2: /**********************************queue.h*************************************
3: SPARSE GATHER-SCATTER PACKAGE: bss_malloc bss_malloc ivec error comm gs queue
5: Author: Henry M. Tufo III
7: e-mail: hmt@cs.brown.edu
9: snail-mail:
10: Division of Applied Mathematics
11: Brown University
12: Providence, RI 02912
14: Last Modification:
15: 6.21.97
16: **********************************queue.h*************************************/
18: /**********************************queue.h*************************************
19: File Description:
20: -----------------
21: This file provides an interface to a simple queue abstraction.
22: **********************************queue.h*************************************/
23: #ifndef _queue_h
24: #define _queue_h
27: /**********************************queue.h*************************************
28: Type: queue_ADT
29: ---------------
30: This line defines the abstract queue type as a pointer to
31: its concrete counterpart. Clients have no access to the
32: underlying representation.
33: **********************************queue.h*************************************/
34: typedef struct queue_CDT *queue_ADT;
38: /**********************************queue.h*************************************
39: Function: new_queue()
41: Input : na
42: Output: na
43: Return: pointer to ADT.
44: Description: This function allocates and returns an empty queue.
45: Usage: queue = new_queue();
46: **********************************queue.h*************************************/
47: extern queue_ADT new_queue(void);
51: /**********************************queue.h*************************************
52: Function: free_queue()
54: Input : pointer to ADT.
55: Output: na
56: Return: na
57: Description: This function frees the storage associated with queue but not any
58: pointer contained w/in.
59: Usage: free_queue(queue);
60: **********************************queue.h*************************************/
61: extern void free_queue(queue_ADT queue);
65: /**********************************queue.h*************************************
66: Function: enqueue()
68: Input : pointer to ADT and pointer to object
69: Output: na
70: Return: na
71: Description: This function adds obj to the end of the queue.
72: Usage: enqueue(queue, obj);
73: **********************************queue.h*************************************/
74: extern void enqueue(queue_ADT queue, void *obj);
78: /**********************************queue.h*************************************
79: Function: dequeue()
81: Input : pointer to ADT
82: Output: na
83: Return: void * to element
84: Description: This function removes the data value at the head of the queue
85: and returns it to the client. dequeueing an empty queue is an error
86: Usage: obj = dequeue(queue);
87: **********************************queue.h*************************************/
88: extern void *dequeue(queue_ADT queue);
92: /**********************************queue.h*************************************
93: Function: len_queue()
95: Input : pointer to ADT
96: Output: na
97: Return: integer number of elements
98: Description: This function returns the number of elements in the queue.
99: Usage: n = len_queue(queue);
100: **********************************queue.h*************************************/
101: extern int len_queue(queue_ADT queue);
105: #endif