Created by Scott Robert Ladd at Coyote Gulch Productions.
00001 //--------------------------------------------------------------------- 00002 // Algorithmic Conjurings @ http://www.coyotegulch.com 00003 // Evocosm -- An Object-Oriented Framework for Evolutionary Algorithms 00004 // 00005 // reporter.h 00006 //--------------------------------------------------------------------- 00007 // 00008 // Copyright 1996, 1999, 2002, 2003, 2004, 2005 Scott Robert Ladd 00009 // 00010 // This program is free software; you can redistribute it and/or modify 00011 // it under the terms of the GNU General Public License as published by 00012 // the Free Software Foundation; either version 2 of the License, or 00013 // (at your option) any later version. 00014 // 00015 // This program is distributed in the hope that it will be useful, 00016 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00017 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00018 // GNU General Public License for more details. 00019 // 00020 // You should have received a copy of the GNU General Public License 00021 // along with this program; if not, write to the 00022 // Free Software Foundation, Inc. 00023 // 59 Temple Place - Suite 330 00024 // Boston, MA 02111-1307, USA. 00025 // 00026 //----------------------------------------------------------------------- 00027 // 00028 // For more information on this software package, please visit 00029 // Scott's web site, Coyote Gulch Productions, at: 00030 // 00031 // http://www.coyotegulch.com 00032 // 00033 //----------------------------------------------------------------------- 00034 00035 #if !defined(LIBEVOCOSM_REPORTER_H) 00036 #define LIBEVOCOSM_REPORTER_H 00037 00038 // libevocosm 00039 #include "organism.h" 00040 00041 namespace libevocosm 00042 { 00044 00051 template <typename OrganismType, typename LandscapeType> 00052 class reporter : protected globals 00053 { 00054 public: 00056 00060 reporter(listener & a_listener) 00061 : m_listener(a_listener) 00062 { 00063 // nada 00064 } 00065 00067 reporter(const reporter & a_source) 00068 : m_listener(a_source.m_listener) 00069 { 00070 // nada 00071 } 00072 00074 reporter & operator = (const reporter & a_source) 00075 { 00076 m_listener = a_source.m_listener; 00077 } 00078 00080 00087 virtual ~reporter() 00088 { 00089 // nada 00090 } 00091 00093 00104 virtual bool report(const vector< vector<OrganismType> > & a_population, size_t a_iteration, double & a_fitness, bool a_finished = false) = 0; 00105 00106 protected: 00108 listener & m_listener; 00109 }; 00110 }; 00111 00112 #endif
© 1996-2005 Scott Robert Ladd. All rights reserved.
HTML documentation generated by Dimitri van Heesch's excellent Doxygen tool.