1 #ifndef __JLANG__JFILESTREAMBUFFER__
2 #define __JLANG__JFILESTREAMBUFFER__
17 namespace JPP {
using namespace JLANG; }
27 public virtual std::streambuf
43 const std::size_t size = 65536,
44 const std::size_t put_back = 8) :
48 resize(size + put_back),
50 setg(this->data(), this->data(), this->data());
62 if (gptr() >= egptr()) {
64 char* __begin = this->data();
66 if (eback() == __begin) {
75 const size_t len =
in.
read(__begin, this->size() - (__begin - this->data()));
78 setg(this->data(), __begin, __begin + len);
80 return traits_type::eof();
110 public virtual std::streambuf
126 const std::size_t size = 65536) :
133 setp(this->data(), this->data() + this->size() - 1);
155 if (c != traits_type::eof()) {
161 if (
flush() == traits_type::eof()) {
162 return traits_type::eof();
175 if (
flush() == traits_type::eof())
200 const int len = pptr() - pbase();
204 if (
out.
write(this->data(), len) != len) {
205 return traits_type::eof();
238 const std::size_t size = 65536,
239 const std::size_t put_back = 8) :
Input and output file stream buffer.
static JTimeval min()
Get minimal time value.
virtual int read(char *buffer, const int length)
Read data from file.
JFileStreamBuffer(const JAbstractFile &in, const JAbstractFile &out, const std::size_t size=65536, const std::size_t put_back=8)
Constructor.
JFileOutputStreamBuffer(const JAbstractFile &file, const std::size_t size=65536)
Constructor.
traits_type::int_type int_type
virtual int sync()
Synchronise buffer.
int flush()
Flush internal buffer.
Auxiliary class for time values.
The JFile class extends the JAbstractFile class.
bool out_avail(JTimeval timeout=JTimeval::min())
Check availability of output.
virtual int_type overflow(int_type c)
Check overflow.
Auxiliary class for method select.
The JAbstractFile class encapsulates the c-style file descriptor.
virtual ~JFileOutputStreamBuffer()
Destructor.
bool out_avail(JTimeval timeout=JTimeval::min()) const
Check availability of output.
Output file stream buffer.
std::streamsize streamsize
virtual int write(const char *buffer, const int length)
Write data to file.
bool in_avail(JTimeval timeout=JTimeval::min())
Check availability of input.