/usr/include/bobcat/ofdstreambuf is in libbobcat-dev 3.19.01-1ubuntu1.
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 74 75 76 77 78 79 | #ifndef INCLUDED_BOBCAT_OFDSTREAMBUF_
#define INCLUDED_BOBCAT_OFDSTREAMBUF_
#include <streambuf>
namespace FBB
{
class OFdStreambuf: public std::streambuf
{
public:
// Mode defines what to do with the file descriptor at
// destruction-time or when the default open is
// called. CLOSE_FD will close the fd, KEEP_FD will leave the
// fd as-is. When open is called with a Mode argument, then
// the provided argument is used for the actual fd. The Mode
// specified at the constructor is therefore only used for the
// mode-less open() call and for the destructor.
enum Mode
{
CLOSE_FD,
KEEP_FD,
};
private:
Mode d_mode;
size_t d_n;
int d_fd;
char *d_buffer;
public:
OFdStreambuf();
explicit OFdStreambuf(Mode mode);
explicit OFdStreambuf(int fd, size_t n = 1);
OFdStreambuf(int fd, Mode mode, size_t n = 1);
OFdStreambuf(OFdStreambuf const &other) = delete;
virtual ~OFdStreambuf();
OFdStreambuf &operator=(OFdStreambuf const &other) = delete;
void open(int fd, Mode mode, size_t n = 1);
void open(int fd, size_t n = 1); // .f
int fd() const; // .f
void close(); // .f
protected:
int pSync(); // .f
private:
int sync() override;
int overflow(int c) override;
void cleanup(Mode mode);
};
inline void OFdStreambuf::close()
{
cleanup(CLOSE_FD);
}
inline int OFdStreambuf::fd() const
{
return d_fd;
}
inline void OFdStreambuf::open(int fd, size_t n)
{
open(fd, d_mode, n);
}
inline int OFdStreambuf::pSync()
{
return sync();
}
} // FBB
#endif
|