[M67 Dev][EWK] Classify EWK APIs by public, internal, or product
[platform/framework/web/chromium-efl.git] / tizen_src / ewk / efl_integration / public / ewk_error_internal.h
1 /*
2  * Copyright (C) 2016 Intel Corporation. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  * 1. Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
14  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23  * THE POSSIBILITY OF SUCH DAMAGE.
24  */
25
26 /**
27  * @file    ewk_error_internal.h
28  * @brief   Describes the Web Error API.
29  */
30
31 #ifndef ewk_error_internal_h
32 #define ewk_error_internal_h
33
34 #include "ewk_error.h"
35
36 #ifdef __cplusplus
37 extern "C" {
38 #endif
39
40 /// Creates a type name for Ewk_Error_Type.
41 typedef enum {
42     EWK_ERROR_TYPE_NONE,
43     EWK_ERROR_TYPE_INTERNAL,
44     EWK_ERROR_TYPE_NETWORK,
45     EWK_ERROR_TYPE_POLICY,
46     EWK_ERROR_TYPE_PLUGIN,
47     EWK_ERROR_TYPE_DOWNLOAD,
48     EWK_ERROR_TYPE_PRINT
49 } Ewk_Error_Type;
50
51 typedef enum {
52     EWK_ERROR_NETWORK_STATUS_NONE,
53
54     /* Transport Errors */
55     EWK_ERROR_NETWORK_STATUS_CANCELLED = 1,
56     EWK_ERROR_NETWORK_STATUS_CANT_RESOLVE,
57     EWK_ERROR_NETWORK_STATUS_CANT_RESOLVE_PROXY,
58     EWK_ERROR_NETWORK_STATUS_CANT_CONNECT,
59     EWK_ERROR_NETWORK_STATUS_CANT_CONNECT_PROXY,
60     EWK_ERROR_NETWORK_STATUS_SSL_FAILED,
61     EWK_ERROR_NETWORK_STATUS_IO_ERROR,
62     EWK_ERROR_NETWORK_STATUS_MALFORMED,
63     EWK_ERROR_NETWORK_STATUS_TRY_AGAIN,
64     EWK_ERROR_NETWORK_STATUS_TOO_MANY_REDIRECTS,
65     EWK_ERROR_NETWORK_STATUS_TLS_FAILED,
66
67     /* HTTP Status Codes */
68     EWK_ERROR_NETWORK_STATUS_CONTINUE = 100,
69     EWK_ERROR_NETWORK_STATUS_SWITCHING_PROTOCOLS,
70     EWK_ERROR_NETWORK_STATUS_PROCESSING,
71
72     EWK_ERROR_NETWORK_STATUS_OK = 200,
73     EWK_ERROR_NETWORK_STATUS_CREATED,
74     EWK_ERROR_NETWORK_STATUS_ACCEPTED,
75     EWK_ERROR_NETWORK_STATUS_NON_AUTHORITATIVE,
76     EWK_ERROR_NETWORK_STATUS_NO_CONTENT,
77     EWK_ERROR_NETWORK_STATUS_RESET_CONTENT,
78     EWK_ERROR_NETWORK_STATUS_PARTIAL_CONTENT,
79     EWK_ERROR_NETWORK_STATUS_MULTI_STATUS,
80
81     EWK_ERROR_NETWORK_STATUS_MULTIPLE_CHOICES = 300,
82     EWK_ERROR_NETWORK_STATUS_MOVED_PERMANENTLY,
83     EWK_ERROR_NETWORK_STATUS_FOUND = 302,
84     EWK_ERROR_NETWORK_STATUS_MOVED_TEMPORARILY = 302,
85     EWK_ERROR_NETWORK_STATUS_SEE_OTHER,
86     EWK_ERROR_NETWORK_STATUS_NOT_MODIFIED,
87     EWK_ERROR_NETWORK_STATUS_USE_PROXY,
88     EWK_ERROR_NETWORK_STATUS_NOT_APPEARING_IN_THIS_PROTOCOL,
89     EWK_ERROR_NETWORK_STATUS_TEMPORARY_REDIRECT,
90
91     EWK_ERROR_NETWORK_STATUS_BAD_REQUEST = 400,
92     EWK_ERROR_NETWORK_STATUS_UNAUTHORIZED,
93     EWK_ERROR_NETWORK_STATUS_PAYMENT_REQUIRED,
94     EWK_ERROR_NETWORK_STATUS_FORBIDDEN,
95     EWK_ERROR_NETWORK_STATUS_NOT_FOUND,
96     EWK_ERROR_NETWORK_STATUS_METHOD_NOT_ALLOWED,
97     EWK_ERROR_NETWORK_STATUS_NOT_ACCEPTABLE,
98     EWK_ERROR_NETWORK_STATUS_PROXY_AUTHENTICATION_REQUIRED,
99     EWK_ERROR_NETWORK_STATUS_PROXY_UNAUTHORIZED = EWK_ERROR_NETWORK_STATUS_PROXY_AUTHENTICATION_REQUIRED,
100     EWK_ERROR_NETWORK_STATUS_REQUEST_TIMEOUT,
101     EWK_ERROR_NETWORK_STATUS_CONFLICT,
102     EWK_ERROR_NETWORK_STATUS_GONE,
103     EWK_ERROR_NETWORK_STATUS_LENGTH_REQUIRED,
104     EWK_ERROR_NETWORK_STATUS_PRECONDITION_FAILED,
105     EWK_ERROR_NETWORK_STATUS_REQUEST_ENTITY_TOO_LARGE,
106     EWK_ERROR_NETWORK_STATUS_REQUEST_URI_TOO_LONG,
107     EWK_ERROR_NETWORK_STATUS_UNSUPPORTED_MEDIA_TYPE,
108     EWK_ERROR_NETWORK_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE,
109     EWK_ERROR_NETWORK_STATUS_INVALID_RANGE = EWK_ERROR_NETWORK_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE,
110     EWK_ERROR_NETWORK_STATUS_EXPECTATION_FAILED,
111     EWK_ERROR_NETWORK_STATUS_UNPROCESSABLE_ENTITY = 422,
112     EWK_ERROR_NETWORK_STATUS_LOCKED,
113     EWK_ERROR_NETWORK_STATUS_FAILED_DEPENDENCY,
114
115     EWK_ERROR_NETWORK_STATUS_INTERNAL_SERVER_ERROR = 500,
116     EWK_ERROR_NETWORK_STATUS_NOT_IMPLEMENTED,
117     EWK_ERROR_NETWORK_STATUS_BAD_GATEWAY,
118     EWK_ERROR_NETWORK_STATUS_SERVICE_UNAVAILABLE,
119     EWK_ERROR_NETWORK_STATUS_GATEWAY_TIMEOUT,
120     EWK_ERROR_NETWORK_STATUS_HTTP_VERSION_NOT_SUPPORTED,
121     EWK_ERROR_NETWORK_STATUS_INSUFFICIENT_STORAGE = 507,
122     EWK_ERROR_NETWORK_STATUS_NOT_EXTENDED = 510
123 } Ewk_Error_Network_Status;
124
125 typedef enum {
126     EWK_ERROR_IO_CODE_FAILED,
127     EWK_ERROR_IO_CODE_NOT_FOUND,
128     EWK_ERROR_IO_CODE_EXISTS,
129     EWK_ERROR_IO_CODE_IS_DIRECTORY,
130     EWK_ERROR_IO_CODE_NOT_DIRECTORY,
131     EWK_ERROR_IO_CODE_NOT_EMPTY,
132     EWK_ERROR_IO_CODE_NOT_REGULAR_FILE,
133     EWK_ERROR_IO_CODE_NOT_SYMBOLIC_LINK,
134     EWK_ERROR_IO_CODE_NOT_MOUNTABLE_FILE,
135     EWK_ERROR_IO_CODE_FILENAME_TOO_LONG,
136     EWK_ERROR_IO_CODE_INVALID_FILENAME,
137     EWK_ERROR_IO_CODE_TOO_MANY_LINKS,
138     EWK_ERROR_IO_CODE_NO_SPACE,
139     EWK_ERROR_IO_CODE_INVALID_ARGUMENT,
140     EWK_ERROR_IO_CODE_PERMISSION_DENIED,
141     EWK_ERROR_IO_CODE_NOT_SUPPORTED,
142     EWK_ERROR_IO_CODE_NOT_MOUNTED,
143     EWK_ERROR_IO_CODE_ALREADY_MOUNTED,
144     EWK_ERROR_IO_CODE_CLOSED,
145     EWK_ERROR_IO_CODE_CANCELLED,
146     EWK_ERROR_IO_CODE_PENDING,
147     EWK_ERROR_IO_CODE_READ_ONLY,
148     EWK_ERROR_IO_CODE_CANT_CREATE_BACKUP,
149     EWK_ERROR_IO_CODE_WRONG_ETAG,
150     EWK_ERROR_IO_CODE_TIMED_OUT,
151     EWK_ERROR_IO_CODE_WOULD_RECURSE,
152     EWK_ERROR_IO_CODE_BUSY,
153     EWK_ERROR_IO_CODE_WOULD_BLOCK,
154     EWK_ERROR_IO_CODE_HOST_NOT_FOUND,
155     EWK_ERROR_IO_CODE_WOULD_MERGE,
156     EWK_ERROR_IO_CODE_FAILED_HANDLED,
157     EWK_ERROR_IO_CODE_TOO_MANY_OPEN_FILES,
158     EWK_ERROR_IO_CODE_NOT_INITIALIZED,
159     EWK_ERROR_IO_CODE_ADDRESS_IN_USE,
160     EWK_ERROR_IO_CODE_PARTIAL_INPUT,
161     EWK_ERROR_IO_CODE_INVALID_DATA,
162     EWK_ERROR_IO_CODE_DBUS_ERROR,
163     EWK_ERROR_IO_CODE_HOST_UNREACHABLE,
164     EWK_ERROR_IO_CODE_NETWORK_UNREACHABLE,
165     EWK_ERROR_IO_CODE_CONNECTION_REFUSED,
166     EWK_ERROR_IO_CODE_PROXY_FAILED,
167     EWK_ERROR_IO_CODE_PROXY_AUTH_FAILED,
168     EWK_ERROR_IO_CODE_PROXY_NEED_AUTH,
169     EWK_ERROR_IO_CODE_PROXY_NOT_ALLOWED
170 } Ewk_Error_Io_Code;
171
172 /**
173  * Query type for this error.
174  *
175  * @param error error object to query.
176  *
177  * @return the error type, that may be @c NULL. This pointer is
178  *         guaranteed to be eina_stringshare, so whenever possible
179  *         save yourself some cpu cycles and use
180  *         eina_stringshare_ref() instead of eina_stringshare_add() or
181  *         strdup().
182  */
183 EXPORT_API Ewk_Error_Type ewk_error_type_get(const Ewk_Error *error);
184
185 /**
186  * Returns domain from Ewk_Error.
187  *
188  * @param error Ewk_Error object received from "load,error" evas object smart callback
189  *
190  * @return @c domain string on success or empty string on failure
191  */
192 EXPORT_API const char* ewk_error_domain_get(const Ewk_Error* error);
193
194 #ifdef __cplusplus
195 }
196 #endif
197
198 #endif // ewk_error_internal_h