Self-expanding buffer, that can be used with functions returning the number of the read bytes.
Circular, self-expanding buffer with overflow support. Can be used with functions returning returning the number of the transferred bytes.
Interface for implemeting input/output buffers.