[Release] wrt-commons_0.2.119
[framework/web/wrt-commons.git] / modules / widget_dao / include / dpl / wrt-dao-ro / config_parser_data.h
index 5eb7f6e..bc78fe4 100644 (file)
@@ -41,30 +41,11 @@ class WidgetConfigurationManager;
 class ConfigParserData
 {
   public:
-    struct Param
-    {
-        Param(const DPL::String& _name) : name(_name)
-        {}
-        DPL::String name;
-        DPL::String value;
-        bool operator==(const Param&) const;
-        bool operator!=(const Param&) const;
-        bool operator >(const Param&) const;
-        bool operator>=(const Param&) const;
-        bool operator <(const Param&) const;
-        bool operator<=(const Param&) const;
-    };
-    typedef std::set<Param> ParamsList;
-
     struct Feature
     {
-        Feature(const DPL::String& _name,
-                bool _required = true) : name(_name),
-            required(_required)
+        Feature(const DPL::String& _name) : name(_name)
         {}
         DPL::String name;
-        bool required;
-        ParamsList paramsList;
 
         bool operator==(const Feature&) const;
         bool operator!=(const Feature&) const;
@@ -176,53 +157,27 @@ class ConfigParserData
 
     typedef std::set<Setting> SettingsList;
 
-    /* ServiceInfo will be removed.
-     * ServiceInfo will be changed AppControl
-     */
-    struct ServiceInfo
+    struct AppControlInfo
     {
         enum class Disposition {
             WINDOW = 0,
             INLINE
         };
-        ServiceInfo(
-            const DPL::String& src,
-            const DPL::String& operation,
-            const DPL::String& scheme,
-            const DPL::String& mime,
-            const Disposition dispos) :
-            m_src(src),
+        AppControlInfo(const DPL::String& operation) :
             m_operation(operation),
-            m_scheme(scheme),
-            m_mime(mime),
-            m_disposition(dispos)
-        {}
-        DPL::String m_src;
-        DPL::String m_operation;
-        DPL::String m_scheme;
-        DPL::String m_mime;
-        Disposition m_disposition;
-
-        bool operator==(const ServiceInfo&) const;
-        bool operator!=(const ServiceInfo&) const;
-    };
-
-    struct AppControlInfo
-    {
-        AppControlInfo(
-            const DPL::String& operation) :
-            m_operation(operation)
+            m_index(0)
         {}
         DPL::String m_src;
         DPL::String m_operation;
         std::set <DPL::String> m_uriList;
         std::set <DPL::String> m_mimeList;
+        Disposition m_disposition;
+        unsigned m_index;
 
         bool operator==(const AppControlInfo&) const;
         bool operator!=(const AppControlInfo&) const;
     };
 
-    typedef std::list<ServiceInfo> ServiceInfoList; // It will be removed.
     typedef std::list<AppControlInfo> AppControlInfoList;
 
     typedef std::list<std::pair<DPL::String, DPL::String> > BoxSizeList;
@@ -235,10 +190,12 @@ class ConfigParserData
         {
             DPL::String m_boxSrc;
             DPL::String m_boxMouseEvent;
+            DPL::String m_boxTouchEffect;
             BoxSizeList m_boxSize;
             DPL::String m_pdSrc;
             DPL::String m_pdWidth;
             DPL::String m_pdHeight;
+            DPL::String m_pdFastOpen;
         };
         typedef BoxContent BoxContentInfo;
 
@@ -259,12 +216,65 @@ class ConfigParserData
         bool operator<=(const LiveboxInfo&) const;
     };
     typedef std::list<DPL::Optional<LiveboxInfo> > LiveboxList;
-    LiveboxList m_livebox;
 
-    typedef std::list<DPL::OptionalString> DependsPkgList;
+    enum IconSectionType
+    {
+        DefaultIcon =0,
+        SmallIcon
+    };
+
+    typedef std::set<std::pair<IconSectionType, DPL::String>> IconSet;
+    typedef std::list<DPL::String> CapabilityList;
+    typedef std::set<std::pair<DPL::String, DPL::String>> DisplayNameSet;
+
+    struct AccountProvider
+    {
+        AccountProvider() :
+            m_multiAccountSupport(false)
+        { }
+
+        bool m_multiAccountSupport;
+        IconSet m_iconSet;
+        DisplayNameSet m_displayNameSet;
+        CapabilityList m_capabilityList;
+    };
 
+    typedef std::list<DPL::OptionalString> DependsPkgList;
     typedef std::set<DPL::String> CategoryList;
 
+    struct AllowNavigationInfo
+    {
+        AllowNavigationInfo(DPL::String scheme,
+                            DPL::String host) :
+            m_scheme(scheme),
+            m_host(host)
+        { }
+        DPL::String m_scheme;
+        DPL::String m_host;
+    };
+    typedef std::list<AllowNavigationInfo> AllowNavigationInfoList;
+
+    struct Metadata
+    {
+        Metadata(const DPL::String& _key,
+                 const DPL::String& _value) :
+            key(_key),
+            value(_value)
+        {}
+        DPL::String key;
+        DPL::String value;
+
+        bool operator==(const Metadata&) const;
+        bool operator!=(const Metadata&) const;
+    };
+    typedef std::list<Metadata> MetadataList;
+
+    enum class SecurityModelVersion {
+        SECURITY_MODEL_V1 = 0, // WARP
+        SECURITY_MODEL_V2      // CSP, allow-navigation
+    };
+
+    LiveboxList m_livebox;
     StringsList nameSpaces;
 
     LocalizedDataSet localizedDataSet;
@@ -310,11 +320,14 @@ class ConfigParserData
     DPL::OptionalString tizenPkgId;
     DPL::OptionalString tizenAppId;
 
+    // allow-navigation
+    AllowNavigationInfoList allowNavigationInfoList;
+
     //csp polic for widget
     DPL::OptionalString cspPolicy;
+    DPL::OptionalString cspPolicyReportOnly;
 
-    //Application service model list
-    ServiceInfoList appServiceList; //It will be removed.
+    //AppControl model list
     AppControlInfoList appControlList;
 
     // For link shared directory
@@ -325,13 +338,20 @@ class ConfigParserData
     DPL::OptionalString backgroundPage;
     // For category
     CategoryList categoryList;
+    // For Account
+    AccountProvider accountProvider;
+    // security model version
+    SecurityModelVersion securityModelVersion;
+    // security model version
+    MetadataList metadataList;
 
     ConfigParserData() :
         flashNeeded(false),
         minVersionRequired(),
         backSupported(false),
         accessNetwork(false),
-        startFileEncountered(false)
+        startFileEncountered(false),
+        securityModelVersion(SecurityModelVersion::SECURITY_MODEL_V1)
     {}
 };
 } // namespace WrtDB