/usr/include/bobcat/iostreambuf is in libbobcat-dev 2.20.01-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | #ifndef INCLUDED_BOBCAT_IOSTREAMBUF_
#define INCLUDED_BOBCAT_IOSTREAMBUF_
#include <fstream>
#include <streambuf>
namespace FBB
{
class IOStreambuf: public std::streambuf
{
char d_buf;
std::istream *d_in;
std::ostream *d_out;
public:
IOStreambuf(std::istream &in, std::ostream &out);
IOStreambuf();
virtual ~IOStreambuf();
void open(std::istream &in, std::ostream &out);
protected:
std::streamsize pXsputn(char const *buffer, std::streamsize n);
int pSync();
pos_type pSeekoff(off_type offset, std::ios::seekdir way,
std::ios::openmode mode =
std::ios::in | std::ios::out);
pos_type pSeekpos(pos_type offset,
std::ios::openmode mode =
std::ios::in | std::ios::out);
private:
virtual int underflow();
virtual pos_type seekoff(off_type offset, std::ios::seekdir way,
std::ios::openmode mode =
std::ios::in | std::ios::out);
virtual pos_type seekpos(pos_type offset,
std::ios::openmode mode =
std::ios::in | std::ios::out);
virtual int sync();
virtual int overflow(int c);
virtual std::streamsize xsputn(char const *buffer, std::streamsize n);
};
inline IOStreambuf::IOStreambuf(std::istream &in, std::ostream &out)
{
open(in, out);
}
inline IOStreambuf::IOStreambuf()
:
d_in(0),
d_out(0)
{}
inline IOStreambuf::pos_type IOStreambuf::pSeekpos(pos_type offset,
std::ios::openmode mode)
{
return seekoff(offset, std::ios::beg, mode);
}
inline std::streamsize IOStreambuf::pXsputn(char const *buffer,
std::streamsize n)
{
return d_out->write(buffer, n) ? n : 0;
}
} // namespace FBB
#endif
|