00001 00010 /***************************************************************************** 00011 ** Ifdefs 00012 *****************************************************************************/ 00013 00014 #ifndef ECL_STREAMS_STRING_STREAM_HPP_ 00015 #define ECL_STREAMS_STRING_STREAM_HPP_ 00016 00017 /***************************************************************************** 00018 ** Includes 00019 *****************************************************************************/ 00020 00021 #include <string> 00022 #include <ecl/config/macros.hpp> 00023 #include <ecl/devices/string.hpp> 00024 #include "text_stream.hpp" 00025 #include "macros.hpp" 00026 00027 /***************************************************************************** 00028 ** Namespaces 00029 *****************************************************************************/ 00030 00031 namespace ecl { 00032 00033 /***************************************************************************** 00034 ** Using 00035 *****************************************************************************/ 00044 class ecl_streams_PUBLIC StringStream : public TextStream<String> { 00045 public: 00055 const char* c_str() { return this->io_device.c_str(); } 00056 00066 std::string str() { return this->io_device.str(); } 00067 00074 void clear() { io_device.clear(); } 00075 00076 virtual ~StringStream() {} 00077 }; 00078 00079 } // namespace ecl 00080 00081 00082 00083 00084 #endif /* ECL_STREAMS_STRING_STREAM_HPP_ */