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; using namespace DPL::DB::ORM::wrt;
74 GlobalProperties::Row row;
75 row.Set_compliance_mode(mode);
77 WRT_DB_UPDATE(update, GlobalProperties, &WrtDatabase::interface())
81 Catch (DPL::DB::SqlConnection::Exception::Base){
82 ReThrowMsg(GlobalDAO::Exception::DatabaseError,
83 "Failed to update compliance mode");
87 void GlobalDAO::setComplianceFakeImei(const std::string &imei)
89 LogDebug("Setting compliance fake IMEI: " << imei);
91 using namespace DPL::DB::ORM; using namespace DPL::DB::ORM::wrt;
92 GlobalProperties::Row row;
93 row.Set_compliance_fake_imei(DPL::FromASCIIString(imei));
95 WRT_DB_UPDATE(update, GlobalProperties, &WrtDatabase::interface())
99 Catch (DPL::DB::SqlConnection::Exception::Base){
100 ReThrowMsg(GlobalDAO::Exception::DatabaseError,
101 "Failed to update compliance fake IMEI");
105 void GlobalDAO::setComplianceFakeMeid(const std::string &meid)
107 LogDebug("Setting compliance fake MEID: " << meid);
109 using namespace DPL::DB::ORM; using namespace DPL::DB::ORM::wrt;
110 GlobalProperties::Row row;
111 row.Set_compliance_fake_meid(DPL::FromASCIIString(meid));
113 WRT_DB_UPDATE(update, GlobalProperties, &WrtDatabase::interface())
117 Catch (DPL::DB::SqlConnection::Exception::Base){
118 ReThrowMsg(GlobalDAO::Exception::DatabaseError,
119 "Failed to update compliance fake MEID");
123 void GlobalDAO::SetHomeNetworkDataUsage(GlobalDAO::NetworkAccessMode newMode)
125 LogDebug("updating home network data usage to:" << newMode);
127 using namespace DPL::DB::ORM;
128 using namespace DPL::DB::ORM::wrt;
129 GlobalProperties::Row row;
130 row.Set_home_network_data_usage(static_cast<int>(newMode));
132 WRT_DB_UPDATE(update, GlobalProperties, &WrtDatabase::interface())
136 Catch(DPL::DB::SqlConnection::Exception::Base){
137 ReThrowMsg(GlobalDAO::Exception::DatabaseError,
138 "Failed to update home network data usage");
142 void GlobalDAO::SetRoamingDataUsage(GlobalDAO::NetworkAccessMode newMode)
144 LogDebug("updating roaming network data usage to:" << newMode);
146 using namespace DPL::DB::ORM;
147 using namespace DPL::DB::ORM::wrt;
148 GlobalProperties::Row row;
149 row.Set_roaming_data_usage(static_cast<int>(newMode));
151 WRT_DB_UPDATE(update, GlobalProperties, &WrtDatabase::interface())
155 Catch(DPL::DB::SqlConnection::Exception::Base){
156 ReThrowMsg(GlobalDAO::Exception::DatabaseError,
157 "Failed to update roaming network data usage");
161 void GlobalDAO::AddWhiteURI(const std::string &uri, bool subDomain)
163 LogDebug("Add White URI : " << uri);
165 using namespace DPL::DB::ORM;
166 using namespace DPL::DB::ORM::wrt;
167 WidgetWhiteURIList::Row row;
168 row.Set_uri(DPL::FromASCIIString(uri));
169 row.Set_subdomain_access(static_cast<int>(subDomain));
170 wrt::ScopedTransaction transaction(&WrtDatabase::interface());
172 WRT_DB_INSERT(insert, WidgetWhiteURIList, &WrtDatabase::interface())
176 transaction.Commit();
178 Catch(DPL::DB::SqlConnection::Exception::Base){
179 ReThrowMsg(GlobalDAO::Exception::DatabaseError,
180 "Failed to add white URI");
184 void GlobalDAO::RemoveWhiteURI(const std::string &uri)
186 LogDebug("Remove White URI : " << uri);
188 using namespace DPL::DB::ORM;
189 using namespace DPL::DB::ORM::wrt;
191 WRT_DB_DELETE(deleteFrom, WidgetWhiteURIList, &WrtDatabase::interface())
192 deleteFrom->Where(Equals<WidgetWhiteURIList::uri>(DPL::FromASCIIString(uri)));
193 deleteFrom->Execute();
194 } Catch(DPL::DB::SqlConnection::Exception::Base) {
195 ReThrowMsg(GlobalDAO::Exception::DatabaseError,
196 "Failed to removed white URI from AdultBlackList");
200 void GlobalDAO::SetCookieSharingMode(bool mode)
202 LogDebug("updating Cookie Sharing mode to:" << mode);
204 using namespace DPL::DB::ORM;
205 using namespace DPL::DB::ORM::wrt;
206 GlobalProperties::Row row;
207 row.Set_cookie_sharing_mode(mode);
209 WRT_DB_UPDATE(update, GlobalProperties, &WrtDatabase::interface())
213 Catch(DPL::DB::SqlConnection::Exception::Base){
214 ReThrowMsg(GlobalDAO::Exception::DatabaseError,
215 "Failed to update Cookie Sharing Mode");