00001 /*************************************************************************** 00002 * Copyright (C) 2005-2009 by Robot Group Leipzig * 00003 * martius@informatik.uni-leipzig.de * 00004 * fhesse@informatik.uni-leipzig.de * 00005 * der@informatik.uni-leipzig.de * 00006 * guettler@informatik.uni-leipzig.de * 00007 * jhoffmann@informatik.uni-leipzig.de * 00008 * joergweide84@aol.com (robot12) * 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, Boston, MA 02111-1307, USA. * 00024 *************************************************************************** 00025 * * 00026 * This class adds functionality to the inspectable interface. So it is * 00027 * possible to change the inspectable object to become the next value. * 00028 * * 00029 * The values of the inspectable will not longer be generate by only one * 00030 * class. * 00031 * * 00032 * $Log: inspectableproxy.h,v $ 00033 * Revision 1.4 2009/10/14 10:01:53 martius 00034 * comments corrected 00035 * 00036 * Revision 1.3 2009/08/05 13:22:21 robot12 00037 * add one clean up, the function replaceList now modified the old list and don't delete all and make it new 00038 * 00039 * Revision 1.2 2009/07/21 08:47:33 robot12 00040 * add some comments 00041 * 00042 * Revision 1.1 2009/06/29 13:37:05 robot12 00043 * add the new class inspectableproxy 00044 * 00045 * 00046 ***************************************************************************/ 00047 00048 #ifndef INSPECTABLEPROXY_H_ 00049 #define INSPECTABLEPROXY_H_ 00050 00051 //includes 00052 #include <list> 00053 #include "inspectable.h" 00054 00055 /** 00056 * This class is a proxy for the inspectable class. It "divides" the inspectable interface from the inspected object 00057 */ 00058 class InspectableProxy : public Inspectable { 00059 public: 00060 /** 00061 * constructor 00062 * Takes a list of Inspectables for which the proxy stands. 00063 * Attention: The inspectables must have registered 00064 * all their variables already! 00065 * @param list (list<Inspectable*>&) the list 00066 */ 00067 InspectableProxy(const std::list<Inspectable*>& list); 00068 00069 /** 00070 * default destructor 00071 */ 00072 virtual ~InspectableProxy(); 00073 00074 /** 00075 * this function is for replacing the old list 00076 * @param list (list<Inspectable*>& the new list 00077 * @return (bool) true if it successful 00078 */ 00079 bool replaceList(const std::list<Inspectable*>& list); 00080 00081 private: 00082 /** 00083 * the saved list of the Inspectable where the proxy stand for. 00084 */ 00085 //std::list<Inspectable*> m_list; 00086 00087 /** 00088 * disable the default constructor 00089 * @return 00090 */ 00091 InspectableProxy(); 00092 }; 00093 00094 #endif /* INSPECTABLEPROXY_H_ */