Merge "Update deprecated libprivilege-control API functions." into tizen
[platform/framework/native/appfw.git] / src / security / FSec_PrivacyInfoImpl.cpp
1 //
2 // Copyright (c) 2012 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        FSec_PrivacyInfoImpl.cpp
19  * @brief       This is the implementation for the _PrivacyInfoImpl class.
20  */
21
22 #include <new>
23 #include <unique_ptr.h>
24 #include <FSecPrivacyInfo.h>
25 #include <FBaseSysLog.h>
26 #include <FBase_StringConverter.h>
27 #include <FSec_AccessController.h>
28 #include <privacy_info_client.h>
29 #include "FSec_PrivacyInfoImpl.h"
30
31 using namespace Tizen::Base;
32 using namespace Tizen::Security;
33
34 namespace Tizen { namespace Security
35 {
36
37 _PrivacyInfoImpl::_PrivacyInfoImpl(void)
38         : __enabled(false)
39 {
40
41 }
42
43 _PrivacyInfoImpl::~_PrivacyInfoImpl(void)
44 {
45
46 }
47
48 result
49 _PrivacyInfoImpl::Construct(const Tizen::Base::String& privacyId, bool enable)
50 {
51         result r = E_SUCCESS;
52         __privacyId = privacyId;
53         __enabled = enable;
54         
55         return r;
56 }
57
58 String
59 _PrivacyInfoImpl::GetId(void) const
60 {
61         return __privacyId;
62 }
63
64 bool
65 _PrivacyInfoImpl::IsEnabled(void) const
66 {
67         return __enabled;
68 }
69
70 void
71 _PrivacyInfoImpl::SetEnabled(bool enable)
72 {
73         __enabled = enable;
74 }
75
76 String
77 _PrivacyInfoImpl::GetDisplayName(void) const
78 {
79         String displayName;
80
81         int ret = PRIV_MGR_ERROR_SUCCESS;
82         char* pPrivacyDisplayName;
83         privacy_info_client_s privacyInfo;
84
85         std::unique_ptr<char[]> pPrivacyId(null);
86         pPrivacyId.reset(_StringConverter::CopyToCharArrayN(__privacyId));
87         SysTryReturn(NID_SEC, pPrivacyId != null, displayName, E_SYSTEM, "[E_SYSTEM] An unexpected system error occurred.");
88
89         privacyInfo.privacy_id = pPrivacyId.get();
90         ret = privacy_info_client_get_privacy_display_name(&privacyInfo, &pPrivacyDisplayName);
91         SysTryReturn(NID_SEC, ret == PRIV_MGR_ERROR_SUCCESS, displayName, E_SYSTEM, "[E_SYSTEM] An unexpected system error occurred.");
92         displayName.Append(pPrivacyDisplayName);
93
94         if (pPrivacyDisplayName != null)
95         {
96                 free(pPrivacyDisplayName);
97         }
98
99         return displayName;
100 }
101
102 String
103 _PrivacyInfoImpl::GetDescription(void) const
104 {
105         String description("Undefined");
106         return description;
107 }
108
109 }} // Tizen::Security