#ifndef __pxx_binary_stream_hh__
#define __pxx_binary_stream_hh__

#include "pxx_stream.hh"

namespace pxx
{

class BinaryStream :
  public Stream
{

public:

  inline BinaryStream (io_mode_t _mode) ;

  inline BinaryStream& operator << (char _c) ;
  inline BinaryStream& operator >> (char& _c) ;
  inline BinaryStream& operator << (int8_t _num) ;
  inline BinaryStream& operator >> (int8_t& _num) ;
  inline BinaryStream& operator << (uint8_t _num) ;
  inline BinaryStream& operator >> (uint8_t& _num) ;
  inline BinaryStream& operator << (int16_t _num) ;
  inline BinaryStream& operator >> (int16_t& _num) ;
  inline BinaryStream& operator << (uint16_t _num) ;
  inline BinaryStream& operator >> (uint16_t& _num) ;
  inline BinaryStream& operator << (int32_t _num) ;
  inline BinaryStream& operator >> (int32_t& _num) ;
  inline BinaryStream& operator << (uint32_t _num) ;
  inline BinaryStream& operator >> (uint32_t& _num) ;
  inline BinaryStream& operator << (int64_t _num) ;
  inline BinaryStream& operator >> (int64_t& _num) ;
  inline BinaryStream& operator << (uint64_t _num) ;
  inline BinaryStream& operator >> (uint64_t& _num) ;
  using Stream::operator << ;
  using Stream::operator >> ;

  inline BinaryStream& endl () ;

};

}

#endif // __pxx_binary_stream_hh__
