#ifndef __pxx_fd_text_stream_ih__ #define __pxx_fd_text_stream_ih__ #include "pxx_fd_text_stream.hh" #include "pxx_text_stream.ih" #include "pxx_fd_buffer.ih" namespace pxx { inline FD_TextStream::FD_TextStream ( int _fd, io_mode_t _mode, size_t _bufsize /* = Buffer::default_size */ ) : TextStream (_mode), FD_Buffer (_fd, _bufsize) {} inline FD_TextStream::~FD_TextStream () { flush(); } inline FD_TextStream& FD_TextStream::flush () { if (mode == mode_write) FD_Buffer::write(); return self; } inline void FD_TextStream::put (char _c) { Buffer::put(_c); } inline void FD_TextStream::get (char& _c) { if (!Buffer::get(_c)) eof = true; } inline void FD_TextStream::unget (char _c) { Buffer::unget(_c); eof = false; } inline size_t FD_TextStream::read (void* _buf, size_t _len) { size_t ret = Buffer::get(_buf, _len); if (ret < _len) eof = true; return ret; } inline size_t FD_TextStream::write (void* _buf, size_t _len) { return Buffer::put(_buf, _len); } } #endif // __pxx_fd_text_stream_ih__