Update wrt-commons_0.2.53
[framework/web/wrt-commons.git] / modules / utils / include / dpl / utils / warp_iri.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 #ifndef _WARPIRI_H_
17 #define _WARPIRI_H_
18
19 #include <vector>
20
21 #include <dpl/string.h>
22 #include <dpl/log/log.h>
23
24 class WarpIRI
25 {
26     static const unsigned int UNKNOWN_PORT = 0;
27   public:
28     WarpIRI();
29
30     void set(const char *iri,
31             bool domain);
32     void set(const DPL::String &iristring,
33             bool domain);
34
35     /* It also checks port and schema */
36     bool isSubDomain(const WarpIRI &second) const;
37     bool isAccessDefinition() const;
38     // KW    bool isIRIValid() const;
39     bool getSubDomain() const;
40
41     /* This is debug function */
42     // KW     void print() const {
43     // KW         LogInfo("P:" << m_port << " S:" << m_schema);
44     // KW         for (size_t i = 0; i < m_host.size(); ++i)
45     // KW             LogInfo("      " << m_host[i]);
46     // KW     }
47
48     static bool isIRISchemaIgnored(const char *iri);
49
50     bool operator ==(const WarpIRI &other) const
51     {
52         return m_domain == other.m_domain &&
53                m_host == other.m_host &&
54                m_schema == other.m_schema &&
55                m_port == other.m_port &&
56                m_isAccessDefinition == other.m_isAccessDefinition &&
57                m_isIRIValid == other.m_isIRIValid;
58     }
59
60   private:
61     unsigned int getPort(const DPL::String &schema) const;
62
63     bool m_domain;
64     std::vector<DPL::String> m_host;
65     DPL::String m_schema;
66     unsigned int m_port;
67     bool m_isAccessDefinition;
68     bool m_isIRIValid;
69 };
70
71 #endif // _WarpIRI_H_