Merge "Update DeviceManager [dep:osp-common-service, osp-app-service]" into devel_3...
[platform/framework/native/appfw.git] / inc / FSecPrivacyInfo.h
1 //
2 // Copyright (c) 2013 Samsung Electronics Co., Ltd.
3 //
4 // Licensed under the Apache License, Version 2.0 (the License);
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 //     http://www.apache.org/licenses/LICENSE-2.0
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 //
16  
17 /**
18 * @file    FSecPrivacyInfo.h
19 * @brief  This is the header file for the %PrivacyInfo class.
20 *
21 * This header file contains the declarations of the %PrivacyInfo class.
22 */
23  
24 #ifndef _FSEC_PRIVACY_INFO_H_
25 #define _FSEC_PRIVACY_INFO_H_
26  
27 #include <FBaseObject.h>
28  
29 namespace Tizen { namespace Security
30 {
31  
32 /**
33 * @class        PrivacyInfo
34 * @brief        This class represents the privacy information.
35 *
36 * @since        2.1
37 *
38 * @final This class is not intended for extension.
39 *
40 * The %PrivacyInfo class represents the privacy information.
41 * This class provides methods to retrieve the name and description of privilege.
42 */
43  
44 class _OSP_EXPORT_ PrivacyInfo
45         : public Tizen::Base::Object
46 {
47
48 public:
49  
50         /**
51          * The object is not fully constructed after this constructor is called. @n
52          * For full construction, the Construct() method must be called right after calling this constructor.
53          *
54          * @since               2.1
55          */
56         PrivacyInfo(void);
57  
58         /**
59          * This destructor overrides Tizen::Base::Object::~Object().
60          *
61          * @since 2.1
62          *
63          */
64         virtual ~PrivacyInfo(void);
65  
66         /**
67          * Initializes this instance of %PrivacyInfo with the specified parameters.
68          *
69          * @since               2.1
70          *
71          * @return              An error code
72          * @param[in]   privacyId                       The privacy ID
73          * @param[in]   enable                          Set to @c true to enable the privacy setting, @n
74          *                                  else @c false
75          * @exception   E_SUCCESS                       The method is successful.
76          * @exception   E_INVALID_ARG           The specified @c privacyId is invalid or the @c privacyId does not exist.
77          *
78          */
79         result Construct(const Tizen::Base::String& privacyId, bool enable = false);
80  
81         /**
82          * Gets a privacy ID.
83          *
84          * @since               2.1
85          *
86          * @return              The privacy ID
87          *
88          */
89         Tizen::Base::String GetId(void) const;
90  
91         /**
92          * Checks whether the privacy setting is enabled.
93          *
94          * @since               2.1
95          *
96          * @return              @c true if the privacy setting is enabled, @n
97          *                              else @c false
98          * @see                 SetEnabled()
99          */
100         bool IsEnabled(void) const;
101  
102         /**
103          * Enables or disables the privacy setting.
104          *
105          * @since               2.1
106          *
107          * @param[in]   enable                  A Boolean value indicating whether the privacy setting is enabled
108          * @see                 IsEnabled()
109          *
110          */
111         void SetEnabled(bool enable);
112  
113         /**
114          * Gets a localized display name of privacy.
115          *
116          * @since               2.1
117          *
118          * @return              The display name of privacy, @n
119          *                              else an empty string is returned if there is no value
120          *
121          */
122         Tizen::Base::String GetDisplayName(void) const;
123  
124         /**
125          * Gets a localized description of privacy.
126          *
127          * @since               2.1
128          *
129          * @return              The description of privacy, @n
130          *                              else an empty string is returned if there is no value
131          *
132          */
133         Tizen::Base::String GetDescription(void) const;
134  
135 private:
136  
137         //
138         // The implementation of this copy constructor is intentionally blank and declared as private to prohibit copying of objects.
139         //
140         // @param[in]   rhs         An instance of %PrivacyInfo
141         //
142         PrivacyInfo(const PrivacyInfo& rhs);
143  
144         //
145         // The implementation of this copy assignment operator is intentionally blank and declared as private to prohibit copying of objects.
146         //
147         // @param[in]   rhs          An instance of %PrivacyInfo
148         //
149         PrivacyInfo& operator =(const PrivacyInfo& rhs);
150  
151 private:
152  
153         class _PrivacyInfoImpl* __pImpl;
154         friend class _PrivacyInfoImpl;
155  
156 }; // PrivacyInfo
157  
158 } } // Tizen::Security
159  
160 #endif // _FSEC_PRIVACY_INFO_H_
161