base_text_stream.hpp
Go to the documentation of this file.
00001 
00008 /*****************************************************************************
00009 ** Ifdefs
00010 *****************************************************************************/
00011 
00012 #ifndef ECL_STREAMS_BASE_TEXT_STREAM_HPP_
00013 #define ECL_STREAMS_BASE_TEXT_STREAM_HPP_
00014 
00015 /*****************************************************************************
00016 ** Includes
00017 *****************************************************************************/
00018 
00019 #include <ecl/config/macros.hpp>
00020 #include <ecl/errors/handlers.hpp>
00021 
00022 /*****************************************************************************
00023 ** Namespaces
00024 *****************************************************************************/
00025 
00026 namespace ecl {
00027 namespace interfaces {
00028 
00029 /*****************************************************************************
00030 ** Interface [BaseTextStream]
00031 *****************************************************************************/
00041 template <typename Device>
00042 class ECL_PUBLIC BaseTextStream {
00043 public:
00044         BaseTextStream() : error(ecl::NoError) {};
00045         virtual ~BaseTextStream() {}
00046     Device& device();
00047     bool fail() const;
00048     const ecl::Error& errorStatus() const;
00049 
00050 protected:
00051     ecl::Error error;
00052         Device io_device;
00053 };
00054 
00055 /*****************************************************************************
00056 ** Implementation [BaseTextStream]
00057 *****************************************************************************/
00064 template <typename Device>
00065 Device& BaseTextStream<Device>::device() { return io_device; }
00066 
00076 template <typename Device>
00077 bool BaseTextStream<Device>::fail() const {
00078         if ( error.flag() != ecl::NoError ) {
00079                 return true;
00080         } else {
00081                 return false;
00082         }
00083 }
00092 template <typename Device>
00093 const ecl::Error& BaseTextStream<Device>::errorStatus() const {
00094         return error;
00095 }
00096 
00097 } // namespace interfaces
00098 } // namespace ecl
00099 
00100 #endif /* ECL_STREAMS_BASE_TEXT_STREAM_HPP_ */


ecl_streams
Author(s): Daniel Stonier (d.stonier@gmail.com)
autogenerated on Thu Jan 2 2014 11:12:54