00001 ////////////////////////////////////////////////////////////////////// 00002 // Copyright (c) 2001-2002 David Pritchard <drpritch@alumni.uwaterloo.ca> 00003 // 00004 // This program is free software; you can redistribute it and/or 00005 // modify it under the terms of the GNU Lesser General Public License 00006 // as published by the Free Software Foundation; either 00007 // version 2 of the License, or (at your option) any later 00008 // version. 00009 // 00010 // This program is distributed in the hope that it will be useful, 00011 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 // GNU Lesser General Public License for more details. 00014 // 00015 // You should have received a copy of the GNU Lesser General Public License 00016 // along with this program; if not, write to the Free Software 00017 // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 00018 00019 #ifndef freecloth_resmgt_resConfig_h 00020 #define freecloth_resmgt_resConfig_h 00021 00022 #ifndef freecloth_resmgt_package_h 00023 #include <freecloth/resmgt/package.h> 00024 #endif 00025 00026 #ifndef freecloth_resmgt_rcBase_h 00027 #include <freecloth/resmgt/rcBase.h> 00028 #endif 00029 00030 FREECLOTH_NAMESPACE_START 00031 00032 //////////////////////////////////////////////////////////////////////////////// 00033 // FORWARD DECLARATIONS 00034 00035 class ResConfigRegistryR; 00036 class ResConfigRegistryW; 00037 template <class T> class RCShdPtr; 00038 00039 //////////////////////////////////////////////////////////////////////////////// 00040 /*! 00041 * \class ResConfig freecloth/resmgt/resConfig.h 00042 * \brief Application configuration data. 00043 * 00044 * Used for storing persistent application configuration data, which can be 00045 * is stored on disk/registry/whatever. 00046 */ 00047 class ResConfig : public RCBase { 00048 00049 public: 00050 //----- member functions ----- 00051 00052 virtual RCShdPtr<ResConfig> clone() const = 0; 00053 virtual void load( ResConfigRegistryR& reg ) = 0; 00054 virtual void save( ResConfigRegistryW& reg ) const = 0; 00055 00056 }; 00057 00058 FREECLOTH_NAMESPACE_END 00059 #endif