I don't think this is a circular buffer. The strategy here is to shift the data inside the buffer to the middle once either the front or back pointer are at the front/end of the buffer respectively, rather than to wrap around.
My intuition is that a circular buffer would be better though, because it would not have to do any large scale moves of memory until it came time to reallocate.