- 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
    00013 class MemoryOutStream : public std::ostringstream
    00014 {
    00015 public:
    00016     MemoryOutStream() {}
    00017     ~MemoryOutStream() {}
    00018     char const* GetText() const;
    00019
    00020 private:
    00021     MemoryOutStream(MemoryOutStream const&);
    00022     void operator =(MemoryOutStream const&);
    00023
    00024     mutable std::string m_text;
    00025 };
    00026
    00027 }
    00028
    00029 #else
    00030
    00031 #include <cstddef>
    00032
    00033 namespace UnitTest
    00034 {
    00035
    00036 class MemoryOutStream
    00037 {
    00038 public:
    00039     explicit MemoryOutStream(int const size = 256);
    00040     ~MemoryOutStream();
    00041
    00042     char const* GetText() const;
    00043
    00044     MemoryOutStream& operator << (char const* txt);
    00045     MemoryOutStream& operator << (int n);
    00046     MemoryOutStream& operator << (long n);
    00047     MemoryOutStream& operator << (unsigned long n);
    00048     MemoryOutStream& operator << (float f);
    00049     MemoryOutStream& operator << (double d);
    00050     MemoryOutStream& operator << (void const* p);
    00051     MemoryOutStream& operator << (unsigned int s);
    00052
    00053     enum { GROW_CHUNK_SIZE = 32 };
    00054     int GetCapacity() const;
    00055
    00056 private:
    00057     void operator= (MemoryOutStream const&);
    00058     void GrowBuffer(int capacity);
    00059
    00060     int m_capacity;
    00061     char* m_buffer;
    00062 };
    00063
    00064 }
    00065
    00066 #endif
    00067
    00068 #endif