90e355b1f5fea7b4d30ec60f7f8c42f79f7b7722
[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 <dpl/string.h>
29
30 namespace SecurityOriginDB {
31
32 enum Feature
33 {
34     FEATURE_GEOLOCATION = 0,
35     FEATURE_FILESYSTEM,
36     FEATURE_WEB_NOTIFICATION
37 };
38
39 enum Result
40 {
41     RESULT_UNKNOWN = 0,
42     RESULT_USER_ALLOWED,
43     RESULT_USER_DENIED,
44     RESULT_EXCEPTION_ALLOWED,
45     RESULT_EXCEPTION_DENIED
46 };
47
48 struct Origin
49 {
50     DPL::String scheme;
51     DPL::String host;
52     unsigned int port;
53
54     Origin(const DPL::String& Scheme,
55            const DPL::String& Host,
56            const unsigned int Port) :
57         scheme(Scheme),
58         host(Host),
59         port(Port)
60     {
61     }
62
63      bool operator== (const Origin& other) const
64     {
65         return (!DPL::StringCompare(scheme, other.scheme) &&
66                !DPL::StringCompare(host, other.host) &&
67                port == other.port);
68     }
69
70     bool operator!= (const Origin& other) const
71     {
72         return !(*this == other);
73     }
74 };
75
76 struct SecurityOriginData
77 {
78     Feature feature;
79     Origin origin;
80
81     SecurityOriginData(const Feature features, const Origin& ori) :
82         feature(features),
83         origin(ori)
84     {
85     }
86
87     bool operator== (const SecurityOriginData& other) const
88     {
89         return !(origin == other.origin) &&
90                !(feature == other.feature);
91     }
92
93     bool operator!= (const SecurityOriginData& other) const
94     {
95         return !(*this == other);
96     }
97 };
98
99 } // namespace SecurityOriginDB
100
101 #endif // _SECURITY_ORIGIN_DAO_TYPES_H_