#ifndef __JLANG__JACCESSIBLEBINARYSTREAM__ #define __JLANG__JACCESSIBLEBINARYSTREAM__ #include #include #include "JLang/JAccessibleStream.hh" /** * \author mdejong */ namespace JLANG {} namespace JPP { using namespace JLANG; } namespace JLANG { /** * Accessible binary input stream. * * This class is a simple wrapper around the JAccessibleInputStream class. * It re-implements the method open() of the JAccessible interface for binary I/O. */ class JAccessibleBinaryInputStream : public JAccessibleInputStream { public: /** * Default constructor. */ JAccessibleBinaryInputStream() {} /** * Constructor. * * \param file_name file name */ JAccessibleBinaryInputStream(const char* file_name) { open(file_name); } /** * Open file. * * \param file_name file name */ virtual void open(const char* file_name) override { std::ifstream::open(file_name, std::ios::binary); } }; /** * Accessible output stream. * * This class is a simple wrapper around the JAccessibleOutputStream class. * It re-implements the method open() of the JAccessible interface for binary I/O. */ class JAccessibleBinaryOutputStream : public JAccessibleOutputStream { public: /** * Default constructor. */ JAccessibleBinaryOutputStream() {} /** * Constructor. * * \param file_name file name */ JAccessibleBinaryOutputStream(const char* file_name) { open(file_name); } /** * Open file. * * \param file_name file name */ virtual void open(const char* file_name) override { std::ofstream::open(file_name, std::ios::binary); } }; } #endif