merge the review
[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          * @remarks             After creating an instance of this class, the Construct() method must be called explicitly to initialize this instance.
57          */
58         PrivacyInfo(void);
59  
60         /**
61          * This destructor overrides Tizen::Base::Object::~Object().
62          *
63          * @since 2.1
64          *
65          */
66         virtual ~PrivacyInfo(void);
67  
68         /**
69          * Initializes this instance of %PrivacyInfo with the specified parameters.
70          *
71          * @since               2.1
72          *
73          * @return              An error code
74          * @param[in]   privacyId                       The privacy ID
75          * @param[in]   enable                          Set to @c true to enable the privacy setting, @n
76          *                                  else @c false
77          * @exception   E_SUCCESS                       The method is successful.
78          * @exception   E_INVALID_ARG           The specified @c privacyId is invalid or the @c privacyId does not exist.
79          *
80          */
81         result Construct(const Tizen::Base::String& privacyId, bool enable = false);
82  
83         /**
84          * Gets a privacy ID.
85          *
86          * @since               2.1
87          *
88          * @return              The privacy ID
89          *
90          */
91         Tizen::Base::String GetId(void) const;
92  
93         /**
94          * Checks whether the privacy setting is enabled.
95          *
96          * @since               2.1
97          *
98          * @return              @c true if the privacy setting is enabled, @n
99          *                              else @c false
100          * @see                 SetEnabled()
101          */
102         bool IsEnabled(void) const;
103  
104         /**
105          * Enables or disables the privacy setting.
106          *
107          * @since               2.1
108          *
109          * @param[in]   enable                  A Boolean value indicating whether the privacy setting is enabled
110          * @see                 IsEnabled()
111          *
112          */
113         void SetEnabled(bool enable);
114  
115         /**
116          * Gets a localized display name of privacy.
117          *
118          * @since               2.1
119          *
120          * @return              The display name of privacy, @n
121          *                              else an empty string is returned if there is no value
122          *
123          */
124         Tizen::Base::String GetDisplayName(void) const;
125  
126         /**
127          * Gets a localized description of privacy.
128          *
129          * @since               2.1
130          *
131          * @return              The description of privacy, @n
132          *                              else an empty string is returned if there is no value
133          *
134          */
135         Tizen::Base::String GetDescription(void) const;
136  
137 private:
138  
139         //
140         // The implementation of this copy constructor is intentionally blank and declared as private to prohibit copying of objects.
141         //
142         // @param[in]   rhs         An instance of %PrivacyInfo
143         //
144         PrivacyInfo(const PrivacyInfo& rhs);
145  
146         //
147         // The implementation of this copy assignment operator is intentionally blank and declared as private to prohibit copying of objects.
148         //
149         // @param[in]   rhs          An instance of %PrivacyInfo
150         //
151         PrivacyInfo& operator =(const PrivacyInfo& rhs);
152  
153 private:
154  
155         class _PrivacyInfoImpl* __pImpl;
156         friend class _PrivacyInfoImpl;
157  
158 }; // PrivacyInfo
159  
160 } } // Tizen::Security
161  
162 #endif // _FSEC_PRIVACY_INFO_H_
163