/* * 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. */ /* * Observer.cpp * * Created on: Jan 19, 2010 * Author: crueger */ // include config.h #ifdef HAVE_CONFIG_H #include #endif #include "CodePatterns/MemDebug.hpp" #include "CodePatterns/Observer/Observer.hpp" #include #include "CodePatterns/Assert.hpp" #ifdef LOG_OBSERVER #include "CodePatterns/Observer/ObserverLog.hpp" #endif /** Constructor for class Observer. */ Observer::Observer(std::string name) { #ifdef LOG_OBSERVER observerLog().addName(this,name); observerLog().addMessage() << "++ Creating Observer " << observerLog().getName(this); #endif } /** * Base Constructor for class Observer * * only called from Observable Constructor */ Observer::Observer(Observer::BaseConstructor){ #ifdef LOG_OBSERVER observerLog().addObservable(this); #endif } /** Destructor for class Observer. */ Observer::~Observer() { #ifdef LOG_OBSERVER if(!observerLog().isObservable(this)){ observerLog().addMessage() << "-- Destroying Observer " << observerLog().getName(this); } #endif } /** * Method for specialized notifications. * Most Observers wont need or use this, so it is implemented * empty in the base case; */ void Observer::recieveNotification(Observable *publisher, Notification_ptr notification){ ASSERT(0,"Notification received by object that did not sign on for it or did you not implement this function?"); }