2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
17 * @file global_dao.cpp
18 * @author Pawel Sikorski (p.sikorski@samsung.com)
20 * @brief This file contains the definition of global dao class.
23 #include <dpl/wrt-dao-rw/global_dao.h>
24 #include <dpl/log/log.h>
25 #include <dpl/string.h>
26 #include <dpl/db/orm.h>
27 #include <orm_generator_wrt.h>
28 #include <dpl/wrt-dao-ro/webruntime_database.h>
29 #include <dpl/wrt-dao-ro/WrtDatabase.h>
32 void GlobalDAO::SetDeveloperMode(bool mode)
34 LogDebug("updating Developer mode to:" << mode);
36 using namespace DPL::DB::ORM;
37 using namespace DPL::DB::ORM::wrt;
38 GlobalProperties::Row row;
39 row.Set_developer_mode(mode);
41 WRT_DB_UPDATE(update, GlobalProperties, &WrtDatabase::interface())
45 Catch(DPL::DB::SqlConnection::Exception::Base){
46 ReThrowMsg(GlobalDAO::Exception::DatabaseError,
47 "Failed to update Developer Mode");
51 void GlobalDAO::SetSecureByDefault(bool secure)
53 //If secure == true -> widget does not need to be signed
55 using namespace DPL::DB::ORM;
56 using namespace DPL::DB::ORM::wrt;
57 GlobalProperties::Row row;
58 row.Set_secure_by_default(secure);
59 WRT_DB_UPDATE(update, GlobalProperties, &WrtDatabase::interface())
63 Catch(DPL::DB::SqlConnection::Exception::Base) {
64 ReThrowMsg(GlobalDAO::Exception::DatabaseError,
65 "Failed to update secureByDefault");
69 void GlobalDAO::setComplianceMode(bool mode)
71 LogDebug("Updating compliance mode to:" << mode);
73 using namespace DPL::DB::ORM;
74 using namespace DPL::DB::ORM::wrt;
75 GlobalProperties::Row row;
76 row.Set_compliance_mode(mode);
78 WRT_DB_UPDATE(update, GlobalProperties, &WrtDatabase::interface())
82 Catch(DPL::DB::SqlConnection::Exception::Base){
83 ReThrowMsg(GlobalDAO::Exception::DatabaseError,
84 "Failed to update compliance mode");
88 void GlobalDAO::setComplianceFakeImei(const std::string &imei)
90 LogDebug("Setting compliance fake IMEI: " << imei);
92 using namespace DPL::DB::ORM;
93 using namespace DPL::DB::ORM::wrt;
94 GlobalProperties::Row row;
95 row.Set_compliance_fake_imei(DPL::FromASCIIString(imei));
97 WRT_DB_UPDATE(update, GlobalProperties, &WrtDatabase::interface())
101 Catch(DPL::DB::SqlConnection::Exception::Base){
102 ReThrowMsg(GlobalDAO::Exception::DatabaseError,
103 "Failed to update compliance fake IMEI");
107 void GlobalDAO::setComplianceFakeMeid(const std::string &meid)
109 LogDebug("Setting compliance fake MEID: " << meid);
111 using namespace DPL::DB::ORM;
112 using namespace DPL::DB::ORM::wrt;
113 GlobalProperties::Row row;
114 row.Set_compliance_fake_meid(DPL::FromASCIIString(meid));
116 WRT_DB_UPDATE(update, GlobalProperties, &WrtDatabase::interface())
120 Catch(DPL::DB::SqlConnection::Exception::Base){
121 ReThrowMsg(GlobalDAO::Exception::DatabaseError,
122 "Failed to update compliance fake MEID");
126 void GlobalDAO::SetHomeNetworkDataUsage(GlobalDAO::NetworkAccessMode newMode)
128 LogDebug("updating home network data usage to:" << newMode);
130 using namespace DPL::DB::ORM;
131 using namespace DPL::DB::ORM::wrt;
132 GlobalProperties::Row row;
133 row.Set_home_network_data_usage(static_cast<int>(newMode));
135 WRT_DB_UPDATE(update, GlobalProperties, &WrtDatabase::interface())
139 Catch(DPL::DB::SqlConnection::Exception::Base){
140 ReThrowMsg(GlobalDAO::Exception::DatabaseError,
141 "Failed to update home network data usage");
145 void GlobalDAO::SetRoamingDataUsage(GlobalDAO::NetworkAccessMode newMode)
147 LogDebug("updating roaming network data usage to:" << newMode);
149 using namespace DPL::DB::ORM;
150 using namespace DPL::DB::ORM::wrt;
151 GlobalProperties::Row row;
152 row.Set_roaming_data_usage(static_cast<int>(newMode));
154 WRT_DB_UPDATE(update, GlobalProperties, &WrtDatabase::interface())
158 Catch(DPL::DB::SqlConnection::Exception::Base){
159 ReThrowMsg(GlobalDAO::Exception::DatabaseError,
160 "Failed to update roaming network data usage");
164 void GlobalDAO::AddWhiteURI(const std::string &uri, bool subDomain)
166 LogDebug("Add White URI : " << uri);
168 using namespace DPL::DB::ORM;
169 using namespace DPL::DB::ORM::wrt;
170 WidgetWhiteURIList::Row row;
171 row.Set_uri(DPL::FromASCIIString(uri));
172 row.Set_subdomain_access(static_cast<int>(subDomain));
173 wrt::ScopedTransaction transaction(&WrtDatabase::interface());
175 WRT_DB_INSERT(insert, WidgetWhiteURIList, &WrtDatabase::interface())
179 transaction.Commit();
181 Catch(DPL::DB::SqlConnection::Exception::Base){
182 ReThrowMsg(GlobalDAO::Exception::DatabaseError,
183 "Failed to add white URI");
187 void GlobalDAO::RemoveWhiteURI(const std::string &uri)
189 LogDebug("Remove White URI : " << uri);
191 using namespace DPL::DB::ORM;
192 using namespace DPL::DB::ORM::wrt;
194 WRT_DB_DELETE(deleteFrom, WidgetWhiteURIList, &WrtDatabase::interface())
195 deleteFrom->Where(Equals<WidgetWhiteURIList::uri>(DPL::FromASCIIString(
197 deleteFrom->Execute();
198 } Catch(DPL::DB::SqlConnection::Exception::Base) {
199 ReThrowMsg(GlobalDAO::Exception::DatabaseError,
200 "Failed to removed white URI from AdultBlackList");
204 void GlobalDAO::SetCookieSharingMode(bool mode)
206 LogDebug("updating Cookie Sharing mode to:" << mode);
208 using namespace DPL::DB::ORM;
209 using namespace DPL::DB::ORM::wrt;
210 GlobalProperties::Row row;
211 row.Set_cookie_sharing_mode(mode);
213 WRT_DB_UPDATE(update, GlobalProperties, &WrtDatabase::interface())
217 Catch(DPL::DB::SqlConnection::Exception::Base){
218 ReThrowMsg(GlobalDAO::Exception::DatabaseError,
219 "Failed to update Cookie Sharing Mode");