]> Creatis software - crea.git/blobdiff - src/creaMessageManager.h
Clean code
[crea.git] / src / creaMessageManager.h
index 9fbaae5be932bca8f282d99d4422039481da9c90..54dd93efcc954ff73cb1f9b7b81cf5397b4809b1 100644 (file)
@@ -1,3 +1,30 @@
+/*
+# ---------------------------------------------------------------------
+#
+# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image 
+#                        pour la Santé)
+# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
+# Previous Authors : Laurent Guigues, Jean-Pierre Roux
+# CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
+#
+#  This software is governed by the CeCILL-B license under French law and 
+#  abiding by the rules of distribution of free software. You can  use, 
+#  modify and/ or redistribute the software under the terms of the CeCILL-B 
+#  license as circulated by CEA, CNRS and INRIA at the following URL 
+#  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html 
+#  or in the file LICENSE.txt.
+#
+#  As a counterpart to the access to the source code and  rights to copy,
+#  modify and redistribute granted by the license, users are provided only
+#  with a limited warranty  and the software's author,  the holder of the
+#  economic rights,  and the successive licensors  have only  limited
+#  liability. 
+#
+#  The fact that you are presently reading this means that you have had
+#  knowledge of the CeCILL-B license and that you accept its terms.
+# ------------------------------------------------------------------------ 
+*/ 
+
 /*! \file
   \brief Class creaMessageManager and Macros for outputing messages in crea
   There are 4 kinds of messages :
@@ -34,6 +61,7 @@
      \brief Manages the messages displayed by crea
   */
 
+  
 #ifndef __creaMessageManager_h__
 #define __creaMessageManager_h__
 
 #include "creaSystem.h"
 #include "creaRTTI.h" // for CREA_GET_CURRENT_OBJECT_NAME
 // Signal/slot mechanism for message events
-#include <boost/signal.hpp>
+#include <boost/signals2/signal.hpp>
 #include <boost/bind.hpp>
 #include <string>
 #include <map>
 #include <iostream>
 #include <sstream>
+
+
+
+namespace crea 
+{
+  class CREA_EXPORT MessageManager
+  {
+  public:
+    //=============================================
+    typedef boost::signals2::signal<void (const std::string&)>  MessageSignalType;
+    typedef MessageSignalType::slot_function_type MessageCallbackType;
+    //=============================================
+    MessageManager();
+    ~MessageManager();
+    static MessageManager* GetInstance();
+    static void RegisterMessageType(const std::string& key, 
+                                    const std::string& help,
+                                    unsigned char default_level = 9);
+    static void SetMessageLevel(const std::string& key, unsigned char level);
+    static int GetMessageLevel(const std::string& key);
+    static void HSendMessage(const std::string& key, const std::string& mess);
+    static void AddMessageObserver(const std::string& key, MessageCallbackType callback );
+    static void SendMessagesToCout(bool v = true);
+    static std::string& GetTab() { static std::string s; return s; }
+    static std::string GetSpace(int n)  {       std::string s; s.insert(0,"                ",n); return s; }
+    static void IncTab() { GetTab() += std::string(" "); }
+    static void DecTab() { GetTab() = GetTab().substr(0,GetTab().length()-1); }
+    static void ResetTab() { GetTab() = std::string(""); }
+    static void PrintInfo();
+private:
+    struct MessageType
+    {
+      MessageType(int l, const std::string& h) : Level(l), Help(h) {}
+      int Level;
+      std::string Help;
+      MessageSignalType Signal;
+    };
+    typedef std::map<std::string,MessageType*> MessageMapType;
+    MessageMapType mMessageMap;
+    unsigned int mMaxMessageLength;
+    bool mSendToCout;
+  };
+  //===========================================================
+}
+
+
+
+
+
+
+
+
 // Comment out these symbols to prevent compilation 
 //#define CREA_COMPILE_MESSAGES
 //#define CREA_COMPILE_DEBUG_MESSAGES
          << creaMessageTab                             \
          << creaMessageSpace(value)                    \
          << MESSAGE;                                   \
-       crea::MessageManager::SendMessage(key,s.str()); \
+       crea::MessageManager::HSendMessage(key,s.str());        \
       }                                                        \
   }                                                    \
   while (0)
        {                                               \
        std::ostringstream s;                           \
        s << MESSAGE;                                   \
-       crea::MessageManager::SendMessage(key,s.str()); \
+       crea::MessageManager::HSendMessage(key,s.str());        \
        }                                               \
     }                                                  \
   while (0)
          << creaMessageTab                             \
          << creaMessageSpace(value)                    \
          << MESSAGE;                                   \
-       crea::MessageManager::SendMessage(key,s.str()); \
+       crea::MessageManager::HSendMessage(key,s.str());        \
        crea::MessageManager::IncTab();                 \
        }                                               \
     }                                                  \
            << creaMessageTab                                   \
            << creaMessageSpace(value)                          \
            << MESSAGE;                                         \
-         crea::MessageManager::SendMessage(key,s.str());       \
+         crea::MessageManager::HSendMessage(key,s.str());      \
        }                                                       \
     }                                                          \
   while (0)
 
 
 
-namespace crea 
-
-{
-
-  
-
-  class CREA_EXPORT MessageManager
-
-  {
-
-  public:
-
-    //=============================================
-
-    typedef boost::signal<void (const std::string&)>  MessageSignalType;
-
-    typedef MessageSignalType::slot_function_type MessageCallbackType;
-
-    //=============================================
-
-    ///
-
-    MessageManager();
-
-    ///
-
-    ~MessageManager();
-
-    ///
-
-    static MessageManager* GetInstance();
-
-    ///
-
-    static void RegisterMessageType(const std::string& key, 
-
-                                    const std::string& help,
-
-                                    unsigned char default_level = 9);
-
-    ///
-
-    static void SetMessageLevel(const std::string& key, unsigned char level);
-
-    ///
-
-    static int GetMessageLevel(const std::string& key);
-
-    ///  
-
-    static void SendMessage(const std::string& key, const std::string& mess);
-
-    ///
-
-    static void AddMessageObserver(const std::string& key, MessageCallbackType callback );
-
-    ///
-
-    static void SendMessagesToCout(bool v = true);
-
-    ///
-
-    static std::string& GetTab() { static std::string s; return s; }
-
-    ///
-
-    static std::string GetSpace(int n) { 
-
-      std::string s; s.insert(0,"                ",n); return s; }
-
-    ///
-
-    static void IncTab() { GetTab() += std::string(" "); }
-
-    ///
-
-    static void DecTab() { GetTab() = GetTab().substr(0,GetTab().length()-1); }
-
-    ///
-
-    static void ResetTab() { GetTab() = std::string(""); }
-
-    ///
-
-    static void PrintInfo();
-
-    /// 
-
-    
-
-  private:
-
-    struct MessageType
-
-    {
-
-      MessageType(int l, const std::string& h) : Level(l), Help(h) {}
-
-      int Level;
-
-      std::string Help;
-
-      MessageSignalType Signal;
-
-    };
-
-    typedef std::map<std::string,MessageType*> MessageMapType;
-
-    MessageMapType mMessageMap;
-
-    unsigned int mMaxMessageLength;
-
-    bool mSendToCout;
-
-  };
-
-  //===========================================================
-
-  
-
-}