dcsimg

Circular Buffer

WEBINAR:
On-Demand

Application Security Testing: An Integral Part of DevOps


I recently needed a class that stored a character array as a circular buffer. If you are unfamiliar with circular buffer, it is a permanently allocated buffer that has both a read and write position. I have done a few of them in the past, but had lost all of my examples. So I wrote a new one and placed it into a class called CircularBuffer. The CircularBuffer can be read from and written to, and it has methods to get the read and write count. As the buffer is written to the write position increases til the end of the buffer is reached, at that point the write position is wrapped back to the start of the buffer and writing starts from there. The same happens to the read operation also, but the read position is incremented. It is important to note that the read position will never be greater than the write positon, since if it were we would be reading data that had not been written to the buffer. Likewise, the write position will never wrap the read position otherwise data that had not been read would be overwritten.

The basic operations are read and write, both fail if an overlap condition could occur.

To get the number of availible characters to read the readCount method is used. If the count is greater than zero use the read method to get the latest contents written into the buffer.

I have included a small test application in a project TestQue. The test driver is in the TestQue.cpp. It is multithreaded win32 console app developed using VC6. The CircularBuffer code is in CircularBuffer.cpp and h.

Downloads

Download demo project - 12 Kb


Comments

  • There are no comments yet. Be the first to comment!

  • You must have javascript enabled in order to post comments.

Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • CEOs, CIOs, boards and shareholders are demanding digital transformation. They want their organizations to be more customer-focused, competitive and strategic to increase revenue. Data drives all of those aspects. A great first step in optimizing data use is moving data to the cloud. It can quickly show benefits. Here are six aspects of a cloud data management strategy that will help your organization more fully move, manage and use valuable data to successfully support digital transformation.

  • A CRM solution holds a wealth of information and document generation tools allow users to take that information and create documents with both visual appeal and function. Document generation is the process of automatically producing a file and document generation applications save companies time, mistakes, and money. You bought Salesforce to be more efficient — why are you still manually creating proposals, contracts, invoices, and account plans? Read this eBook to learn how you can automate virtually …

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date
×
We have made updates to our Privacy Policy to reflect the implementation of the General Data Protection Regulation.