1 #ifndef UNITTEST_MEMORYOUTSTREAM_H 2 #define UNITTEST_MEMORYOUTSTREAM_H 3 4 #include "Config.h" 5 #include "HelperMacros.h" 6 7 #ifdef UNITTEST_MEMORYOUTSTREAM_IS_STD_OSTRINGSTREAM 8 9 #include <sstream> 10 11 namespace UnitTest 12 { 13 14 class UNITTEST_LINKAGE MemoryOutStream : public std::ostringstream 15 { 16 public: MemoryOutStream()17 MemoryOutStream() {} ~MemoryOutStream()18 ~MemoryOutStream() {} 19 void Clear(); 20 char const* GetText() const; 21 22 private: 23 MemoryOutStream(MemoryOutStream const&); 24 void operator =(MemoryOutStream const&); 25 26 mutable std::string m_text; 27 }; 28 29 #ifdef UNITTEST_COMPILER_IS_MSVC6 30 std::ostream& operator<<(std::ostream& stream, __int64 const n); 31 std::ostream& operator<<(std::ostream& stream, unsigned __int64 const n); 32 #endif 33 34 } 35 36 #else 37 38 #include <cstddef> 39 40 #ifdef UNITTEST_COMPILER_IS_MSVC6 41 namespace std {} 42 #endif 43 44 namespace UnitTest 45 { 46 47 class UNITTEST_LINKAGE MemoryOutStream 48 { 49 public: 50 explicit MemoryOutStream(int const size = 256); 51 ~MemoryOutStream(); 52 53 void Clear(); 54 char const* GetText() const; 55 56 MemoryOutStream& operator <<(char const* txt); 57 MemoryOutStream& operator <<(int n); 58 MemoryOutStream& operator <<(long n); 59 MemoryOutStream& operator <<(unsigned long n); 60 #ifdef UNITTEST_COMPILER_IS_MSVC6 61 MemoryOutStream& operator <<(__int64 n); 62 MemoryOutStream& operator <<(unsigned __int64 n); 63 #else 64 MemoryOutStream& operator <<(long long n); 65 MemoryOutStream& operator <<(unsigned long long n); 66 #endif 67 MemoryOutStream& operator <<(float f); 68 MemoryOutStream& operator <<(double d); 69 MemoryOutStream& operator <<(void const* p); 70 MemoryOutStream& operator <<(unsigned int s); 71 72 enum { GROW_CHUNK_SIZE = 32 }; 73 int GetCapacity() const; 74 75 private: 76 void operator= (MemoryOutStream const&); 77 void GrowBuffer(int capacity); 78 79 int m_capacity; 80 char* m_buffer; 81 }; 82 83 } 84 85 #endif 86 87 #endif 88