]> git.mxchange.org Git - simgear.git/blobdiff - simgear/debug/logstream.hxx
Patch from Melchior Franz:
[simgear.git] / simgear / debug / logstream.hxx
index c640461ad0cb71f25a1ae863af67bdba7a1555bc..5b57d50f0f8f977cb162cd90ed2a72a364291b1f 100644 (file)
 #ifndef _LOGSTREAM_H
 #define _LOGSTREAM_H
 
-#ifdef HAVE_CONFIG_H
-#  include <config.h>
-#endif
-
 #include <simgear/compiler.h>
 
 // At least Irix needs this
@@ -42,7 +38,7 @@
 # include <iostream>
 #else
 # include <iostream.h>
-# include <simgear/fg_traits.hxx>
+# include <simgear/sg_traits.hxx>
 #endif
 
 #include <simgear/debug/debug_types.h>
@@ -86,19 +82,62 @@ public:
     // logbuf( streambuf* sb ) : sbuf(sb) {}
     /** Constructor */
     logbuf();
+
     /** Destructor */
     ~logbuf();
 
-    /** Is logging enabled? */
+    /**
+     * Is logging enabled?
+     * @return true or false*/
     bool enabled() { return logging_enabled; }
 
-    /** Set the logging level of subsequent messages. */
+    /**
+     * Set the logging level of subsequent messages.
+     * @param c debug class
+     * @param p priority
+     */
     void set_log_state( sgDebugClass c, sgDebugPriority p );
 
-    /** Set the global logging level. */
+    /**
+     * Set the global logging level.
+     * @param c debug class
+     * @param p priority
+     */
     static void set_log_level( sgDebugClass c, sgDebugPriority p );
 
-    /** Set the stream buffer */
+
+    /**
+     * Set the allowed logging classes.
+     * @param c All enabled logging classes anded together.
+     */
+    static void set_log_classes (sgDebugClass c);
+
+
+    /**
+     * Get the logging classes currently enabled.
+     * @return All enabled debug logging anded together.
+     */
+    static sgDebugClass get_log_classes ();
+
+
+    /**
+     * Set the logging priority.
+     * @param c The priority cutoff for logging messages.
+     */
+    static void set_log_priority (sgDebugPriority p);
+
+
+    /**
+     * Get the current logging priority.
+     * @return The priority cutoff for logging messages.
+     */
+    static sgDebugPriority get_log_priority ();
+
+
+    /**
+     * Set the stream buffer
+     * @param sb stream buffer
+     */
     void set_sb( streambuf* sb );
 
 protected:
@@ -181,19 +220,32 @@ struct logstream_base
 class logstream : private logstream_base, public ostream
 {
 public:
-    /** The default is to send messages to cerr. */
+    /**
+     * The default is to send messages to cerr.
+     * @param out output stream
+     */
     logstream( ostream& out )
        // : logstream_base(out.rdbuf()),
        : logstream_base(),
          ostream(&lbuf) { lbuf.set_sb(out.rdbuf());}
 
-    /** Set the output stream */
+    /**
+     * Set the output stream
+     * @param out output stream
+     */
     void set_output( ostream& out ) { lbuf.set_sb( out.rdbuf() ); }
 
-    /** Set the global log class and priority level. */
+    /**
+     * Set the global log class and priority level.
+     * @param c debug class
+     * @param p priority
+     */
     void setLogLevels( sgDebugClass c, sgDebugPriority p );
 
-    /** Output operator to capture the debug level and priority of a message. */
+    /**
+     * Output operator to capture the debug level and priority of a message.
+     * @param l log level
+     */
     inline ostream& operator<< ( const loglevel& l );
 };
 
@@ -206,9 +258,11 @@ logstream::operator<< ( const loglevel& l )
 
 
 /**
+ * \relates logstream
  * Return the one and only logstream instance.
  * We use a function instead of a global object so we are assured that cerr
  * has been initialised.
+ * @return current logstream
  */
 inline logstream&
 sglog()
@@ -219,7 +273,10 @@ sglog()
 
 
 /** \def SG_LOG(C,P,M)
- * Log a message = M of class = C and priority = P
+ * Log a message.
+ * @param C debug class
+ * @param P priority
+ * @param M message
  */
 #ifdef FG_NDEBUG
 # define SG_LOG(C,P,M)