tizen beta 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 <dpl/shared_ptr.h>
29
30 namespace WrtDeviceApis {
31 namespace WidgetDB {
32 namespace Api {
33
34 class IWidgetDB;
35 typedef DPL::SharedPtr<IWidgetDB> IWidgetDBPtr;
36
37 typedef std::vector<IWidgetFeaturePtr> Features;
38
39 enum class ConfigAttribute {
40     ID,
41     VERSION,
42     DESCRIPTION,
43     LICENSE,
44     LICENSE_HREF,
45     AUTHOR_NAME,
46     AUTHOR_HREF,
47     AUTHOR_EMAIL,
48     NAME,
49     SHORT_NAME,
50     ICON,
51     ACCESS_NETWORK,
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
66 class IWidgetDB
67 {
68   public:
69
70     virtual int getWidgetId() const = 0;
71
72     virtual std::string getLanguage() const = 0;
73
74     virtual std::string getConfigValue(ConfigAttribute attribute) const = 0;
75
76     virtual std::string getUserAgent() const = 0;
77
78     virtual InstallationStatus checkInstallationStatus(
79             const std::string& gid,
80             const std::string& name,
81             const std::string& version) const = 0;
82
83     virtual Features getWidgetFeatures() const = 0;
84
85     virtual Features getRegisteredFeatures() const = 0;
86
87     virtual std::string getWidgetInstallationPath() const = 0;
88
89     virtual std::string getWidgetPersistentStoragePath() const = 0;
90
91     virtual std::string getWidgetTemporaryStoragePath() const = 0;
92
93     virtual ~IWidgetDB()
94     {
95     }
96
97 };
98
99 } // Api
100 } // WidgetDB
101 } // WrtDeviceApis
102
103 #endif
104