Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/branches/preferences/src/lib/util/preferences.h @ 7236

Last change on this file since 7236 was 7236, checked in by rennerc, 18 years ago

converted char* in preferences to std::string

File size: 2.0 KB
Line 
1/*!
2 * @file proto_singleton.h
3 * @brief Definition of the ... singleton Class
4*/
5
6#ifndef _PREFERENCES_H
7#define _PREFERENCES_H
8
9#include "base_object.h"
10#include "multi_type.h"
11#include "lib/parser/ini_parser/ini_parser.h"
12
13// FORWARD DECLARATION
14
15class IniFilePrefsReader;
16
17typedef struct {
18  std::string name;
19  MultiType value;
20  bool modified;
21} prefItem;
22
23typedef struct {
24  std::string sectionName;
25  std::list<prefItem> items;
26} prefSection ;
27
28
29//! A default singleton class.
30class Preferences : public BaseObject {
31
32 public:
33   virtual ~Preferences(void);
34  /** @returns a Pointer to the only object of this Class */
35   inline static Preferences* getInstance(void) { if (!singletonRef) singletonRef = new Preferences();  return singletonRef; };
36
37   //check if this entry exists
38   bool exists(const std::string& section, const std::string& name);
39
40   void setString(const std::string& section, const std::string& name, const std::string& value, bool dontSetModified = false);
41   void setInt(const std::string& section, const std::string& name, int value, bool dontSetModified = false);
42   void setFloat(const std::string& section, const std::string& name, float value, bool dontSetModified = false);
43   void setMultiType(const std::string& section, const std::string& name, MultiType& value, bool dontSetModified = false);
44
45   const std::string getString(const std::string& section, const std::string& name, const std::string& defaultValue);
46   int getInt(const std::string& section, const std::string& name, int defaultValue);
47   float getFloat(const std::string& section, const std::string& name, float defaultValue);
48   MultiType getMultiType(const std::string& section, const std::string& name, const MultiType& defaultValue);
49
50   void setUserIni(const std::string& fileName);
51
52   bool save();
53
54
55   void debug();
56
57
58 private:
59   Preferences(void);
60   static Preferences* singletonRef;
61
62   std::list<prefSection> data;
63
64   std::list<IniFilePrefsReader*> iniFilePrefsReaders;
65
66   std::string& fileName;
67
68};
69
70#endif /* _PREFERENCES_H */
Note: See TracBrowser for help on using the repository browser.