| #ifndef UNITTEST_MEMORYOUTSTREAM_H |
| #define UNITTEST_MEMORYOUTSTREAM_H |
| |
| #include "Config.h" |
| #include "HelperMacros.h" |
| |
| #ifdef UNITTEST_MEMORYOUTSTREAM_IS_STD_OSTRINGSTREAM |
| |
| #include <sstream> |
| |
| namespace UnitTest |
| { |
| |
| class UNITTEST_LINKAGE MemoryOutStream : public std::ostringstream |
| { |
| public: |
| MemoryOutStream() {} |
| ~MemoryOutStream() {} |
| void Clear(); |
| char const* GetText() const; |
| |
| private: |
| MemoryOutStream(MemoryOutStream const&); |
| void operator =(MemoryOutStream const&); |
| |
| mutable std::string m_text; |
| }; |
| |
| } |
| |
| #else |
| |
| #include <cstddef> |
| |
| namespace UnitTest |
| { |
| |
| class UNITTEST_LINKAGE MemoryOutStream |
| { |
| public: |
| explicit MemoryOutStream(int const size = 256); |
| ~MemoryOutStream(); |
| |
| void Clear(); |
| char const* GetText() const; |
| |
| MemoryOutStream& operator <<(char const* txt); |
| MemoryOutStream& operator <<(int n); |
| MemoryOutStream& operator <<(long n); |
| MemoryOutStream& operator <<(long long n); |
| MemoryOutStream& operator <<(unsigned long n); |
| MemoryOutStream& operator <<(unsigned long long n); |
| MemoryOutStream& operator <<(float f); |
| MemoryOutStream& operator <<(double d); |
| MemoryOutStream& operator <<(void const* p); |
| MemoryOutStream& operator <<(unsigned int s); |
| |
| enum { GROW_CHUNK_SIZE = 32 }; |
| int GetCapacity() const; |
| |
| private: |
| void operator= (MemoryOutStream const&); |
| void GrowBuffer(int capacity); |
| |
| int m_capacity; |
| char* m_buffer; |
| }; |
| |
| } |
| |
| #endif |
| |
| #endif |