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