Program Listing for File base_text_stream.hpp
↰ Return to documentation for file (/tmp/ws/src/ecl_core/ecl_streams/include/ecl/streams/text_streams/base_text_stream.hpp
)
/*****************************************************************************
** Ifdefs
*****************************************************************************/
#ifndef ECL_STREAMS_BASE_TEXT_STREAM_HPP_
#define ECL_STREAMS_BASE_TEXT_STREAM_HPP_
/*****************************************************************************
** Includes
*****************************************************************************/
#include <ecl/config/macros.hpp>
#include <ecl/errors/handlers.hpp>
#include "../macros.hpp"
/*****************************************************************************
** Namespaces
*****************************************************************************/
namespace ecl {
namespace interfaces {
/*****************************************************************************
** Interface [BaseTextStream]
*****************************************************************************/
template <typename Device>
class ECL_PUBLIC BaseTextStream {
public:
BaseTextStream() : error(ecl::NoError) {};
virtual ~BaseTextStream() {}
Device& device();
bool fail() const;
const ecl::Error& errorStatus() const;
protected:
ecl::Error error;
Device io_device;
};
/*****************************************************************************
** Implementation [BaseTextStream]
*****************************************************************************/
template <typename Device>
Device& BaseTextStream<Device>::device() { return io_device; }
template <typename Device>
bool BaseTextStream<Device>::fail() const {
if ( error.flag() != ecl::NoError ) {
return true;
} else {
return false;
}
}
template <typename Device>
const ecl::Error& BaseTextStream<Device>::errorStatus() const {
return error;
}
} // namespace interfaces
} // namespace ecl
#endif /* ECL_STREAMS_BASE_TEXT_STREAM_HPP_ */