/* * Project: MoleCuilder * Description: creates and alters molecular systems * Copyright (C) 2010 University of Bonn. All rights reserved. * Please see the LICENSE file or "Copyright notice" in builder.cpp for details. */ /* * ObserverLog.cpp * * Created on: Dec 1, 2011 * Author: heber */ // include config.h #ifdef HAVE_CONFIG_H #include #endif #include "MemDebug.hpp" #include "ObserverLog.hpp" ObserverLog::ObserverLog() : count (0) {} ObserverLog::~ObserverLog(){} std::string ObserverLog::getLog(){return log.str();} std::string ObserverLog::getName(void* obj){ return names[obj]; } bool ObserverLog::isObservable(void* obj){ return observables.count(obj); } void ObserverLog::addName(void* obj , std::string name){ std::stringstream sstr; sstr << name << "_" << count++; names[obj] = sstr.str(); } void ObserverLog::addObservable(void* obj){ observables.insert(obj); } void ObserverLog::deleteName(void* obj){ names.erase(obj); } void ObserverLog::deleteObservable(void* obj){ observables.erase(obj); } std::stringstream &ObserverLog::addMessage(int depth){ for(int i=depth;i--;) log << " "; return log; } // The log needs to exist fairly early, so we make it construct on first use, // and never destroy it ObserverLog &observerLog(){ // yes, this memory is never freed... we need it around for the whole programm, // so no freeing is possible static ObserverLog *theLog = Memory::ignore(new ObserverLog()); return *theLog; }