You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4cxx-dev@logging.apache.org by ca...@apache.org on 2007/09/25 08:00:10 UTC

svn commit: r579082 - in /logging/log4cxx/trunk/src/main: cpp/messagebuffer.cpp include/log4cxx/helpers/messagebuffer.h include/log4cxx/logger.h

Author: carnold
Date: Mon Sep 24 23:00:09 2007
New Revision: 579082

URL: http://svn.apache.org/viewvc?rev=579082&view=rev
Log:
LOGCXX-18: Second iteration, drop use of operator+

Modified:
    logging/log4cxx/trunk/src/main/cpp/messagebuffer.cpp
    logging/log4cxx/trunk/src/main/include/log4cxx/helpers/messagebuffer.h
    logging/log4cxx/trunk/src/main/include/log4cxx/logger.h

Modified: logging/log4cxx/trunk/src/main/cpp/messagebuffer.cpp
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/cpp/messagebuffer.cpp?rev=579082&r1=579081&r2=579082&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/cpp/messagebuffer.cpp (original)
+++ logging/log4cxx/trunk/src/main/cpp/messagebuffer.cpp Mon Sep 24 23:00:09 2007
@@ -19,45 +19,20 @@
 
 using namespace log4cxx::helpers;
 
-MessageBuffer::MessageBuffer() {
+CharMessageBuffer::CharMessageBuffer() {
     stream = 0;
-#if LOG4CXX_HAS_WCHAR_T    
-    wbuf = 0;
-#endif    
 }
 
-MessageBuffer::~MessageBuffer() {
+CharMessageBuffer::~CharMessageBuffer() {
     delete stream;
-#if LOG4CXX_HAS_WCHAR_T    
-    delete wbuf;
-#endif
-}
-        
-MessageBuffer& MessageBuffer::operator+(const std::string& msg) {
-    buf.assign(msg);
-    return *this;
-}
-
-MessageBuffer& MessageBuffer::operator+(const char* msg) {
-    if (0 == msg) {
-       buf.assign("null");
-    } else {
-        buf.assign(msg);
-    }
-    return *this;
 }
 
-MessageBuffer& MessageBuffer::operator+(const char msg) {
-    buf.assign(1, msg);
-    return *this;
-}
-        
-MessageBuffer& MessageBuffer::operator<<(const std::string& msg) {
+CharMessageBuffer& CharMessageBuffer::operator<<(const std::string& msg) {
     buf.append(msg);
     return *this;
 }
 
-MessageBuffer& MessageBuffer::operator<<(const char* msg) {
+CharMessageBuffer& CharMessageBuffer::operator<<(const char* msg) {
     if (0 == msg) {
        buf.append("null");
     } else {
@@ -66,20 +41,29 @@
     return *this;
 }
 
-MessageBuffer& MessageBuffer::operator<<(const char msg) {
+CharMessageBuffer& CharMessageBuffer::operator<<(const char msg) {
     buf.append(1, msg);
     return *this;
 }
         
-const std::string& MessageBuffer::str(const MessageBuffer&) const {
+const std::string& CharMessageBuffer::str(const MessageBuffer&) const {
     return buf;
 }
 
-std::string MessageBuffer::str(const std::ostream&) const {
+std::string CharMessageBuffer::str(const std::ostream&) const {
     return stream->str();
 }
 
+
 #if LOG4CXX_HAS_WCHAR_T
+MessageBuffer::MessageBuffer() {
+    wbuf = 0;
+}
+
+MessageBuffer::~MessageBuffer() {
+    delete wbuf;
+}
+        
 WideMessageBuffer& MessageBuffer::operator+(const std::wstring& msg) {
    wbuf = new WideMessageBuffer(msg);
    return *wbuf;

Modified: logging/log4cxx/trunk/src/main/include/log4cxx/helpers/messagebuffer.h
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/include/log4cxx/helpers/messagebuffer.h?rev=579082&r1=579081&r2=579082&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/include/log4cxx/helpers/messagebuffer.h (original)
+++ logging/log4cxx/trunk/src/main/include/log4cxx/helpers/messagebuffer.h Mon Sep 24 23:00:09 2007
@@ -25,6 +25,31 @@
 
 namespace log4cxx {
    namespace helpers {
+   
+   class LOG4CXX_EXPORT CharMessageBuffer {
+   public:
+        CharMessageBuffer();
+        ~CharMessageBuffer();
+        
+        CharMessageBuffer& operator<<(const std::string& msg);
+        CharMessageBuffer& operator<<(const char* msg);
+        CharMessageBuffer& operator<<(const char msg);
+        
+        template<class T> 
+        std::ostream& operator<<(T arg) {
+           stream = new std::ostringstream();
+           return *stream << buf << arg;
+        }
+
+        const std::string& str(const CharMessageBuffer&) const;
+        std::string str(const std::ostream&) const;
+        
+   private:
+        std::string buf;
+        std::ostringstream* stream;
+   };
+
+   
 
 #if LOG4CXX_HAS_WCHAR_T           
    class LOG4CXX_EXPORT WideMessageBuffer {
@@ -51,51 +76,25 @@
          std::wstring buf;
          std::wostringstream* stream;
    };
-#endif   
-   
-   class LOG4CXX_EXPORT MessageBuffer {
+
+   class LOG4CXX_EXPORT MessageBuffer : public CharMessageBuffer {
    public:
         MessageBuffer();
         ~MessageBuffer();
         
-        MessageBuffer& operator+(const std::string& msg);
-        MessageBuffer& operator+(const char* msg);
-        MessageBuffer& operator+(const char msg);
-        
-        MessageBuffer& operator<<(const std::string& msg);
-        MessageBuffer& operator<<(const char* msg);
-        MessageBuffer& operator<<(const char msg);
-        
-        template<class T> 
-        std::ostream& operator<<(T arg) {
-           stream = new std::ostringstream();
-           return *stream << buf << arg;
-        }
-
-        template<class T> 
-        std::ostream& operator+(T arg) {
-           return operator<<(arg);
-        }
-        
-        const std::string& str(const MessageBuffer&) const;
-        std::string str(const std::ostream&) const;
-        
-#if LOG4CXX_HAS_WCHAR_T        
-        WideMessageBuffer& operator+(const std::wstring& msg);
-        WideMessageBuffer& operator+(const wchar_t* msg);
-        WideMessageBuffer& operator+(const wchar_t msg);
+        WideMessageBuffer& operator<<(const std::wstring& msg);
+        WideMessageBuffer& operator<<(const wchar_t* msg);
+        WideMessageBuffer& operator<<(const wchar_t msg);
 
         const std::wstring& str(const WideMessageBuffer&) const;
         std::wstring str(const std::wostream&) const;
-#endif
 
    private:
-        std::string buf;
-        std::ostringstream* stream;
-#if LOG4CXX_HAS_WCHAR_T
         WideMessageBuffer* wbuf;        
-#endif
    };
+#else
+typedef class CharMessageBuffer MessageBuffer;
+#endif
 
 }
 }

Modified: logging/log4cxx/trunk/src/main/include/log4cxx/logger.h
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/include/log4cxx/logger.h?rev=579082&r1=579081&r2=579082&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/include/log4cxx/logger.h (original)
+++ logging/log4cxx/trunk/src/main/include/log4cxx/logger.h Mon Sep 24 23:00:09 2007
@@ -652,7 +652,7 @@
 #define LOG4CXX_LOG(logger, level, message) { \
         if (logger->isEnabledFor(level)) {\
            ::log4cxx::helpers::MessageBuffer buf; \
-           logger->forcedLog(level, buf.str(buf + message), LOG4CXX_LOCATION); } }
+           logger->forcedLog(level, buf.str(buf << message), LOG4CXX_LOCATION); } }
 
 /**
 Logs a message to a specified logger with the DEBUG level.
@@ -663,7 +663,7 @@
 #define LOG4CXX_DEBUG(logger, message) { \
         if (LOG4CXX_UNLIKELY(logger->isDebugEnabled())) {\
            ::log4cxx::helpers::MessageBuffer buf; \
-           logger->forcedLog(::log4cxx::Level::getDebug(), buf.str(buf + message), LOG4CXX_LOCATION); }}
+           logger->forcedLog(::log4cxx::Level::getDebug(), buf.str(buf << message), LOG4CXX_LOCATION); }}
 
 /**
 Logs a message to a specified logger with the TRACE level.
@@ -674,7 +674,7 @@
 #define LOG4CXX_TRACE(logger, message) { \
         if (LOG4CXX_UNLIKELY(logger->isTraceEnabled())) {\
            ::log4cxx::helpers::MessageBuffer buf; \
-           logger->forcedLog(::log4cxx::Level::getTrace(), buf.str(buf + message), LOG4CXX_LOCATION); }}
+           logger->forcedLog(::log4cxx::Level::getTrace(), buf.str(buf << message), LOG4CXX_LOCATION); }}
 
 
 /**
@@ -686,7 +686,7 @@
 #define LOG4CXX_INFO(logger, message) { \
         if (logger->isInfoEnabled()) {\
            ::log4cxx::helpers::MessageBuffer buf; \
-           logger->forcedLog(::log4cxx::Level::getInfo(), buf.str(buf + message), LOG4CXX_LOCATION); }}
+           logger->forcedLog(::log4cxx::Level::getInfo(), buf.str(buf << message), LOG4CXX_LOCATION); }}
 
 /**
 Logs a message to a specified logger with the WARN level.
@@ -697,7 +697,7 @@
 #define LOG4CXX_WARN(logger, message) { \
         if (logger->isWarnEnabled()) {\
            ::log4cxx::helpers::MessageBuffer buf; \
-           logger->forcedLog(::log4cxx::Level::getWarn(), buf.str(buf + message), LOG4CXX_LOCATION); }}
+           logger->forcedLog(::log4cxx::Level::getWarn(), buf.str(buf << message), LOG4CXX_LOCATION); }}
 
 /**
 Logs a message to a specified logger with the ERROR level.
@@ -708,7 +708,7 @@
 #define LOG4CXX_ERROR(logger, message) { \
         if (logger->isErrorEnabled()) {\
            ::log4cxx::helpers::MessageBuffer buf; \
-           logger->forcedLog(::log4cxx::Level::getError(), buf.str(buf + message), LOG4CXX_LOCATION); }}
+           logger->forcedLog(::log4cxx::Level::getError(), buf.str(buf << message), LOG4CXX_LOCATION); }}
 
 /**
 Logs a error if the condition is not true.
@@ -720,7 +720,7 @@
 #define LOG4CXX_ASSERT(logger, condition, message) { \
         if (!(condition) && logger->isErrorEnabled()) {\
            ::log4cxx::helpers::MessageBuffer buf; \
-           logger->forcedLog(::log4cxx::Level::getError(), buf.str(buf + message), LOG4CXX_LOCATION); }}
+           logger->forcedLog(::log4cxx::Level::getError(), buf.str(buf << message), LOG4CXX_LOCATION); }}
 
 
 /**
@@ -732,7 +732,7 @@
 #define LOG4CXX_FATAL(logger, message) { \
         if (logger->isFatalEnabled()) {\
            ::log4cxx::helpers::MessageBuffer buf; \
-           logger->forcedLog(::log4cxx::Level::getFatal(), buf.str(buf + message), LOG4CXX_LOCATION); }}
+           logger->forcedLog(::log4cxx::Level::getFatal(), buf.str(buf << message), LOG4CXX_LOCATION); }}
 
 /**
 Logs a localized message with no parameter.