tizen 2.4 release
[framework/web/wrt-plugins-common.git] / src / modules / API / WidgetDB / IWidgetDB.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  * @file        IWidgetDB.h
18  * @author      Andrzej Surdej (a.surdej@samsung.com)
19  * @version     0.1
20  * @brief       Widget interface to access WRT DB
21  */
22
23 #ifndef WRTDEVICEAPIS_WIDGETDB_IWIDGETDB_H_
24 #define WRTDEVICEAPIS_WIDGETDB_IWIDGETDB_H_
25
26 #include "IWidgetFeature.h"
27 #include <vector>
28 #include <memory>
29 #include <dpl/wrt-dao-ro/wrt_db_types.h>
30
31 namespace WrtDeviceApis {
32 namespace WidgetDB {
33 namespace Api {
34 class IWidgetDB;
35 typedef std::shared_ptr<IWidgetDB> IWidgetDBPtr;
36
37 typedef std::vector<IWidgetFeaturePtr> Features;
38
39 enum class ConfigAttribute
40 {
41     ID,
42     VERSION,
43     DESCRIPTION,
44     LICENSE,
45     LICENSE_HREF,
46     AUTHOR_NAME,
47     AUTHOR_HREF,
48     AUTHOR_EMAIL,
49     NAME,
50     SHORT_NAME,
51     ICON,
52     WIDTH,
53     HEIGHT,
54     INSTALL_PATH,
55     PUBLIC_STORAGE_PATH
56 };
57
58 enum class InstallationStatus
59 {
60     STATUS_INSTALLED,
61     STATUS_LATEST,
62     STATUS_UNINSTALLED
63 };
64
65 class IWidgetDB
66 {
67   public:
68
69     virtual WidgetHandle getWidgetId() const = 0;
70
71     virtual std::string getLanguage() const = 0;
72
73     virtual std::string getConfigValue(ConfigAttribute attribute) const = 0;
74
75     virtual std::string getUserAgent() const = 0;
76
77     virtual InstallationStatus checkInstallationStatus(
78         const std::string& gid,
79         const std::string& name,
80         const std::string& version) const = 0;
81
82     virtual Features getWidgetFeatures() const = 0;
83
84     virtual Features getRegisteredFeatures() const = 0;
85
86     virtual std::string getWidgetInstallationPath() const = 0;
87
88     virtual std::string getWidgetPersistentStoragePath() const = 0;
89
90     virtual std::string getWidgetTemporaryStoragePath() const = 0;
91
92     virtual ~IWidgetDB()
93     {}
94 };
95 } // Api
96 } // WidgetDB
97 } // WrtDeviceApis
98
99 #endif
100