A dbuffer is an opaque data structure that is accessed using functions that updates it or read information from it. Its purpose is to store blocks of data, and the dbuffer library doesn't try to interpret any of the data it contains.
The API is designed so that the implementation can be highly efficient, especially by making the following operations cheap:
All of the above mentioned operations can usually be done in constant time, with no copying of data already in the buffers. For the add operation, it is usually necessary to copy the actual data into the buffer, but it is sometimes possible to reusing existing data pointers.