Implement tizen privilege for w3c API
[framework/web/wrt-commons.git] / modules / security_origin_dao / include / wrt-commons / security-origin-dao / security_origin_dao_types.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  *
18  * @file    security_origin_dao_types.h
19  * @author  Jihoon Chung (jihoon.chung@samsung.com)
20  * @version 1.0
21  * @brief This file contains the declaration of
22  *           common data types for security origin database.
23  */
24 #ifndef _SECURITY_ORIGIN_DAO_TYPES_H_
25 #define _SECURITY_ORIGIN_DAO_TYPES_H_
26
27 #include <list>
28 #include <memory>
29 #include <map>
30 #include <dpl/string.h>
31
32 namespace SecurityOriginDB {
33 enum Feature
34 {
35     FEATURE_START = 0,
36     FEATURE_GEOLOCATION = 0,
37     FEATURE_WEB_NOTIFICATION,
38     FEATURE_WEB_DATABASE,
39     FEATURE_FILE_SYSTEM_ACCESS,
40     FEATURE_END = FEATURE_FILE_SYSTEM_ACCESS
41 };
42
43 enum Result
44 {
45     RESULT_UNKNOWN = 0,
46     RESULT_ALLOW_ONCE,
47     RESULT_DENY_ONCE,
48     RESULT_ALLOW_ALWAYS,
49     RESULT_DENY_ALWAYS
50 };
51
52 extern const std::map<std::string, Feature> g_W3CPrivilegeTextMap;
53
54 struct Origin
55 {
56     DPL::String scheme;
57     DPL::String host;
58     unsigned int port;
59
60     Origin(const DPL::String& Scheme,
61            const DPL::String& Host,
62            const unsigned int Port) :
63         scheme(Scheme),
64         host(Host),
65         port(Port)
66     {}
67
68     bool operator== (const Origin& other) const
69     {
70         return (!DPL::StringCompare(scheme, other.scheme) &&
71                 !DPL::StringCompare(host, other.host) &&
72                 port == other.port);
73     }
74
75     bool operator!= (const Origin& other) const
76     {
77         return !(*this == other);
78     }
79 };
80
81 struct SecurityOriginData
82 {
83     Feature feature;
84     Origin origin;
85
86     SecurityOriginData(const Feature features, const Origin& ori) :
87         feature(features),
88         origin(ori)
89     {}
90
91     bool operator== (const SecurityOriginData& other) const
92     {
93         return !(origin == other.origin) &&
94                !(feature == other.feature);
95     }
96
97     bool operator!= (const SecurityOriginData& other) const
98     {
99         return !(*this == other);
100     }
101 };
102
103 typedef std::shared_ptr<SecurityOriginData> SecurityOriginDataPtr;
104 typedef std::list<SecurityOriginDataPtr> SecurityOriginDataList;
105 } // namespace SecurityOriginDB
106
107 #endif // _SECURITY_ORIGIN_DAO_TYPES_H_