WidgetDAO from WidgetHandle construction depracated. Update method for widget in...
[platform/framework/web/wrt-commons.git] / modules / widget_dao / include / dpl / wrt-dao-ro / widget_dao_read_only.h
1 /*
2  * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
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  * This file contains the declaration of widget dao class.
18  *
19  * @file    widget_dao_read_only.h
20  * @author  Yang Jie (jie2.yang@samsung.com)
21  * @author  Przemyslaw Dobrowolski (p.dobrowolsk@samsung.com)
22  * @author  Pawel Sikorski (p.sikorski@samsung.com)
23  * @version 1.0
24  * @brief   This file contains the declaration of widget dao
25  */
26
27 #ifndef _WRT_SRC_CONFIGURATION_WIDGET_DAO_READ_ONLY_H_
28 #define _WRT_SRC_CONFIGURATION_WIDGET_DAO_READ_ONLY_H_
29
30 #include <time.h>
31 #include <list>
32 #include <string>
33 #include <dpl/string.h>
34 #include <dpl/exception.h>
35 #include <dpl/db/orm.h>
36 #include <dpl/optional_typedefs.h>
37 #include <dpl/wrt-dao-ro/config_parser_data.h>
38 #include <dpl/wrt-dao-ro/property_dao_read_only.h>
39 #include <dpl/wrt-dao-ro/common_dao_types.h>
40
41 namespace WrtDB {
42
43 /**
44  * Widget's signature enum.
45  * This enumerates signature type of widget.
46  */
47 enum WidgetSignatureType
48 {
49     SIGNATURE_TYPE_CARRIER = 0,
50     SIGNATURE_TYPE_IDENTIFIED,
51     SIGNATURE_TYPE_UNIDENTIFIED
52 };
53
54 enum CertificateSource {
55     SIGNATURE_DISTRIBUTOR = 0,
56     SIGNATURE_AUTHOR = 1
57 };
58
59 typedef std::list<DPL::String> StringList;
60
61 struct WidgetLocalizedInfo
62 {
63     DPL::OptionalString name;
64     DPL::OptionalString shortName;
65     DPL::OptionalString description;
66     DPL::OptionalString license;
67     DPL::OptionalString licenseHref;
68 };
69
70 /**
71  * CertificateData
72  * A structure to hold certificate fingerprints.
73  */
74 struct WidgetCertificateData
75 {
76     enum Owner { AUTHOR, DISTRIBUTOR, UNKNOWN };
77     enum Type { ROOT, ENDENTITY };
78
79     // type of signature: author/distributor
80     Owner owner;
81     // indicates whether this is ca certificate
82     Type type;
83
84     // chain id number: relative BASE, where BASE is signatureBASE.xml
85     int chainId;
86     // certificate fingerprint digested by md5
87     std::string strMD5Fingerprint;
88     // certificate fingerprint digestef by sha1
89     std::string strSHA1Fingerprint;
90     // Common name field in certificate
91     DPL::String strCommonName;
92
93     bool operator== (const WidgetCertificateData& certData) const {
94         return certData.chainId == chainId &&
95            certData.owner == owner &&
96            certData.strCommonName == strCommonName &&
97            certData.strMD5Fingerprint == strMD5Fingerprint &&
98            certData.strSHA1Fingerprint == strSHA1Fingerprint;
99     }
100 };
101
102 typedef std::list<WidgetCertificateData> WidgetCertificateDataList;
103
104 typedef DPL::String Locale;
105 typedef std::set<Locale> LocaleSet;
106 typedef std::list<std::string> ExternalLocationList;
107
108 /**
109  * WidgetRegisterInfo
110  * A structure to hold widget's information needed to be registered.
111  * @see WidgetConfigurationInfo
112  */
113 struct WidgetRegisterInfo
114 {
115     struct LocalizedIcon : public ConfigParserData::Icon
116     {
117         LocalizedIcon(const ConfigParserData::Icon& icon,
118                 const LocaleSet& _availableLocales) :
119             ConfigParserData::Icon(icon),
120             availableLocales(_availableLocales)
121         {
122         }
123
124         LocaleSet availableLocales;
125     };
126
127     struct StartFileProperties
128     {
129         DPL::String encoding;
130         DPL::String type;
131     };
132
133     typedef std::map<Locale,
134                      StartFileProperties> StartFilePropertiesForLocalesMap;
135     struct LocalizedStartFile
136     {
137         DPL::String path;
138         StartFilePropertiesForLocalesMap propertiesForLocales;
139     };
140
141     typedef std::list<LocalizedIcon> LocalizedIconList;
142     typedef std::list<LocalizedStartFile> LocalizedStartFileList;
143     struct LocalizationData
144     {
145         LocalizedIconList icons;
146         LocalizedStartFileList startFiles;
147     };
148
149     enum SecurityDomain
150     {
151         Untrusted,
152         Trusted,
153         Operator,
154         None
155     };
156
157     //Constructor
158     WidgetRegisterInfo() :
159         type(APP_TYPE_UNKNOWN),
160         signatureType(SIGNATURE_TYPE_UNIDENTIFIED),
161         isTestWidget(0),
162         configInfo(),
163         pType(PKG_TYPE_UNKNOWN)
164     {
165     }
166
167     WidgetType type;
168     DPL::OptionalString guid;
169     DPL::OptionalString version;
170     DPL::OptionalString minVersion;
171     std::string shareHref;
172     std::string baseFolder;
173     WidgetSignatureType signatureType;
174     int isTestWidget;
175     ConfigParserData configInfo;
176     LocalizationData localizationData;
177     DPL::OptionalString pkgname;
178     time_t installedTime;
179     PkgType pType;
180     EncryptedFileList encryptedFiles;
181     ExternalLocationList externalLocations;
182 };
183
184 typedef std::list<std::string> CertificateChainList;
185 class IWacSecurity
186 {
187   public:
188     virtual ~IWacSecurity();
189
190     virtual const WidgetCertificateDataList& getCertificateList() const = 0;
191
192     virtual bool isRecognized() const = 0;
193
194     virtual bool isDistributorSigned() const = 0;
195
196     virtual bool isWacSigned() const = 0;
197
198     virtual void getCertificateChainList(CertificateChainList& list,
199             CertificateSource source) const = 0;
200 };
201
202 /**
203  * WidgetAuthorInfo.
204  * Structure to hold the information of widget's author.
205  */
206 struct WidgetAuthorInfo
207 {
208     DPL::OptionalString name;
209     DPL::OptionalString email;
210     DPL::OptionalString href;
211 };
212
213 /**
214  * Widget update policy
215  */
216 enum WidgetUpdatePolicy
217 {
218     WIDGET_UPDATE_MONTHLY = 0,  //< monthly update
219     WIDGET_UPDATE_WEEKLY,       //< weekly update
220     WIDGET_UPDATE_DAILY,        //< daily update
221     WIDGET_UPDATE_STARTUP,      //< update when cell phone boots
222     WIDGET_UPDATE_NEVER         //< never update
223 };
224
225 typedef std::list <std::string> WidgetCertificateCNList;
226 typedef std::list<DPL::String> LanguageTagList;
227 typedef std::list<std::string> HostList;
228 typedef std::list<std::string> FingerPrintList;
229 typedef std::list<std::string> ResourceAttributeList;
230
231 class WidgetDAOReadOnly
232 {
233   public:
234     /**
235      * WidgetDAO Exception classes
236      */
237     class Exception
238     {
239       public:
240         DECLARE_EXCEPTION_TYPE(DPL::Exception, Base)
241         DECLARE_EXCEPTION_TYPE(Base, DatabaseError)
242         DECLARE_EXCEPTION_TYPE(Base, ReadOnlyProperty)
243         DECLARE_EXCEPTION_TYPE(Base, GUIDisNull)
244         DECLARE_EXCEPTION_TYPE(Base, UnexpectedEmptyResult)
245         DECLARE_EXCEPTION_TYPE(Base, WidgetNotExist)
246         DECLARE_EXCEPTION_TYPE(Base, AlreadyRegistered)
247     };
248
249   protected:
250     DbWidgetHandle m_widgetHandle;
251
252   public:
253     struct WidgetLocalizedIconRow
254     {
255         int appId;
256         int iconId;
257         DPL::String widgetLocale;
258     };
259     typedef std::list<WidgetLocalizedIconRow> WidgetLocalizedIconList;
260
261     struct WidgetIconRow
262     {
263         int iconId;
264         int appId;
265         DPL::String iconSrc;
266         DPL::OptionalInt iconWidth;
267         DPL::OptionalInt iconHeight;
268     };
269     typedef std::list<WidgetIconRow> WidgetIconList;
270
271     struct WidgetStartFileRow
272     {
273         int startFileId;
274         int appId;
275         DPL::String src;
276     };
277     typedef std::list<WidgetStartFileRow> WidgetStartFileList;
278
279     struct WidgetLocalizedStartFileRow
280     {
281         int startFileId;
282         int appId;
283         DPL::String widgetLocale;
284         DPL::String type;
285         DPL::String encoding;
286     };
287     typedef std::list<WidgetLocalizedStartFileRow> LocalizedStartFileList;
288
289     /**
290      * This is a constructor.
291      *
292      * @param[in] widgetHandle application id of widget.
293      */
294     WidgetDAOReadOnly(DbWidgetHandle widgetHandle);
295     WidgetDAOReadOnly(DPL::OptionalString widgetGUID);
296     WidgetDAOReadOnly(DPL::String pkgName);
297
298     /**
299      * Destructor
300      */
301     virtual ~WidgetDAOReadOnly();
302
303     /**
304      * This method returns widget handle(m_widgetHandle).
305      *
306      * @return widget handle(m_widgetHandle).
307      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
308      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in DB table.
309      */
310     DbWidgetHandle getHandle() const;
311     static DbWidgetHandle getHandle(const WidgetGUID GUID);
312     static DbWidgetHandle getHandle(const DPL::String pkgName);
313
314     /**
315      * This method returns the root directory of widget resource.
316      *
317      * @return path name of root directory.
318      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
319      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
320      * DB table.
321      */
322     DPL::String getPath() const;
323
324     DPL::String getFullPath() const;
325
326     /**
327      * This method returns the preferred size of the widget,
328      * including width and height.
329      *
330      * @see DbWidgetSize
331      * @return An structure type variable to hold widget's size.
332      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
333      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching
334      *                                          DB table.
335      */
336     DbWidgetSize getPreferredSize() const;
337
338     /**
339      * This method returns the type of the widget.
340      *
341      * @return WidgetType
342      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
343      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching
344                                                 records in DB table.
345      */
346     WidgetType getWidgetType() const;
347
348     /**
349      * This method returns the id of the widget.
350      *
351      * @return widget id
352      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
353      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
354      *  DB table.
355      */
356     WidgetGUID getGUID() const;
357
358     /**
359      * This method returns the Package name of the widget.
360      *
361      * @return pkgname
362      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
363      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in DB table.
364      */
365     DPL::OptionalString getPkgname() const;
366
367     /**
368      * This method returns the defaultlocale for the widget.
369      *
370      * @return defaultlocale
371      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
372      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
373      *  DB table.
374      */
375     DPL::OptionalString getDefaultlocale() const;
376
377     /**
378      * This method returns list of localized icons files;
379      *
380      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
381      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
382      *  DB table.
383      */
384     WidgetLocalizedIconList getLocalizedIconList() const;
385
386     /**
387      * This method returns list of icons files;
388      *
389      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
390      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
391      *  DB table.
392      */
393     WidgetIconList getIconList() const;
394
395     /**
396      * This method returns list of localized start files;
397      *
398      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
399      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
400      *  DB table.
401      */
402     LocalizedStartFileList getLocalizedStartFileList() const;
403
404     /**
405      * This method returns list of start files;
406      *
407      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
408      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
409      *  DB table.
410      */
411     WidgetStartFileList getStartFileList() const;
412
413     /**
414      * @param[out] outAccessInfoList list filled with access info structures
415      */
416     void getWidgetAccessInfo(WidgetAccessInfoList& outAccessInfoList) const;
417
418     /**
419      * WAC 2.0 extension
420      * @return recognized status
421      */
422     bool isRecognized() const;
423
424     /**
425      * WAC 2.0 extension
426      * @return
427      */
428     bool isWacSigned() const;
429
430     /**
431      * WAC 2.0 extension
432      * @return
433      */
434     bool isDistributorSigned() const;
435
436     /**
437      * WAC 2.0 extension
438      * @return trusted status
439      */
440     bool isTrusted() const;
441
442     /**
443      * WAC 2.0 extension
444      * @return is WAC test widget
445      */
446     bool isTestWidget() const;
447
448     /**
449      * This method returns window mode of widget.
450      *
451      * @return window modes of widget
452      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
453      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
454      *  DB table.
455      */
456     WindowModeList getWindowModes() const;
457
458     /**
459      * This method returns the version of the widget.
460      *
461      * @return version of widget
462      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
463      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
464      *  DB table.
465      */
466     DPL::OptionalString getVersion() const;
467
468     /**
469      * This method returns list filed with Common Name entries from certificate.
470      *
471      * @return Common Name of Distribuotor End Entity certificate.
472      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
473      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
474      *  DB table.
475      */
476     WidgetCertificateCNList getKeyCommonNameList(
477             WidgetCertificateData::Owner owner,
478             WidgetCertificateData::Type type) const;
479
480     /**
481      * given a certificate owner (author / distributor) and type of certificate
482      * (end entity / ca)
483      * function returns list of matching fingerprints
484      */
485     FingerPrintList getKeyFingerprints(
486             WidgetCertificateData::Owner owner,
487             WidgetCertificateData::Type type) const;
488
489     /*
490      *  This method gets certificate data list for a widget from database.
491      */
492     WidgetCertificateDataList getCertificateDataList() const;
493
494     /**
495      * This method returns a list of widget features.
496      *
497      * @see WidgetFeature
498      * @see FreeFeatureList()
499      * @return list of widget features, type of list element is structure
500      *  WidgetFeature
501      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
502      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
503      *  DB table.
504      */
505     DbWidgetFeatureSet getFeaturesList() const;
506
507     static WidgetParamMap getFeatureParams(int widgetFeatureId);
508     /**
509      * This method checks whether widget has specified feature.
510      *
511      * @return true if has, false if has not
512      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
513      */
514     bool hasFeature(const std::string& featureName) const;
515
516     /**
517      * This method gets host list that widget can connect to.
518      *
519      * @return See above comment
520      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
521      */
522     HostList getAccessHostList() const;
523
524     /**
525      * This method gets widget's access on network: true or false.
526      *
527      * @return true: widget can access network; false: widget can not access
528      *  network.
529      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
530      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
531      *  DB table.
532      */
533     bool getAccessNetworkMode() const;
534
535     /**
536      * This method gets if widget needs webkit plugins enabled
537      *
538      * @return true: widget needs webkit plugins enabled
539      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
540      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
541      *  DB table.
542      */
543     bool getWebkitPluginsRequired() const;
544
545     /**
546      * This method returns a list of all the installed widgets' app id.
547      *
548      * @return list of installed widgets' app id.
549      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
550      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
551      *  DB table.
552      */
553     static DbWidgetHandleList getHandleList();
554
555     /**
556      * This method returns a list of all the installed widgets.
557      *
558      * @return list of installed widgets.
559      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
560      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
561      *  DB table.
562      */
563     static DbWidgetDAOReadOnlyList getWidgetList();
564
565    /**
566      * This method removes a widget's information from EmDB.
567      *
568      * @see RegisterWidget()
569      * @param[in] widgetHandle    widget's app id
570      * @return true if succeed, false if fail.
571      */
572     static void unregisterWidget(DbWidgetHandle widgetHandle);
573
574     /**
575      * This method gets author's infomation of a widget which is parsed from
576      *  configiration document.
577      *
578      * @see WidgetAuthorInfo
579      * @param[out] pAuthorInfo
580      * @return true if succeed, false if fail.
581      */
582     WidgetAuthorInfo getAuthorInfo() const;
583
584     /**
585      * This method gets author's name of a widget which is parsed from
586      *  configiration document.
587      *
588      * @param[out] pAuthorInfo
589      * @return author's name.
590      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
591      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
592      *  DB table.
593      */
594     DPL::OptionalString getAuthorName() const;
595
596     /**
597      * This method gets author's email of a widget which is parsed from
598      *  configiration document.
599      *
600      * @param[out] pAuthorInfo
601      * @return author's email.
602      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
603      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
604      *  DB table.
605      */
606     DPL::OptionalString getAuthorEmail() const;
607
608     /**
609      * This method gets author's email of a widget which is parsed from
610      *  configiration document.
611      *
612      * @param[out] pAuthorInfo
613      * @return author's email.
614      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
615      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
616      *  DB table.
617      */
618     DPL::OptionalString getAuthorHref() const;
619
620     /**
621      * This method returns minimum version of WAC that WRT has to be compliant
622      *  to to run this widget
623      *
624      * @return Minimum version
625      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
626      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
627      *  DB table.
628      */
629     DPL::OptionalString getMinimumWacVersion() const;
630
631     /* This method get widget' share href.
632      *
633      * @return widget's share href
634      */
635     std::string getShareHref() const;
636
637     /**
638      * This method get widget installed time
639      *
640      * @return time_t : return widget's install time
641      */
642     time_t getInstallTime() const;
643
644     /**
645      * This method gets widget base folder.
646      *
647      * @return widget base folder.
648      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
649      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
650      *  DB table.
651      */
652     std::string getBaseFolder() const;
653
654     /* This method gets the parameter list for resource.
655      */
656     ResourceAttributeList getResourceAttribute(
657             const std::string &resourceId) const;
658
659     /* This method checks read only flag for given property
660      */
661     DPL::OptionalInt checkPropertyReadFlag(
662             const PropertyDAOReadOnly::WidgetPropertyKey &key) const;
663
664     /* This method gets widget property key list
665      */
666     PropertyDAOReadOnly::WidgetPropertyKeyList getPropertyKeyList() const;
667
668     /* This method gets widget property list
669      */
670     PropertyDAOReadOnly::WidgetPreferenceList getPropertyList() const;
671
672     /* This method get widget property value
673      */
674     PropertyDAOReadOnly::WidgetPropertyValue getPropertyValue(
675             const PropertyDAOReadOnly::WidgetPropertyKey &key) const;
676
677     LanguageTagList getLanguageTags() const;
678     LanguageTagList getIconLanguageTags() const;
679
680
681
682     WidgetLocalizedInfo getLocalizedInfo(const DPL::String& languageTag) const;
683     std::string getCookieDatabasePath() const;
684     // Local storage
685     std::string getPrivateLocalStoragePath() const;
686
687     bool getBackSupported() const;
688
689     static bool isWidgetInstalled(DbWidgetHandle handle);
690     static bool isWidgetInstalled(DPL::String pkgName);
691
692     /* This method get path of the splash image.
693      *
694      * @return path of the widget's splash image
695      */
696     DPL::OptionalString getSplashImgSrc() const;
697
698     ExternalLocationList getWidgetExternalLocations() const;
699
700     /*
701      * Default value is required to keep compatibility with
702      * wrt-installer and wrt.
703      */
704     CertificateChainList getWidgetCertificate(
705             CertificateSource source = SIGNATURE_DISTRIBUTOR) const;
706
707     void getWidgetSettings(WidgetSettings& outWidgetSettings) const;
708
709     /**
710      * This method gets application service list that define AUL value
711      *
712      * @return See above comment
713      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
714      */
715     void getAppServiceList(
716             WidgetApplicationServiceList& outAppServiceList) const;
717
718     /**
719      * This method returns the type of the package.
720      *
721      * @return PkgType
722      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
723      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching
724                                                 records in DB table.
725      */
726     PkgType getPkgType() const;
727
728     void getEncryptedFileList(EncryptedFileList& filesList) const;
729
730     /**
731      * This method returns widget's background page filename.
732      *
733      * @return Name of file containing background page
734      */
735     DPL::OptionalString getBackgroundPage() const;
736 };
737
738 } // namespace WrtDB
739
740 #endif // _WRT_SRC_CONFIGURATION_WIDGET_DAO_READ_ONLY_H_
741