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 widget_model.cpp
18 * @author Przemyslaw Dobrowolski (p.dobrowolsk@samsung.com)
20 * @brief Implementation file for widget model
22 #include <widget_model.h>
23 #include <dpl/sstream.h>
24 #include <dpl/event/model_bind_to_dao.h>
25 #include <dpl/wrt-dao-ro/global_config.h>
26 #include <dpl/wrt-dao-ro/widget_config.h>
27 #include <dpl/wrt-dao-ro/widget_dao_read_only.h>
29 #include <dpl/utils/folder_size.h>
31 using namespace WrtDB;
33 template <typename RetType, RetType (WidgetDAOReadOnly::*extFun)() const >
34 struct BindToWidgetDAO :
35 DPL::Event::BindToDAO<WidgetModel,
39 &WidgetModel::getTizenId,
44 template <typename RetType, RetType(*extFun) (DPL::String)>
45 struct BindToWidgetDAOStatic :
46 DPL::Event::BindToDAO_Static<WidgetModel,
49 &WidgetModel::getTizenId,
54 WidgetModel::WidgetModel(const std::string &tizenId) :
55 TizenId(DPL::FromASCIIString(tizenId)),
56 Type(this, &BindToWidgetDAO<WidgetType,
57 &WidgetDAOReadOnly::getWidgetType>::Get),
60 &BindToWidgetDAO<WidgetSize,
61 &WidgetDAOReadOnly::getPreferredSize>::Get),
63 //localized, so not binded
65 //localized, so not binded
66 // file:// + / : without "/" path, webkit return security error
67 PrefixURL(this, L"file:///"),
70 &BindToWidgetDAO<DPL::String, &WidgetDAOReadOnly::getFullPath>::Get),
71 PersistentStoragePath(this,
73 WidgetConfig::GetWidgetPersistentStoragePath(
76 // use of multiple widget model
77 TemporaryStoragePath(this,
79 WidgetConfig::GetWidgetTemporaryStoragePath(
80 this->TizenId + getTimestamp()))
84 &BindToWidgetDAO<DPL::OptionalString,
85 &WidgetDAOReadOnly::getDefaultlocale>::Get),
87 //localized, so not binded
89 //localized, so not binded
91 //localized, so not binded
93 //localized, so not binded
95 //localized, so not binded
99 &BindToWidgetDAO<DPL::OptionalString,
100 &WidgetDAOReadOnly::getSplashImgSrc>::Get),
103 &BindToWidgetDAO<WindowModeList,
104 &WidgetDAOReadOnly::getWindowModes>::Get),
105 //localized, so not binded
106 // AccessNetwork(this, false),
107 // WarpDefinitionEmpty(this),
110 //TODO this type has to be here now, as Property constructor is wrongly
112 (DPL::Event::Property<bool,
113 DPL::Event::PropertyReadOnly,
114 DPL::Event::PropertyStorageDynamicCached>::ReadDelegateType) &
115 BindToWidgetDAO<bool, &WidgetDAOReadOnly::getBackSupported>::Get),
119 //TODO this type has to be here now, as Property constructor is wrongly
121 (DPL::Event::Property<bool,
122 DPL::Event::PropertyReadOnly,
123 DPL::Event::PropertyStorageDynamicCached>::ReadDelegateType) &
124 BindToWidgetDAO<bool, &WidgetDAOReadOnly::isTestWidget>::Get),
131 DPL::String WidgetModel::getTizenId() const
136 DPL::String WidgetModel::getTimestamp()
141 gettimeofday(&tv, NULL);
142 sprintf(buff, "%lf", (double)tv.tv_sec + (double)tv.tv_usec / 1000000.0f);
143 LogInfo("timestamp: " << buff);
144 DPL::String timeString = DPL::FromUTF8String(std::string(buff));