You.i Engine
YiPreferences.h
Go to the documentation of this file.
1 // © You i Labs Inc. 2000-2017. All rights reserved.
2 #ifndef _YI_PREFERENCES_H_
3 #define _YI_PREFERENCES_H_
4 
5 #include <ostream>
6 
9 
23 {
24 public:
29 
35  CYIPreferences(const CYIString &path, bool bWatchFile = false);
36 
40  CYIPreferences(const CYIPreferences &prefs);
41 
45  virtual ~CYIPreferences();
46 
52 
56  std::vector<CYIString> GetNames() const;
57 
61  const CYIString &GetPropFilePath() const
62  {
63  return m_configFilePath;
64  }
65 
69  void SetPropFilePath(const CYIString &path)
70  {
71  m_configFilePath = path;
72  }
73 
77  void Clear();
78 
83  virtual bool Load() final;
84 
90  virtual bool Save(const CYIString &path = CYIString::EMPTY_STRING) const;
91 
96  CYIString Get(const CYIString &name, bool *pFound = nullptr) const;
97 
101  void Set(const CYIString &name, const CYIString &value);
102 
107  bool IsWatchingFile() const;
108 
113  void UpdateFileMonitor();
114 
120 
126 
132 
133 private:
137  CYIFileWatcher *CreateFileWatcher();
138 
142  void CleanUpFileWatcher();
143 
147  void OnFileModified(const CYIString &path);
148 
152  void OnFileCreated(const CYIString &path);
153 
157  void OnFileDeleted(const CYIString &path);
158 
159  CYIString m_configFilePath;
160  bool m_bWatchFile;
161 
162  std::map<CYIString, CYIString> m_settings;
163 
164  YI_FILEWATCHID m_watchedID;
165 
166  std::unique_ptr<CYIFileWatcher> m_pFileWatcher;
167 };
168 
169 std::ostream &operator<<(std::ostream &stream, const CYIPreferences &val);
170 
173 #endif // _YI_PREFERENCES_H_
CYISignal< CYIPreferences > PropFileDeleted
Definition: YiPreferences.h:131
Monitor one or more directories for changes in their files.
Definition: YiFileWatcher.h:30
std::vector< CYIString > GetNames() const
void Set(const CYIString &name, const CYIString &value)
Container class for Unicode strings. Conceptually, a CYIString object is a sequence of Unicode charac...
Definition: YiString.h:35
int32_t YI_FILEWATCHID
Definition: YiFileWatcher.h:15
bool IsWatchingFile() const
virtual ~CYIPreferences()
The base class for an object accessible from script source code.
Definition: YiScriptableObject.h:28
CYIPreferences & operator=(const CYIPreferences &rhs)
std::ostream & operator<<(std::ostream &stream, const CYIPreferences &val)
CYISignal< CYIPreferences > PropFileCreated
Definition: YiPreferences.h:125
virtual bool Save(const CYIString &path=CYIString::EMPTY_STRING) const
Definition: YiSignalHandler.h:174
CYIString Get(const CYIString &name, bool *pFound=nullptr) const
virtual bool Load() final
Property management class using CYIString names and values.
Definition: YiPreferences.h:22
const CYIString & GetPropFilePath() const
Definition: YiPreferences.h:61
void UpdateFileMonitor()
void SetPropFilePath(const CYIString &path)
Definition: YiPreferences.h:69
CYISignal< CYIPreferences > PropFileChanged
Definition: YiPreferences.h:119
static const CYIString EMPTY_STRING
Definition: YiString.h:37