15 #ifndef INCG_IRIS_IUTEST_STREAM_HPP_3A4AF139_9F24_4730_81D0_DADFCE6DCF99_
16 #define INCG_IRIS_IUTEST_STREAM_HPP_3A4AF139_9F24_4730_81D0_DADFCE6DCF99_
36 virtual ~IOutStream() {}
39 virtual bool Write(
const void* buf,
size_t size,
size_t cnt) = 0;
41 virtual int Printf(
const char* fmt, ...) IUTEST_ATTRIBUTE_FORMAT_PRINTF(2, 3)
45 const ::std::string str = StringFormat(fmt, va);
47 const size_t len = str.length();
48 Write(str.c_str(), len, 1);
49 return static_cast<int>(len);
59 virtual ~IInStream() {}
62 virtual bool Read(
void* buf,
size_t size,
size_t cnt) = 0;
65 virtual iu_uint_max_t GetSize() = 0;
69 virtual ::std::string ReadAll()
72 const size_t size =
static_cast<size_t>(GetSize());
75 char* buf =
new char[size+1];
77 if( Read(buf, size, 1) )
90 class FileOutStream :
public IOutStream
107 if( fwrite(buf, size, cnt, m_fp) < cnt )
#define IUTEST_CXX_OVERRIDE
override definition
Definition: iutest_compiler.hpp:747
#define IUTEST_CXX_NOEXCEPT_SPEC
noexcept specification definition
Definition: iutest_compiler.hpp:811
iris unit test string utilities
iutest root namespace
Definition: iutest_charcode.hpp:33