diff options
Diffstat (limited to 'cpp/src/Ice/LoggerUtil.cpp')
-rw-r--r-- | cpp/src/Ice/LoggerUtil.cpp | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/cpp/src/Ice/LoggerUtil.cpp b/cpp/src/Ice/LoggerUtil.cpp index 5e87c44cb5b..d9d80c52720 100644 --- a/cpp/src/Ice/LoggerUtil.cpp +++ b/cpp/src/Ice/LoggerUtil.cpp @@ -14,6 +14,40 @@ using namespace std; using namespace Ice; using namespace IceInternal; +Ice::Print::Print(const LoggerPtr& logger) : + _logger(logger) +{ +} + +Ice::Print::~Print() +{ + flush(); +} + +void +Ice::Print::flush() +{ + string s = _str.str(); + if(!s.empty()) + { + _logger->print(s); + } + _str.str(""); +} + +ostringstream& +Ice::Print::__str() +{ + return _str; +} + +Print& +Ice::operator<<(Print& out, ios_base& (*val)(ios_base&)) +{ + out.__str() << val; + return out; +} + Ice::Warning::Warning(const LoggerPtr& logger) : _logger(logger) { |