diff options
Diffstat (limited to 'cpp/test/include/TestHelper.h')
-rw-r--r-- | cpp/test/include/TestHelper.h | 69 |
1 files changed, 9 insertions, 60 deletions
diff --git a/cpp/test/include/TestHelper.h b/cpp/test/include/TestHelper.h index bad48159649..56ce76e31c7 100644 --- a/cpp/test/include/TestHelper.h +++ b/cpp/test/include/TestHelper.h @@ -63,72 +63,21 @@ class StreamHelper : public std::streambuf { public: - StreamHelper(ControllerHelper* controllerHelper, bool redirect) : _controllerHelper(controllerHelper) - { - setp(&data[0], &data[sizeof(data) - 1]); - if(redirect) - { - _previousLogger = Ice::getProcessLogger(); - Ice::setProcessLogger(Ice::getProcessLogger()->cloneWithPrefix(_controllerHelper->loggerPrefix())); - - _previousCoutBuffer = std::cout.rdbuf(); - std::cout.rdbuf(this); - - _previousCerrBuffer = std::cerr.rdbuf(); - std::cerr.rdbuf(this); - } - } - - ~StreamHelper() - { - if(_previousLogger) - { - Ice::setProcessLogger(_previousLogger); - std::cout.rdbuf(_previousCoutBuffer); - std::cerr.rdbuf(_previousCerrBuffer); - } - } + StreamHelper(); + ~StreamHelper(); - virtual void flush() - { - } + void setControllerHelper(ControllerHelper*); - virtual void newLine() - { - _controllerHelper->print("\n"); - } + virtual void flush(); + virtual void newLine(); private: - int sync() - { - assert(_controllerHelper); - std::streamsize n = pptr() - pbase(); - _controllerHelper->print(std::string(pbase(), static_cast<int>(n))); - pbump(-static_cast<int>(pptr() - pbase())); - return 0; - } - - int overflow(int ch) - { - sync(); - if(ch != EOF) - { - assert(pptr() != epptr()); - sputc(static_cast<char>(ch)); - } - return 0; - } - - int sputc(char c) - { - if(c == '\n') - { - pubsync(); - } - return std::streambuf::sputc(c); - } + virtual int sync(); + virtual int overflow(int); + virtual int sputc(char); + IceUtil::Mutex _mutex; ControllerHelper* _controllerHelper; char data[1024]; Ice::LoggerPtr _previousLogger; |