minor fixes in fast_oss

This commit is contained in:
gabime 2014-03-23 01:48:37 +02:00
parent 4ed60befbc
commit 8b53671c06
2 changed files with 6 additions and 11 deletions

View File

@ -12,6 +12,7 @@ namespace details
class str_devicebuf:public std::streambuf
{
public:
using Base = std::streambuf;
str_devicebuf() = default;
~str_devicebuf() = default;
@ -31,13 +32,7 @@ public:
}
protected:
int sync() override
{
return 0;
}
// copy the give buffer into the accumulated string.
// reserve initially 128 bytes which should be enough for common log lines
// copy the give buffer into the accumulated fast buffer
std::streamsize xsputn(const char_type* s, std::streamsize count) override
{
_fastbuf.append(s, static_cast<unsigned int>(count));
@ -45,14 +40,13 @@ protected:
}
int_type overflow(int_type ch) override
{
bool not_eofile = traits_type::not_eof(ch);
if (not_eofile)
{
if (traits_type::not_eof(ch))
{
char c = traits_type::to_char_type(ch);
xsputn(&c, 1);
}
return not_eofile;
return ch;
}
private:
fast_buf<192> _fastbuf;

View File

@ -62,6 +62,7 @@ public:
{
if (_enabled)
_oss << msg;
return std::move(*this);
}