Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

messageManager.cpp

Go to the documentation of this file.
00001 
00002 #include "Event/messageManager.h"
00003 #include "Event/optionManager.h"
00004 
00005 messageManager* messageManager::m_instance = 0;
00006 
00007 //###########################################
00008 messageManager::messageManager() 
00009 //###########################################
00010 {
00011         if (m_instance !=0 ) return;
00012 
00013         m_server = new serverVI<messageVI>();
00014 
00015         m_definedFile = false;
00016         m_fileName = "EMPTY";
00017         m_level = "RELEASE";
00018         m_instance = this;
00019 
00021         setName("messageManager");
00023         addToServer("optionManager",optionManager::instance());
00024 }
00025 //###########################################
00026 void messageManager::open(std::string fileName)
00027 //###########################################
00028 {
00029         if (m_definedFile) m_file.close();
00030         m_definedFile = true;
00031         m_file.open(fileName.c_str());
00032 }
00033 //###########################################
00034 void messageManager::close() 
00035 //###########################################
00036 {
00037         m_definedFile = false;
00038         m_file.close();
00039 }
00040 //##################################
00041 void messageManager::setOption(std::string varname, std::string content)
00042 //##################################
00043 {
00044         optionVI::setOption(varname,content);
00045         if (varname == "outFile") open(content);
00046         if (varname == "level") setLevel(content);
00047 }
00048 //###########################################
00049 messageManager::~messageManager()
00050 //###########################################
00051 {
00052         if (m_definedFile) close();
00053 } 
00054 //###########################################
00055 void messageManager::addToServer(std::string name, messageVI* mp) 
00056 //###########################################
00057 {
00058         if (!m_server->search(name)) m_server->add(name,mp);
00059         else message(" object already in server "+name);
00060 }
00061 //###########################################
00062 std::ostream& messageManager::out() const
00063 //###########################################
00064 {
00065         if (m_instance == 0) return std::cout;
00066         if (m_instance->m_definedFile) return m_instance->m_file;
00067         else return std::cout;
00068 }
00069 //###########################################
00070 void messageManager::message(std::string comment, std::string ilevel) const
00071 //###########################################
00072 {
00073         if (acceptLevel(ilevel)) out() << "* " << comment << " * \n";
00074 }
00075 //###########################################
00076 void messageManager::message(std::string comment, double val, std::string ilevel) const 
00077 //###########################################
00078 {
00079         if (acceptLevel(ilevel)) out() << "* " << comment << " " << val <<" * \n";
00080 }
00081 
00082 //###########################################
00083 bool messageManager::acceptLevel(std::string slevel) const 
00084 //###########################################
00085 {
00086         return (messageBase::getLevel(slevel) <= getLevel()); 
00087 }
00088 
00089 //########################################
00090 void messageManager::defineOption()
00091 //########################################
00092 {
00094         optionVI::defineOption("outFile",&m_fileName);
00095         optionVI::defineOption("level",&m_level);
00096 }
00097 //########################################
00098 messageVI* messageManager::getMessage(std::string name) const
00099 //########################################
00100 {
00101         if (!m_server->search(name)) {
00102                 message( " no seach class in Server : "+name);
00103                 return 0;
00104         } 
00105         return m_server->get(name);
00106 }
00107 //########################################
00108 void messageManager::writeOutServer() const
00109 //########################################
00110 {
00111         for (int i=0; i < m_server->size(); i++) m_server->get(i)->writeOut();
00112 }
00113 //########################################
00114 void messageManager::writeOut(std::string name) const
00115 //########################################
00116 {
00117         messageVI* mes = getMessage(name);
00118         if (mes->acceptLevel()) mes->writeOut();
00119 }
00120 //########################################
00121 void messageManager::writeOut() const
00122 //########################################
00123 {
00124         std::ostream& out = messageManager::instance()->out();
00125         if (m_server->size() == 0) return;
00126         messageVI::writeOut();
00127         out << " -- objects defined in the message Server -- " <<"\n";
00128         out << m_server->nameList();
00129 }

Generated at Fri Aug 18 12:57:38 2000 for centella framework by doxygen 1.1.3 written by Dimitri van Heesch, © 1997-2000