Add Setting feature on system-server lib
[platform/framework/native/appfw.git] / src / system-server / inc / FSys_SettingInfo.h
1 #ifndef _FSYS_SETTING_INFO_INTERNAL_H_
2 #define _FSYS_SETTING_INFO_INTERNAL_H_
3
4 #include <pthread.h>
5
6 #include <FBaseColArrayListT.h>
7 #include <FBaseColHashMapT.h>
8 #include <FBaseSysLog.h>
9 #include <FBaseString.h>
10 #include <FSysISettingEventListener.h>
11 #include <FSysISettingInfoSetValueAsyncResultListener.h>
12
13 namespace Tizen { namespace System
14 {
15
16 class _ISettingProvider;
17
18 class _OSP_EXPORT_ _SettingInfo
19 {
20 private:
21         _SettingInfo();
22         ~_SettingInfo();
23
24         static void InitSingleton(void);
25         static void DestroySingleton(void);
26
27 public:
28         static _SettingInfo* GetInstance(void);
29         result GetValue(const Tizen::Base::String& key, Tizen::Base::String& value);
30         result GetValue(const Tizen::Base::String& key, int& value);
31         result GetValue(const Tizen::Base::String& key, bool& value);
32         bool HasKey(const Tizen::Base::String& key);
33         result SetValue(const Tizen::Base::String& key, bool value);
34         result SetValue(const Tizen::Base::String& key, int value);
35         result SetValue(const Tizen::Base::String& key, Tizen::Base::String value);
36         result AddSettingEventListener(ISettingEventListener& listener);
37         result RemoveSettingEventListener(ISettingEventListener& listener);
38         result GetValueForPrivilegedKey(const Tizen::Base::String& key, bool& value);
39         result SetValueForPrivilegedKey(const Tizen::Base::String& key, bool value);
40         result SetValueAsyncForPrivilegedKey(const Tizen::Base::String& key, bool value, ISettingInfoSetValueAsyncResultListener* listener);
41         result SetValueAsync(const Tizen::Base::String& key, bool value, ISettingInfoSetValueAsyncResultListener* listener);
42         result SetValueForPrivilegedKey(const Tizen::Base::String& key, Tizen::Base::String value);
43         result ResetToFactoryDefault(void);
44
45         result AnnounceSettingEvent(const Tizen::Base::String& key);
46
47 private:
48         result RegisterProvider(const Tizen::Base::String& key, _ISettingProvider* provider);
49         result UnregisterProvider(const Tizen::Base::String& key);
50         _ISettingProvider* GetProvider(const Tizen::Base::String& key);
51         result RemoveProvider(const Tizen::Base::String key);
52         
53 private:
54         static _SettingInfo* __pSettingInfo;
55
56 private:
57         Tizen::Base::Collection::HashMapT<Tizen::Base::String, _ISettingProvider*> __settingProviderList;
58         Tizen::Base::Collection::ArrayListT< ISettingEventListener* > __settingEventList;
59
60         class _StringHashProvider
61                 : public Tizen::Base::Collection::IHashCodeProviderT<Tizen::Base::String>
62         {
63         public:
64                 virtual int GetHashCode(const Tizen::Base::String& value) const
65                 {
66                         return value.GetHashCode();
67                 }
68         };
69
70         class _StringComparer
71         : public Tizen::Base::Collection::IComparerT<Tizen::Base::String>
72         {
73         public:
74                 virtual result Compare(const Tizen::Base::String& string1, const Tizen::Base::String& string2, int& cmp) const
75                 {
76                         cmp = string1.CompareTo(string2);
77                         return E_SUCCESS;
78                 }
79         };
80 };
81
82 }}
83 #endif