Fix memory leaks
[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::Base::Collection;
33 using namespace Tizen::Security;
34
35 namespace Tizen { namespace Security
36 {
37
38 _PrivacyInfoImpl::_PrivacyInfoImpl(void)
39         : __enabled(false)
40 {
41
42 }
43
44 _PrivacyInfoImpl::~_PrivacyInfoImpl(void)
45 {
46
47 }
48
49 result
50 _PrivacyInfoImpl::Construct(const Tizen::Base::String& privacyId, bool enable)
51 {
52         result r = E_SUCCESS;
53         __privacyId = privacyId;
54         __enabled = enable;
55         
56         return r;
57 }
58
59 String
60 _PrivacyInfoImpl::GetId(void) const
61 {
62         return __privacyId;
63 }
64
65 bool
66 _PrivacyInfoImpl::IsEnabled(void) const
67 {
68         return __enabled;
69 }
70
71 void
72 _PrivacyInfoImpl::SetEnabled(bool enable)
73 {
74         __enabled = enable;
75 }
76
77 String
78 _PrivacyInfoImpl::GetDisplayName(void) const
79 {
80         String displayName;
81
82         int ret = PRIV_MGR_ERROR_SUCCESS;
83         char* pPrivacyDisplayName;
84         privacy_info_client_s privacyInfo;
85
86         std::unique_ptr<char[]> pPrivacyId(null);
87         pPrivacyId.reset(_StringConverter::CopyToCharArrayN(__privacyId));
88         SysTryReturn(NID_SEC, pPrivacyId != null, displayName, E_SYSTEM, "[E_SYSTEM] An unexpected system error occurred.");
89
90         privacyInfo.privacy_id = pPrivacyId.get();
91         ret = privacy_info_client_get_privacy_display_name(&privacyInfo, &pPrivacyDisplayName);
92         SysTryReturn(NID_SEC, ret == PRIV_MGR_ERROR_SUCCESS, displayName, E_SYSTEM, "[E_SYSTEM] An unexpected system error occurred.");
93         displayName.Append(pPrivacyDisplayName);
94
95         if (pPrivacyDisplayName != null)
96         {
97                 free(pPrivacyDisplayName);
98         }
99
100         return displayName;
101 }
102
103 String
104 _PrivacyInfoImpl::GetDescription(void) const
105 {
106         String description("Undefined");
107         return description;
108 }
109
110 }} // Tizen::Security