CBuffer class provides a combination of easy thread-safe buffer and string methods that make it convenient in many situations. It is used to package messages with the CSock Class, whether the payload is binary or text.
The source code for CBuffer comes in the firstobject XML Messaging project with the Advanced CMarkup Developer License.
CBuffer uses internal reference counting to support passing it around and copying it efficiently, like the MFC
CString does. In other words, you can pass it to a function by value or assign it to another
= and though it constructs a new
CBuffer it will not make a copy of the data itself unless the data is changed in one of the buffer objects. This improves the efficiency of staging the buffer during the asynchronous send and receive process.
CBuffer does this using an internally managed structure called
CBufferInstance which contains the data. For example, in the following code you end up with two
CBuffer objects referencing one
CBuffer buf1, buf2 = "1234"; buf1 = buf2;
You can set the data of a buffer from a string, another buffer, or from a
void* memory block. The
GetViewable() method returns a hexidecimal string.