21 class buffer :
public std::streambuf {
34 inline const char*
ptr_read()
const {
return gptr(); }
36 inline char*
ptr(std::size_t pos) {
41 inline const char*
ptr(std::size_t pos)
const {
91 inline std::streamsize
write(
const char_type* data, std::streamsize
size) {
return xsputn(data, size); }
93 inline std::streamsize
read(char_type* data, std::streamsize
size) {
return xsgetn(data, size); }
97 return std::streambuf::sputc(c);
100 int_type
overflow(int_type ch) {
return sputc(traits_type::to_char_type(ch)); }
110 std::streamsize
xsputn(
const char_type* s, std::streamsize count) {
112 return std::streambuf::xsputn(s, count);
116 std::streamsize
xsgetn(char_type* s, std::streamsize count) {
119 if (
size > bytes_left) {
122 return std::streambuf::xsgetn(s,
size);