ManaPlus
properties.h
Go to the documentation of this file.
1 /*
2  * The ManaPlus Client
3  * Copyright (C) 2004-2009 The Mana World Development Team
4  * Copyright (C) 2009-2010 The Mana Developers
5  * Copyright (C) 2011-2019 The ManaPlus Developers
6  * Copyright (C) 2019-2021 Andrei Karas
7  *
8  * This file is part of The ManaPlus Client.
9  *
10  * This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with this program. If not, see <http://www.gnu.org/licenses/>.
22  */
23 
24 #ifndef RESOURCES_MAP_PROPERTIES_H
25 #define RESOURCES_MAP_PROPERTIES_H
26 
27 #include "localconsts.h"
28 
29 #include <map>
30 #include <sstream>
31 
36 {
37  public:
39  mProperties()
40  {
41  }
42 
44 
45 
48  virtual ~Properties()
49  { }
50 
59  const std::string getProperty(const std::string &name,
60  const std::string &def)
61  const A_WARN_UNUSED
62  {
63  const PropertyMap::const_iterator i = mProperties.find(name);
64  return (i != mProperties.end()) ? i->second : def;
65  }
66 
75  float getFloatProperty(const std::string &name,
76  const float def) const A_WARN_UNUSED
77  {
78  const PropertyMap::const_iterator i = mProperties.find(name);
79  float ret = def;
80  if (i != mProperties.end())
81  {
82  std::stringstream ss;
83  ss.str(i->second);
84  ss >> ret;
85  }
86  return ret;
87  }
88 
97  bool getBoolProperty(const std::string &name,
98  const bool def) const A_WARN_UNUSED
99  {
100  const PropertyMap::const_iterator i = mProperties.find(name);
101  bool ret = def;
102  if (i != mProperties.end())
103  {
104  if (i->second == "true")
105  ret = true;
106  if (i->second == "false")
107  ret = false;
108  }
109  return ret;
110  }
111 
119  bool hasProperty(const std::string &name) const A_WARN_UNUSED
120  { return (mProperties.find(name) != mProperties.end()); }
121 
128  void setProperty(const std::string &name, const std::string &value)
129  { mProperties[name] = value; }
130 
131 
132  private:
133  typedef std::map<std::string, std::string> PropertyMap;
135 };
136 
137 #endif // RESOURCES_MAP_PROPERTIES_H
void setProperty(const std::string &name, const std::string &value)
Definition: properties.h:128
bool hasProperty(const std::string &name) const
Definition: properties.h:119
bool getBoolProperty(const std::string &name, const bool def) const
Definition: properties.h:97
const std::string getProperty(const std::string &name, const std::string &def) const
Definition: properties.h:59
float getFloatProperty(const std::string &name, const float def) const
Definition: properties.h:75
PropertyMap mProperties
Definition: properties.h:134
std::map< std::string, std::string > PropertyMap
Definition: properties.h:133
#define A_WARN_UNUSED
Definition: localconsts.h:161
#define notfinal
Definition: localconsts.h:261
#define A_DELETE_COPY(func)
Definition: localconsts.h:53