12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- // queue.h -- interface for a queue
- #ifndef QUEUE_H_
- #define QUEUE_H_
- // This queue will contain Customer items
- class Customer
- {
- private:
- long arrive; // arrival time for customer
- int processtime; // processing time for customer
- public:
- Customer() : arrive(0), processtime (0){}
- void set(long when);
- long when() const { return arrive; }
- int ptime() const { return processtime; }
- };
- typedef Customer Item;
- class Queue
- {
- private:
- // class scope definitions
- // Node is a nested structure definition local to this class
- struct Node { Item item; struct Node * next;};
- enum {Q_SIZE = 10};
- // private class members
- Node * front; // pointer to front of Queue
- Node * rear; // pointer to rear of Queue
- int items; // current number of items in Queue
- const int qsize; // maximum number of items in Queue
- // preemptive definitions to prevent public copying
- Queue(const Queue & q) : qsize(0) { }
- Queue & operator=(const Queue & q) { return *this;}
- public:
- Queue(int qs = Q_SIZE); // create queue with a qs limit
- ~Queue();
- bool isempty() const;
- bool isfull() const;
- int queuecount() const;
- bool enqueue(const Item &item); // add item to end
- bool dequeue(Item &item); // remove item from front
- };
- #endif
|