#ifndef QUEUE_UTILITY_H #define QUEUE_UTILITY_H // header files #include "ArrayDataEngine.h" // data structures typedef StateArrayType QueueType; // function prototypes /* Name: clearQueue Process: clears QueueType, returns NULL Function input/parameters: pointer to queue type (QueueType *) Function output/parameters: none Function output/returned: NULL Device input/---: none Device output/---: none Dependencies: clearDataStructure */ QueueType *clearQueue( QueueType *queue ); /* Name: createQueue Process: creates QueueType, initializes front index to zero, rear index to -1, returns pointer to data structure Function input/parameters: initial capacity (int) Function output/parameters: none Function output/returned: pointer to queue type (QueueType *) Device input/---: none Device output/---: none Dependencies: createDataStructure */ QueueType *createQueue( int initialCapacity ); /* Name: peekFront Process: captures value at front of queue returns true if successful and sets return value, otherwise, sets return value to empty, returns false Function input/parameters: pointer to queue type (QueueType *) Function output/parameters: pointer to return value (StateDataType *) Function output/returned: Boolean result of operation Device input/---: none Device output/---: none Dependencies: getItemAtIndex, getListSize */ bool peekFront( StateDataType *returnVal, const QueueType queue ); /* Name: dequeue Process: captures value at front of queue, removes and returns value, returns true if successful, otherwise, sets return value to empty, returns false Function input/parameters: pointer to queue type (QueueType *) Function output/parameters: pointer to return value (StateDataType *) Function output/returned: Boolean result of operation Device input/---: none Device output/---: none Dependencies: removeItemAtIndex, getListSize */ bool dequeue( StateDataType *returnVal, QueueType *queue ); /* Name: enqueue Process: sets value at rear of queue returns true if successful, false otherwise Function input/parameters: pointer to queue type (QueueType *) Function output/parameters: value to be pushed (const StateDataType) Function output/returned: Boolean result of operation Device input/---: none Device output/---: none Dependencies: insertItemAtIndex */ bool enqueue( QueueType *queue, const StateDataType toBePushed ); #endif // QUEUE_UTILITY_H