00001 /* 00002 * Copyright (C) 2006-2011, SRI International (R) 00003 * 00004 * This program is free software: you can redistribute it and/or modify 00005 * it under the terms of the GNU Lesser General Public License as published by 00006 * the Free Software Foundation, either version 3 of the License, or 00007 * (at your option) any later version. 00008 * 00009 * This program is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 * GNU Lesser General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU Lesser General Public License 00015 * along with this program. If not, see <http://www.gnu.org/licenses/>. 00016 */ 00017 00018 #pragma once 00019 00020 #ifndef __OpenKarto_Object_h__ 00021 #define __OpenKarto_Object_h__ 00022 00023 #include <OpenKarto/Object.h> 00024 00025 namespace karto 00026 { 00027 00029 00030 00034 00038 class KARTO_EXPORT ModuleParameters : public Object 00039 { 00040 KARTO_RTTI(); 00041 00042 public: 00047 ModuleParameters(const Identifier& rName); 00048 00049 protected: 00050 //@cond EXCLUDE 00054 virtual ~ModuleParameters(); 00055 //@endcond 00056 00057 private: 00058 // restrict the following functions 00059 ModuleParameters(const ModuleParameters&); 00060 const ModuleParameters& operator=(const ModuleParameters&); 00061 }; // ModuleParameters 00062 00066 KARTO_TYPE(ModuleParameters); 00067 00071 typedef SmartPointer<ModuleParameters> ParametersPtr; 00072 00076 00080 class KARTO_EXPORT CustomItem : public Object 00081 { 00082 KARTO_RTTI(); 00083 00084 public: 00088 CustomItem(); 00089 00094 CustomItem(const Identifier& rName); 00095 00096 protected: 00097 //@cond EXCLUDE 00101 virtual ~CustomItem(); 00102 //@endcond 00103 00104 public: 00109 virtual const String& Write() const = 0; 00110 00115 virtual void Read(const String& pValue) = 0; 00116 00117 private: 00118 // restrict the following functions 00119 CustomItem(const CustomItem&); 00120 const CustomItem& operator=(const CustomItem&); 00121 }; // CustomItem 00122 00126 KARTO_TYPE(CustomItem); 00127 00131 typedef SmartPointer<CustomItem> CustomItemPtr; 00132 00136 typedef List<CustomItemPtr> CustomItemList; 00137 00141 00146 class KARTO_EXPORT DatasetInfo : public Object 00147 { 00148 KARTO_RTTI(); 00149 00150 public: 00154 DatasetInfo(); 00155 00156 protected: 00157 //@cond EXCLUDE 00161 virtual ~DatasetInfo(); 00162 //@endcond 00163 00164 public: 00169 const String& GetTitle() const; 00170 00175 const String& GetAuthor() const; 00176 00181 const String& GetDescription() const; 00182 00187 const String& GetCopyright() const; 00188 00189 private: 00190 // restrict the following functions 00191 DatasetInfo(const DatasetInfo&); 00192 const DatasetInfo& operator=(const DatasetInfo&); 00193 00194 private: 00195 Parameter<String>* m_pTitle; 00196 Parameter<String>* m_pAuthor; 00197 Parameter<String>* m_pDescription; 00198 Parameter<String>* m_pCopyright; 00199 }; // class DatasetInfo 00200 00204 KARTO_TYPE(DatasetInfo); 00205 00209 typedef SmartPointer<DatasetInfo> DatasetInfoPtr; 00210 00212 00213 } 00214 00215 #endif // __OpenKarto_Object_h__