Author: carnold
Date: Fri Nov  9 10:28:55 2007
New Revision: 593616

URL: http://svn.apache.org/viewvc?rev=593616&view=rev
Log:
LOGCXX-18: move op<<(manip) into class, remove func bodies from messagebuffer.h

Modified:
    logging/log4cxx/trunk/src/main/cpp/messagebuffer.cpp
    logging/log4cxx/trunk/src/main/include/log4cxx/helpers/messagebuffer.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=593616&r1=593615&r2=593616&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/cpp/messagebuffer.cpp (original)
+++ logging/log4cxx/trunk/src/main/cpp/messagebuffer.cpp Fri Nov  9 10:28:55 
2007
@@ -81,6 +81,11 @@
     return (stream != 0);
 }
 
+std::ostream& CharMessageBuffer::operator<<(ios_base_manip manip) {
+       std::ostream& s = *this;
+       (*manip)(s);
+       return s;
+}
 
 
 
@@ -146,6 +151,11 @@
     return (stream != 0);
 }
 
+std::wostream& WideMessageBuffer::operator<<(ios_base_manip manip) {
+       std::wostream& s = *this;
+       (*manip)(s);
+       return s;
+}
 
 
 MessageBuffer::MessageBuffer()  : wbuf(0){
@@ -158,5 +168,57 @@
 bool MessageBuffer::hasStream() const {
     return cbuf.hasStream() || (wbuf != 0 && wbuf->hasStream());
 }
+
+std::ostream& MessageBuffer::operator<<(ios_base_manip manip) {
+       std::ostream& s = *this;
+       (*manip)(s);
+       return s;
+}
+
+MessageBuffer::operator std::ostream&() {
+       return (std::ostream&) cbuf;
+}
+
+CharMessageBuffer& MessageBuffer::operator<<(const std::string& msg) {
+       return cbuf.operator<<(msg);
+}
+
+CharMessageBuffer& MessageBuffer::operator<<(const char* msg) {
+       return cbuf.operator<<(msg);
+}
+
+CharMessageBuffer& MessageBuffer::operator<<(const char msg) {
+       return cbuf.operator<<(msg);
+}
+
+const std::string& MessageBuffer::str(CharMessageBuffer& buf) {
+       return cbuf.str(buf);
+}
+
+const std::string& MessageBuffer::str(std::ostream& os) {
+       return cbuf.str(os);
+}
+
+WideMessageBuffer& MessageBuffer::operator<<(const std::wstring& msg) {
+       wbuf = new WideMessageBuffer();
+       return (*wbuf) << msg;
+}
+
+WideMessageBuffer& MessageBuffer::operator<<(const wchar_t* msg) {
+       wbuf = new WideMessageBuffer();
+       return (*wbuf) << msg;
+}
+WideMessageBuffer& MessageBuffer::operator<<(const wchar_t msg) {
+       wbuf = new WideMessageBuffer();
+       return (*wbuf) << msg;
+}
+
+const std::wstring& MessageBuffer::str(WideMessageBuffer& buf) {
+       return wbuf->str(buf);
+}
+
+const std::wstring& MessageBuffer::str(std::wostream& os) {
+       return wbuf->str(os);
+}
 
 #endif

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=593616&r1=593615&r2=593616&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/include/log4cxx/helpers/messagebuffer.h 
(original)
+++ logging/log4cxx/trunk/src/main/include/log4cxx/helpers/messagebuffer.h Fri 
Nov  9 10:28:55 2007
@@ -27,6 +27,7 @@
 
    namespace helpers {
    
+   typedef std::ios_base& (*ios_base_manip)(std::ios_base&);
 
    /**
     *   This class is used by the LOG4CXX_INFO and similar
@@ -65,6 +66,13 @@
          */
         CharMessageBuffer& operator<<(const char msg);
 
+        /**
+         *   Insertion operator for STL manipulators such as std::fixed.
+         *   @param manip manipulator.
+         *   @return encapsulated STL stream.
+         */
+        std::ostream& operator<<(ios_base_manip manip);
+
                /**
                 *  Cast to ostream.
                 */
@@ -115,13 +123,6 @@
        return ((std::basic_ostream<char>&) os) << val;
 }
 
-inline std::basic_ostream<char>& operator<<(CharMessageBuffer& os, 
std::ios_base& (*manip)(std::ios_base& s)) {
-       std::basic_ostream<char>& s = os;
-       (*manip)(s);
-       return s;
-}
-
-
 #if LOG4CXX_HAS_WCHAR_T
    /**
     *   This class is designed to support insertion operations
@@ -160,7 +161,14 @@
          */
         WideMessageBuffer& operator<<(const wchar_t msg);
 
-               /**
+        /**
+         *   Insertion operator for STL manipulators such as std::fixed.
+         *   @param manip manipulator.
+         *   @return encapsulated STL stream.
+         */
+        std::wostream& operator<<(ios_base_manip manip);
+
+        /**
                 *  Cast to ostream.
                 */
                operator std::basic_ostream<wchar_t>&();
@@ -210,13 +218,6 @@
        return ((std::basic_ostream<wchar_t>&) os) << val;
 }
 
-inline std::basic_ostream<wchar_t>& operator<<(WideMessageBuffer& os, 
std::ios_base& (*manip)(std::ios_base& s)) {
-       std::basic_ostream<wchar_t>& s = os;
-       (*manip)(s);
-       return s;
-}
-
-
 
    /**
     *   This class is used by the LOG4CXX_INFO and similar
@@ -237,9 +238,7 @@
                /**
                 *  Cast to ostream.
                 */
-               inline operator std::ostream&() {
-                       return (std::ostream&) cbuf;
-        }
+               operator std::ostream&();
 
           /**
          *   Appends a string into the buffer and
@@ -247,18 +246,14 @@
          *   @param msg message to append.
          *   @return encapsulated CharMessageBuffer.
          */
-        inline CharMessageBuffer& operator<<(const std::string& msg) {
-                       return cbuf.operator<<(msg);
-               }
+        CharMessageBuffer& operator<<(const std::string& msg);
         /**
          *   Appends a string into the buffer and
          *   fixes the buffer to use char characters.
          *   @param msg message to append.
          *   @return encapsulated CharMessageBuffer.
          */
-        inline CharMessageBuffer& operator<<(const char* msg) {
-                       return cbuf.operator<<(msg);
-               }
+        CharMessageBuffer& operator<<(const char* msg);
 
         /**
          *   Appends a string into the buffer and
@@ -266,9 +261,7 @@
          *   @param msg message to append.
          *   @return encapsulated CharMessageBuffer.
          */
-        inline CharMessageBuffer& operator<<(const char msg) {
-                       return cbuf.operator<<(msg);
-               }
+        CharMessageBuffer& operator<<(const char msg);
 
                /**
                 *   Get content of buffer.
@@ -276,9 +269,7 @@
                 *       the character type and that
                 *       the embedded stream was not used.
                 */
-               inline const std::string& str(CharMessageBuffer& buf) {
-                       return cbuf.str(buf);
-               }
+               const std::string& str(CharMessageBuffer& buf);
 
                /**
                 *   Get content of buffer.
@@ -286,9 +277,7 @@
                 *       the character type and that
                 *       the embedded stream was used.
                 */
-               inline const std::string& str(std::ostream& os) {
-                       return cbuf.str(os);
-               }
+               const std::string& str(std::ostream& os);
 
           /**
          *   Appends a string into the buffer and
@@ -296,30 +285,28 @@
          *   @param msg message to append.
          *   @return encapsulated CharMessageBuffer.
          */
-        inline WideMessageBuffer& operator<<(const std::wstring& msg) {
-                       wbuf = new WideMessageBuffer();
-                       return (*wbuf) << msg;
-               }
+        WideMessageBuffer& operator<<(const std::wstring& msg);
         /**
          *   Appends a string into the buffer and
          *   fixes the buffer to use char characters.
          *   @param msg message to append.
          *   @return encapsulated CharMessageBuffer.
          */
-        inline WideMessageBuffer& operator<<(const wchar_t* msg) {
-                       wbuf = new WideMessageBuffer();
-                       return (*wbuf) << msg;
-               }
+        WideMessageBuffer& operator<<(const wchar_t* msg);
         /**
          *   Appends a string into the buffer and
          *   fixes the buffer to use char characters.
          *   @param msg message to append.
          *   @return encapsulated CharMessageBuffer.
          */
-        inline WideMessageBuffer& operator<<(const wchar_t msg) {
-                       wbuf = new WideMessageBuffer();
-                       return (*wbuf) << msg;
-               }
+        WideMessageBuffer& operator<<(const wchar_t msg);
+
+        /**
+         *   Insertion operator for STL manipulators such as std::fixed.
+         *   @param manip manipulator.
+         *   @return encapsulated STL stream.
+         */
+        std::ostream& operator<<(ios_base_manip manip);
 
                /**
                 *   Get content of buffer.
@@ -327,9 +314,7 @@
                 *       the character type and that
                 *       the embedded stream was not used.
                 */
-               inline const std::wstring& str(WideMessageBuffer& buf) {
-                       return wbuf->str(buf);
-               }
+               const std::wstring& str(WideMessageBuffer& buf);
 
                /**
                 *   Get content of buffer.
@@ -337,9 +322,7 @@
                 *       the character type and that
                 *       the embedded stream was used.
                 */
-               inline const std::wstring& str(std::wostream& os) {
-                       return wbuf->str(os);
-               }
+               const std::wstring& str(std::wostream& os);
 
         /**
          *  Returns true if buffer has an encapsulated STL stream.
@@ -371,12 +354,6 @@
 template<class V>
 std::ostream& operator<<(MessageBuffer& os, const V& val) {
        return ((std::ostream&) os) << val;
-}
-
-inline std::ostream& operator<<(MessageBuffer& os, std::ios_base& 
(*manip)(std::ios_base& s)) {
-       std::ostream& s = os;
-       (*manip)(s);
-       return s;
 }
 
 #if LOG4CXX_LOGCHAR_IS_UTF8


Reply via email to