summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/LoggerUtil.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/Ice/LoggerUtil.cpp')
-rw-r--r--cpp/src/Ice/LoggerUtil.cpp34
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)
{