52 omembuf(
char * p , std::size_t n ) ;
56 std::streambuf * setbuf(
char * p , std::streamsize n )
override ;
59 std::streampos seekoff( std::streamoff , std::ios_base::seekdir , std::ios_base::openmode )
override ;
64 std::streampos seekpos( std::streampos , std::ios_base::openmode )
override ;
68 std::streamsize xsputn(
const char * p , std::streamsize n )
override ;
76 void operator=(
const omembuf & ) = delete ;
77 void operator=(
omembuf && ) = delete ;
87std::streambuf * G::omembuf::setbuf(
char * p , std::streamsize n )
94std::streampos G::omembuf::seekoff( std::streamoff off , std::ios_base::seekdir way , std::ios_base::openmode which )
96 if( off == 0 && way == std::ios_base::cur && ( which & std::ios_base::out ) )
97 return pptr() - pbase() ;
103std::streampos G::omembuf::seekpos( std::streampos pos , std::ios_base::openmode which )
105 if( pos == 0 && ( which & std::ios_base::out ) )
107 setp( pbase() , epptr() ) ;
117std::streamsize G::omembuf::xsputn(
const char * p , std::streamsize n )
119 char * start = pptr() ;
120 if( start ==
nullptr )
return 0 ;
121 std::streamsize space = epptr() - start ;
122 std::streamsize ncopy = std::min( space , n ) ;
123 std::memcpy( start , p ,
static_cast<std::size_t
>(ncopy) ) ;
124 pbump(
static_cast<int>(ncopy) ) ;
An output streambuf that writes to a fixed-size char buffer.
omembuf(char *p, std::size_t n)
Constructor.