/////// File Cirbuf.H /////// const int D_SIZE = 16; class Cirbuf { private: int _head; // first char in buffer int _tail; // first empty slot in buffer int _length; // number of characters in buffer int _size; // capacity of buffer char* _cb; // pointer to buffer int mod (int x) { return (x >= _size ? x - _size : x); } public: Cirbuf (int size = D_SIZE); // constructor Cirbuf (const Cirbuf& buf); // copy constructor Cirbuf& operator= (const Cirbuf& buf); int Produce (char c); int Consume (); int IsEmpty () { return (_length == 0); } int IsFull () { return (_length == _size); } ~Cirbuf(); // destructor };