- Main Page
- Related Pages
- Classes
- Files

- File List
- File Members

# MemoryOutStream.h

    00001 #ifndef UNITTEST_MEMORYOUTSTREAM_H
    00002 #define UNITTEST_MEMORYOUTSTREAM_H
    00003
    00004 #include "Config.h"
    00005
    00006 #ifndef UNITTEST_USE_CUSTOM_STREAMS
    00007
    00008 #include <sstream>
    00009
    00010 namespace UnitTest {
    00011
    00012 class MemoryOutStream : public std::ostringstream {
    00013 public:
    00014         MemoryOutStream() {}
    00015         ~MemoryOutStream() {}
    00016         char const* GetText() const;
    00017
    00018 private:
    00019         MemoryOutStream ( MemoryOutStream const& );
    00020         void operator = ( MemoryOutStream const& );
    00021
    00022         mutable std::string m_text;
    00023 };
    00024
    00025 }
    00026
    00027 #else
    00028
    00029 #include <cstddef>
    00030
    00031 namespace UnitTest {
    00032
    00033 class MemoryOutStream {
    00034 public:
    00035         explicit MemoryOutStream ( int const size = 256 );
    00036         ~MemoryOutStream();
    00037
    00038         char const* GetText() const;
    00039
    00040         MemoryOutStream& operator << ( char const* txt );
    00041         MemoryOutStream& operator << ( int n );
    00042         MemoryOutStream& operator << ( long n );
    00043         MemoryOutStream& operator << ( unsigned long n );
    00044         MemoryOutStream& operator << ( float f );
    00045         MemoryOutStream& operator << ( double d );
    00046         MemoryOutStream& operator << ( void const* p );
    00047         MemoryOutStream& operator << ( unsigned int s );
    00048
    00049         enum { GROW_CHUNK_SIZE = 32 };
    00050         int GetCapacity() const;
    00051
    00052 private:
    00053         void operator= ( MemoryOutStream const& );
    00054         void GrowBuffer ( int capacity );
    00055
    00056         int m_capacity;
    00057         char* m_buffer;
    00058 };
    00059
    00060 }
    00061
    00062 #endif
    00063
    00064 #endif