diff --git a/src/lib/ecore_con/Efl_Net.h b/src/lib/ecore_con/Efl_Net.h index be2147105f..7cab05efa3 100644 --- a/src/lib/ecore_con/Efl_Net.h +++ b/src/lib/ecore_con/Efl_Net.h @@ -81,6 +81,161 @@ EAPI int ecore_con_url_init(void); */ EAPI int ecore_con_url_shutdown(void); +#ifdef EFL_BETA_API_SUPPORT +/** HTTP error: bad content encoding */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_BAD_CONTENT_ENCODING; + +/** HTTP error: bad download resume */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_BAD_DOWNLOAD_RESUME; + +/** HTTP error: bad function argument */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_BAD_FUNCTION_ARGUMENT; + +/** HTTP error: chunk failed */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_CHUNK_FAILED; + +/** HTTP error: conv failed */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_CONV_FAILED; + +/** HTTP error: conv reqd */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_CONV_REQD; + +/** HTTP error: failed init */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_FAILED_INIT; + +/** HTTP error: could not read file */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_FILE_COULDNT_READ_FILE; + +/** HTTP error: filesize exceeded */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_FILESIZE_EXCEEDED; + +/** HTTP error: function not found */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_FUNCTION_NOT_FOUND; + +/** HTTP error: got nothing */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_GOT_NOTHING; + +/** HTTP error: http2 */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_HTTP2; + +/** HTTP error: http2 stream */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_HTTP2_STREAM; + +/** HTTP error: http post error */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_HTTP_POST_ERROR; + +/** HTTP error: http returned error */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_HTTP_RETURNED_ERROR; + +/** HTTP error: interface failed */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_INTERFACE_FAILED; + +/** HTTP error: login denied */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_LOGIN_DENIED; + +/** HTTP error: no connection available */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_NO_CONNECTION_AVAILABLE; + +/** HTTP error: not built in */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_NOT_BUILT_IN; + +/** HTTP error: operation timeout */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_OPERATION_TIMEDOUT; + +/** HTTP error: partial file */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_PARTIAL_FILE; + +/** HTTP error: peer failed verification */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_PEER_FAILED_VERIFICATION; + +/** HTTP error: range error */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_RANGE_ERROR; + +/** HTTP error: read error */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_READ_ERROR; + +/** HTTP error: receive error */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_RECV_ERROR; + +/** HTTP error: remote access denied */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_REMOTE_ACCESS_DENIED; + +/** HTTP error: remote disk full */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_REMOTE_DISK_FULL; + +/** HTTP error: remote file exists */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_REMOTE_FILE_EXISTS; + +/** HTTP error: remote file not found */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_REMOTE_FILE_NOT_FOUND; + +/** HTTP error: send error */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_SEND_ERROR; + +/** HTTP error: send fail rewind */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_SEND_FAIL_REWIND; + +/** HTTP error: SSL cacert */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_SSL_CACERT; + +/** HTTP error: SSL cacert bad file */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_SSL_CACERT_BADFILE; + +/** HTTP error: SSL certproblem */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_SSL_CERTPROBLEM; + +/** HTTP error: SSL cipher */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_SSL_CIPHER; + +/** HTTP error: SSL connect error */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_SSL_CONNECT_ERROR; + +/** HTTP error: SSL crl bad file */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_SSL_CRL_BADFILE; + +/** HTTP error: SSL engine init failed */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_SSL_ENGINE_INITFAILED; + +/** HTTP error: SSL engine not found */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_SSL_ENGINE_NOTFOUND; + +/** HTTP error: SSL engine set failed */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_SSL_ENGINE_SETFAILED; + +/** HTTP error: SSL invalid cert status */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_SSL_INVALIDCERTSTATUS; + +/** HTTP error: SSL issuer error */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_SSL_ISSUER_ERROR; + +/** HTTP error: SSL pinned pub key does not match */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_SSL_PINNEDPUBKEYNOTMATCH; + +/** HTTP error: SSL shutdown failed */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_SSL_SHUTDOWN_FAILED; + +/** HTTP error: too many redirects */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_TOO_MANY_REDIRECTS; + +/** HTTP error: unknown option */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_UNKNOWN_OPTION; + +/** HTTP error: unsupported protocol */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_UNSUPPORTED_PROTOCOL; + +/** HTTP error: upload failed */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_UPLOAD_FAILED; + +/** HTTP error: URL mal-formatted */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_URL_MALFORMAT; + +/** HTTP error: usage of SSL failed */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_USE_SSL_FAILED; + +/** HTTP error: write error */ +extern EWAPI Eina_Error EFL_NET_HTTP_ERROR_WRITE_ERROR; +#endif /* EFL_BETA_API_SUPPORT */ + #include "efl_net_types.eot.h" #include "efl_net_ip_address.eo.h" diff --git a/src/lib/ecore_con/ecore_con.c b/src/lib/ecore_con/ecore_con.c index 5cf7bc18cf..8a4e0fb43e 100644 --- a/src/lib/ecore_con/ecore_con.c +++ b/src/lib/ecore_con/ecore_con.c @@ -48,6 +48,8 @@ #include "Ecore_Con.h" #include "ecore_con_private.h" +#include "efl_net_types.eot.c" + #ifndef MSG_NOSIGNAL #define MSG_NOSIGNAL 0 /* noop */ #endif @@ -57,8 +59,6 @@ int sd_fd_index = 0; int sd_fd_max = 0; #endif -EWAPI Eina_Error EFL_NET_ERROR_COULDNT_RESOLVE_HOST = 0; - static int _ecore_con_init_count = 0; int _ecore_con_log_dom = -1; @@ -95,10 +95,10 @@ ecore_con_init(void) ecore_con_mempool_init(); ecore_con_legacy_init(); - EFL_NET_ERROR_COULDNT_RESOLVE_HOST = eina_error_msg_static_register("Couldn't resolve host name"); - /* initialize the .eo file errors once to guarantee thread safety */ + EFL_NET_ERROR_COULDNT_RESOLVE_HOST; + EFL_NET_DIALER_ERROR_COULDNT_CONNECT; EFL_NET_DIALER_ERROR_COULDNT_RESOLVE_PROXY; EFL_NET_DIALER_ERROR_PROXY_AUTHENTICATION_FAILED; diff --git a/src/lib/ecore_con/efl_net_http_types.eot b/src/lib/ecore_con/efl_net_http_types.eot index 01a4cff5d3..63784f86e9 100644 --- a/src/lib/ecore_con/efl_net_http_types.eot +++ b/src/lib/ecore_con/efl_net_http_types.eot @@ -126,54 +126,54 @@ struct @beta Efl.Net.Http.Header { value: string; [[Header value]] } -var @beta Efl.Net.Http.Error.BAD_CONTENT_ENCODING: Eina.Error; [[HTTP error: bad content encoding]] -var @beta Efl.Net.Http.Error.BAD_DOWNLOAD_RESUME: Eina.Error; [[HTTP error: bad download resume]] -var @beta Efl.Net.Http.Error.BAD_FUNCTION_ARGUMENT: Eina.Error; [[HTTP error: bad function argument]] -var @beta Efl.Net.Http.Error.CHUNK_FAILED: Eina.Error; [[HTTP error: chunk failed]] -var @beta Efl.Net.Http.Error.CONV_FAILED: Eina.Error; [[HTTP error: conv failed]] -var @beta Efl.Net.Http.Error.CONV_REQD: Eina.Error; [[HTTP error: conv reqd]] -var @beta Efl.Net.Http.Error.FAILED_INIT: Eina.Error; [[HTTP error: failed init]] -var @beta Efl.Net.Http.Error.FILE_COULDNT_READ_FILE: Eina.Error; [[HTTP error: could not read file]] -var @beta Efl.Net.Http.Error.FILESIZE_EXCEEDED: Eina.Error; [[HTTP error: filesize exceeded]] -var @beta Efl.Net.Http.Error.FUNCTION_NOT_FOUND: Eina.Error; [[HTTP error: function not found]] -var @beta Efl.Net.Http.Error.GOT_NOTHING: Eina.Error; [[HTTP error: got nothing]] -var @beta Efl.Net.Http.Error.HTTP2: Eina.Error; [[HTTP error: http2]] -var @beta Efl.Net.Http.Error.HTTP2_STREAM: Eina.Error; [[HTTP error: http2 stream]] -var @beta Efl.Net.Http.Error.HTTP_POST_ERROR: Eina.Error; [[HTTP error: http post error]] -var @beta Efl.Net.Http.Error.HTTP_RETURNED_ERROR: Eina.Error; [[HTTP error: http returned error]] -var @beta Efl.Net.Http.Error.INTERFACE_FAILED: Eina.Error; [[HTTP error: interface failed]] -var @beta Efl.Net.Http.Error.LOGIN_DENIED: Eina.Error; [[HTTP error: login denied]] -var @beta Efl.Net.Http.Error.NO_CONNECTION_AVAILABLE: Eina.Error; [[HTTP error: no connection available]] -var @beta Efl.Net.Http.Error.NOT_BUILT_IN: Eina.Error; [[HTTP error: not built in]] -var @beta Efl.Net.Http.Error.OPERATION_TIMEDOUT: Eina.Error; [[HTTP error: operation timeout]] -var @beta Efl.Net.Http.Error.PARTIAL_FILE: Eina.Error; [[HTTP error: partial file]] -var @beta Efl.Net.Http.Error.PEER_FAILED_VERIFICATION: Eina.Error; [[HTTP error: peer failed verification]] -var @beta Efl.Net.Http.Error.RANGE_ERROR: Eina.Error; [[HTTP error: range error]] -var @beta Efl.Net.Http.Error.READ_ERROR: Eina.Error; [[HTTP error: read error]] -var @beta Efl.Net.Http.Error.RECV_ERROR: Eina.Error; [[HTTP error: receive error]] -var @beta Efl.Net.Http.Error.REMOTE_ACCESS_DENIED: Eina.Error; [[HTTP error: remote access denied]] -var @beta Efl.Net.Http.Error.REMOTE_DISK_FULL: Eina.Error; [[HTTP error: remote disk full]] -var @beta Efl.Net.Http.Error.REMOTE_FILE_EXISTS: Eina.Error; [[HTTP error: remote file exists]] -var @beta Efl.Net.Http.Error.REMOTE_FILE_NOT_FOUND: Eina.Error; [[HTTP error: remote file not found]] -var @beta Efl.Net.Http.Error.SEND_ERROR: Eina.Error; [[HTTP error: send error]] -var @beta Efl.Net.Http.Error.SEND_FAIL_REWIND: Eina.Error; [[HTTP error: send fail rewind]] -var @beta Efl.Net.Http.Error.SSL_CACERT: Eina.Error; [[HTTP error: SSL cacert]] -var @beta Efl.Net.Http.Error.SSL_CACERT_BADFILE: Eina.Error; [[HTTP error: SSL cacert bad file]] -var @beta Efl.Net.Http.Error.SSL_CERTPROBLEM: Eina.Error; [[HTTP error: SSL certproblem]] -var @beta Efl.Net.Http.Error.SSL_CIPHER: Eina.Error; [[HTTP error: SSL cipher]] -var @beta Efl.Net.Http.Error.SSL_CONNECT_ERROR: Eina.Error; [[HTTP error: SSL connect error]] -var @beta Efl.Net.Http.Error.SSL_CRL_BADFILE: Eina.Error; [[HTTP error: SSL crl bad file]] -var @beta Efl.Net.Http.Error.SSL_ENGINE_INITFAILED: Eina.Error; [[HTTP error: SSL engine init failed]] -var @beta Efl.Net.Http.Error.SSL_ENGINE_NOTFOUND: Eina.Error; [[HTTP error: SSL engine not found]] -var @beta Efl.Net.Http.Error.SSL_ENGINE_SETFAILED: Eina.Error; [[HTTP error: SSL engine set failed]] -var @beta Efl.Net.Http.Error.SSL_INVALIDCERTSTATUS: Eina.Error; [[HTTP error: SSL invalid cert status]] -var @beta Efl.Net.Http.Error.SSL_ISSUER_ERROR: Eina.Error; [[HTTP error: SSL issuer error]] -var @beta Efl.Net.Http.Error.SSL_PINNEDPUBKEYNOTMATCH: Eina.Error; [[HTTP error: SSL pinned pub key does not match]] -var @beta Efl.Net.Http.Error.SSL_SHUTDOWN_FAILED: Eina.Error; [[HTTP error: SSL shutdown failed]] -var @beta Efl.Net.Http.Error.TOO_MANY_REDIRECTS: Eina.Error; [[HTTP error: too many redirects]] -var @beta Efl.Net.Http.Error.UNKNOWN_OPTION: Eina.Error; [[HTTP error: unknown option]] -var @beta Efl.Net.Http.Error.UNSUPPORTED_PROTOCOL: Eina.Error; [[HTTP error: unsupported protocol]] -var @beta Efl.Net.Http.Error.UPLOAD_FAILED: Eina.Error; [[HTTP error: upload failed]] -var @beta Efl.Net.Http.Error.URL_MALFORMAT: Eina.Error; [[HTTP error: URL mal-formatted]] -var @beta Efl.Net.Http.Error.USE_SSL_FAILED: Eina.Error; [[HTTP error: usage of SSL failed]] -var @beta Efl.Net.Http.Error.WRITE_ERROR: Eina.Error; [[HTTP error: write error]] +error @extern @beta Efl.Net.Http.Error.BAD_CONTENT_ENCODING = "XXX"; [[HTTP error: bad content encoding]] +error @extern @beta Efl.Net.Http.Error.BAD_DOWNLOAD_RESUME = "XXX"; [[HTTP error: bad download resume]] +error @extern @beta Efl.Net.Http.Error.BAD_FUNCTION_ARGUMENT = "XXX"; [[HTTP error: bad function argument]] +error @extern @beta Efl.Net.Http.Error.CHUNK_FAILED = "XXX"; [[HTTP error: chunk failed]] +error @extern @beta Efl.Net.Http.Error.CONV_FAILED = "XXX"; [[HTTP error: conv failed]] +error @extern @beta Efl.Net.Http.Error.CONV_REQD = "XXX"; [[HTTP error: conv reqd]] +error @extern @beta Efl.Net.Http.Error.FAILED_INIT = "XXX"; [[HTTP error: failed init]] +error @extern @beta Efl.Net.Http.Error.FILE_COULDNT_READ_FILE = "XXX"; [[HTTP error: could not read file]] +error @extern @beta Efl.Net.Http.Error.FILESIZE_EXCEEDED = "XXX"; [[HTTP error: filesize exceeded]] +error @extern @beta Efl.Net.Http.Error.FUNCTION_NOT_FOUND = "XXX"; [[HTTP error: function not found]] +error @extern @beta Efl.Net.Http.Error.GOT_NOTHING = "XXX"; [[HTTP error: got nothing]] +error @extern @beta Efl.Net.Http.Error.HTTP2 = "XXX"; [[HTTP error: http2]] +error @extern @beta Efl.Net.Http.Error.HTTP2_STREAM = "XXX"; [[HTTP error: http2 stream]] +error @extern @beta Efl.Net.Http.Error.HTTP_POST_ERROR = "XXX"; [[HTTP error: http post error]] +error @extern @beta Efl.Net.Http.Error.HTTP_RETURNED_ERROR = "XXX"; [[HTTP error: http returned error]] +error @extern @beta Efl.Net.Http.Error.INTERFACE_FAILED = "XXX"; [[HTTP error: interface failed]] +error @extern @beta Efl.Net.Http.Error.LOGIN_DENIED = "XXX"; [[HTTP error: login denied]] +error @extern @beta Efl.Net.Http.Error.NO_CONNECTION_AVAILABLE = "XXX"; [[HTTP error: no connection available]] +error @extern @beta Efl.Net.Http.Error.NOT_BUILT_IN = "XXX"; [[HTTP error: not built in]] +error @extern @beta Efl.Net.Http.Error.OPERATION_TIMEDOUT = "XXX"; [[HTTP error: operation timeout]] +error @extern @beta Efl.Net.Http.Error.PARTIAL_FILE = "XXX"; [[HTTP error: partial file]] +error @extern @beta Efl.Net.Http.Error.PEER_FAILED_VERIFICATION = "XXX"; [[HTTP error: peer failed verification]] +error @extern @beta Efl.Net.Http.Error.RANGE_ERROR = "XXX"; [[HTTP error: range error]] +error @extern @beta Efl.Net.Http.Error.READ_ERROR = "XXX"; [[HTTP error: read error]] +error @extern @beta Efl.Net.Http.Error.RECV_ERROR = "XXX"; [[HTTP error: receive error]] +error @extern @beta Efl.Net.Http.Error.REMOTE_ACCESS_DENIED = "XXX"; [[HTTP error: remote access denied]] +error @extern @beta Efl.Net.Http.Error.REMOTE_DISK_FULL = "XXX"; [[HTTP error: remote disk full]] +error @extern @beta Efl.Net.Http.Error.REMOTE_FILE_EXISTS = "XXX"; [[HTTP error: remote file exists]] +error @extern @beta Efl.Net.Http.Error.REMOTE_FILE_NOT_FOUND = "XXX"; [[HTTP error: remote file not found]] +error @extern @beta Efl.Net.Http.Error.SEND_ERROR = "XXX"; [[HTTP error: send error]] +error @extern @beta Efl.Net.Http.Error.SEND_FAIL_REWIND = "XXX"; [[HTTP error: send fail rewind]] +error @extern @beta Efl.Net.Http.Error.SSL_CACERT = "XXX"; [[HTTP error: SSL cacert]] +error @extern @beta Efl.Net.Http.Error.SSL_CACERT_BADFILE = "XXX"; [[HTTP error: SSL cacert bad file]] +error @extern @beta Efl.Net.Http.Error.SSL_CERTPROBLEM = "XXX"; [[HTTP error: SSL certproblem]] +error @extern @beta Efl.Net.Http.Error.SSL_CIPHER = "XXX"; [[HTTP error: SSL cipher]] +error @extern @beta Efl.Net.Http.Error.SSL_CONNECT_ERROR = "XXX"; [[HTTP error: SSL connect error]] +error @extern @beta Efl.Net.Http.Error.SSL_CRL_BADFILE = "XXX"; [[HTTP error: SSL crl bad file]] +error @extern @beta Efl.Net.Http.Error.SSL_ENGINE_INITFAILED = "XXX"; [[HTTP error: SSL engine init failed]] +error @extern @beta Efl.Net.Http.Error.SSL_ENGINE_NOTFOUND = "XXX"; [[HTTP error: SSL engine not found]] +error @extern @beta Efl.Net.Http.Error.SSL_ENGINE_SETFAILED = "XXX"; [[HTTP error: SSL engine set failed]] +error @extern @beta Efl.Net.Http.Error.SSL_INVALIDCERTSTATUS = "XXX"; [[HTTP error: SSL invalid cert status]] +error @extern @beta Efl.Net.Http.Error.SSL_ISSUER_ERROR = "XXX"; [[HTTP error: SSL issuer error]] +error @extern @beta Efl.Net.Http.Error.SSL_PINNEDPUBKEYNOTMATCH = "XXX"; [[HTTP error: SSL pinned pub key does not match]] +error @extern @beta Efl.Net.Http.Error.SSL_SHUTDOWN_FAILED = "XXX"; [[HTTP error: SSL shutdown failed]] +error @extern @beta Efl.Net.Http.Error.TOO_MANY_REDIRECTS = "XXX"; [[HTTP error: too many redirects]] +error @extern @beta Efl.Net.Http.Error.UNKNOWN_OPTION = "XXX"; [[HTTP error: unknown option]] +error @extern @beta Efl.Net.Http.Error.UNSUPPORTED_PROTOCOL = "XXX"; [[HTTP error: unsupported protocol]] +error @extern @beta Efl.Net.Http.Error.UPLOAD_FAILED = "XXX"; [[HTTP error: upload failed]] +error @extern @beta Efl.Net.Http.Error.URL_MALFORMAT = "XXX"; [[HTTP error: URL mal-formatted]] +error @extern @beta Efl.Net.Http.Error.USE_SSL_FAILED = "XXX"; [[HTTP error: usage of SSL failed]] +error @extern @beta Efl.Net.Http.Error.WRITE_ERROR = "XXX"; [[HTTP error: write error]] diff --git a/src/lib/ecore_con/efl_net_types.eot b/src/lib/ecore_con/efl_net_types.eot index 48512fb105..36d8bba1ec 100644 --- a/src/lib/ecore_con/efl_net_types.eot +++ b/src/lib/ecore_con/efl_net_types.eot @@ -1,3 +1,3 @@ import eina_types; -var @beta Efl.Net.Error.COULDNT_RESOLVE_HOST: Eina.Error; [[Could not resolve the given host name]] +error @beta Efl.Net.Error.COULDNT_RESOLVE_HOST = "Couldn't resolve host name"; [[Could not resolve the given host name]] diff --git a/src/lib/ecore_con/meson.build b/src/lib/ecore_con/meson.build index eacf16f720..fc53d3210f 100644 --- a/src/lib/ecore_con/meson.build +++ b/src/lib/ecore_con/meson.build @@ -89,8 +89,9 @@ foreach eo_file : pub_eo_types_files install_dir : dir_package_include, command : eolian_gen + [ '-I', meson.current_source_dir(), eolian_include_directories, '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'), + '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'), '-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.d'), - '-ghd', '@INPUT@']) + '-gchd', '@INPUT@']) endforeach eolian_include_directories += ['-I', meson.current_source_dir()] diff --git a/src/lib/efl/Efl.h b/src/lib/efl/Efl.h index db6e21b9c4..9f3b2ff518 100644 --- a/src/lib/efl/Efl.h +++ b/src/lib/efl/Efl.h @@ -76,6 +76,44 @@ typedef struct _Efl_Text_Annotate_Annotation Efl_Text_Annotate_Annotation; #include /* Data types */ + +#ifdef EFL_BETA_API_SUPPORT +/** No error on load */ +extern EWAPI Eina_Error EFL_GFX_IMAGE_LOAD_ERROR_NONE; + +/** A non-specific error occurred */ +extern EWAPI Eina_Error EFL_GFX_IMAGE_LOAD_ERROR_GENERIC; + +/** File (or file path) does not exist */ +extern EWAPI Eina_Error EFL_GFX_IMAGE_LOAD_ERROR_DOES_NOT_EXIST; + +/** Permission denied to an existing file (or path) */ +extern EWAPI Eina_Error EFL_GFX_IMAGE_LOAD_ERROR_PERMISSION_DENIED; + +/** Allocation of resources failure prevented load */ +extern EWAPI Eina_Error EFL_GFX_IMAGE_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED; + +/** File corrupt (but was detected as a known format) */ +extern EWAPI Eina_Error EFL_GFX_IMAGE_LOAD_ERROR_CORRUPT_FILE; + +/** File is not a known format */ +extern EWAPI Eina_Error EFL_GFX_IMAGE_LOAD_ERROR_UNKNOWN_FORMAT; + +/** Reading operation has been cancelled during decoding */ +extern EWAPI Eina_Error EFL_GFX_IMAGE_LOAD_ERROR_CANCELLED; + +/** (Edje only) The file pointed to is incompatible, i.e., it doesn't + * match the library's current version's format. */ +extern EWAPI Eina_Error EFL_GFX_IMAGE_LOAD_ERROR_INCOMPATIBLE_FILE; + +/** (Edje only) The group/collection set to load from was not found in the file */ +extern EWAPI Eina_Error EFL_GFX_IMAGE_LOAD_ERROR_UNKNOWN_COLLECTION; + +/** (Edje only) The group/collection set to load from had recursive references + * on its components */ +extern EWAPI Eina_Error EFL_GFX_IMAGE_LOAD_ERROR_RECURSIVE_REFERENCE; +#endif /* EFL_BETA_API_SUPPORT */ + #include "interfaces/efl_gfx_types.eot.h" #include "interfaces/efl_ui_types.eot.h" typedef Efl_Gfx_Path_Command_Type Efl_Gfx_Path_Command; diff --git a/src/lib/efl/interfaces/efl_gfx_types.eot b/src/lib/efl/interfaces/efl_gfx_types.eot index e0ec30a3ac..2e14ae9732 100644 --- a/src/lib/efl/interfaces/efl_gfx_types.eot +++ b/src/lib/efl/interfaces/efl_gfx_types.eot @@ -205,14 +205,14 @@ enum @beta Efl.Gfx.Color_Class_Layer { type @beta Efl.Font.Size: int; [[Efl font size type]] -var @beta Efl.Gfx.Image.Load_Error.NONE: Eina.Error; [[No error on load]] -var @beta Efl.Gfx.Image.Load_Error.GENERIC: Eina.Error; [[A non-specific error occurred]] -var @beta Efl.Gfx.Image.Load_Error.DOES_NOT_EXIST: Eina.Error; [[File (or file path) does not exist]] -var @beta Efl.Gfx.Image.Load_Error.PERMISSION_DENIED: Eina.Error; [[Permission denied to an existing file (or path)]] -var @beta Efl.Gfx.Image.Load_Error.RESOURCE_ALLOCATION_FAILED: Eina.Error; [[Allocation of resources failure prevented load]] -var @beta Efl.Gfx.Image.Load_Error.CORRUPT_FILE: Eina.Error; [[File corrupt (but was detected as a known format)]] -var @beta Efl.Gfx.Image.Load_Error.UNKNOWN_FORMAT: Eina.Error; [[File is not a known format]] -var @beta Efl.Gfx.Image.Load_Error.CANCELLED: Eina.Error; [[Reading operation has been cancelled during decoding]] -var @beta Efl.Gfx.Image.Load_Error.INCOMPATIBLE_FILE: Eina.Error; [[(Edje only) The file pointed to is incompatible, i.e., it doesn't match the library's current version's format.]] -var @beta Efl.Gfx.Image.Load_Error.UNKNOWN_COLLECTION: Eina.Error; [[(Edje only) The group/collection set to load from was not found in the file]] -var @beta Efl.Gfx.Image.Load_Error.RECURSIVE_REFERENCE: Eina.Error; [[(Edje only) The group/collection set to load from had recursive references on its components]] +error @extern @beta Efl.Gfx.Image.Load_Error.NONE = "XXX"; [[No error on load]] +error @extern @beta Efl.Gfx.Image.Load_Error.GENERIC = "XXX"; [[A non-specific error occurred]] +error @extern @beta Efl.Gfx.Image.Load_Error.DOES_NOT_EXIST = "XXX"; [[File (or file path) does not exist]] +error @extern @beta Efl.Gfx.Image.Load_Error.PERMISSION_DENIED = "XXX"; [[Permission denied to an existing file (or path)]] +error @extern @beta Efl.Gfx.Image.Load_Error.RESOURCE_ALLOCATION_FAILED = "XXX"; [[Allocation of resources failure prevented load]] +error @extern @beta Efl.Gfx.Image.Load_Error.CORRUPT_FILE = "XXX"; [[File corrupt (but was detected as a known format)]] +error @extern @beta Efl.Gfx.Image.Load_Error.UNKNOWN_FORMAT = "XXX"; [[File is not a known format]] +error @extern @beta Efl.Gfx.Image.Load_Error.CANCELLED = "XXX"; [[Reading operation has been cancelled during decoding]] +error @extern @beta Efl.Gfx.Image.Load_Error.INCOMPATIBLE_FILE = "XXX"; [[(Edje only) The file pointed to is incompatible, i.e., it doesn't match the library's current version's format.]] +error @extern @beta Efl.Gfx.Image.Load_Error.UNKNOWN_COLLECTION = "XXX"; [[(Edje only) The group/collection set to load from was not found in the file]] +error @extern @beta Efl.Gfx.Image.Load_Error.RECURSIVE_REFERENCE = "XXX"; [[(Edje only) The group/collection set to load from had recursive references on its components]] diff --git a/src/lib/elementary/Efl_Ui.h b/src/lib/elementary/Efl_Ui.h index e5b5b6b00b..a4285ef04f 100644 --- a/src/lib/elementary/Efl_Ui.h +++ b/src/lib/elementary/Efl_Ui.h @@ -137,6 +137,9 @@ extern "C" { extern EAPI double _efl_startup_time; +/** Successfully applied the requested style from the current theme. */ +extern EAPI Eina_Error EFL_UI_THEME_APPLY_ERROR_NONE; + // EO types. Defined for legacy-only builds as legacy uses typedef of EO types. #include "efl_ui.eot.h" #include "efl_ui_selection_types.eot.h" diff --git a/src/lib/elementary/efl_ui.eot b/src/lib/elementary/efl_ui.eot index f0b5e6ce44..4e665113f6 100644 --- a/src/lib/elementary/efl_ui.eot +++ b/src/lib/elementary/efl_ui.eot @@ -1,11 +1,16 @@ /* Efl.Ui enum and struct types */ import eina_types; -var Efl.Ui.Theme.Apply_Error.NONE: Eina.Error; [[Successfully applied the requested style from the current theme.]] -var Efl.Ui.Theme.Apply_Error.DEFAULT: Eina.Error; [[Successfully applied the default style. The widget may - look different from the rest of the UI if a custom theme - is in use, but it should be usable.]] -var Efl.Ui.Theme.Apply_Error.GENERIC: Eina.Error; [[Failed to apply theme. The widget may become unusable.]] +/* FIXME: find a better way to express this */ +error @extern Efl.Ui.Theme.Apply_Error.NONE = "Succcess"; [[Successfully applied the requested style from the current theme.]] + +error Efl.Ui.Theme.Apply_Error.DEFAULT = "Fallback to default style was enabled for this widget"; [[ + Successfully applied the default style. The widget may look different from + the rest of the UI if a custom theme is in use, but it should be usable. +]] +error Efl.Ui.Theme.Apply_Error.GENERIC = "An error occurred and no theme could be set for this widget"; [[ + Failed to apply theme. The widget may become unusable. +]] enum Efl.Ui.Focus.Direction { diff --git a/src/lib/elementary/elm_main.c b/src/lib/elementary/elm_main.c index dfc81efbba..0d781a94be 100644 --- a/src/lib/elementary/elm_main.c +++ b/src/lib/elementary/elm_main.c @@ -405,16 +405,14 @@ _sys_lang_changed(void *data EINA_UNUSED, int type EINA_UNUSED, void *event EINA } EAPI Eina_Error EFL_UI_THEME_APPLY_ERROR_NONE = 0; -EAPI Eina_Error EFL_UI_THEME_APPLY_ERROR_DEFAULT = 0; -EAPI Eina_Error EFL_UI_THEME_APPLY_ERROR_GENERIC = 0; static void _efl_ui_theme_apply_error_init(void) { if (EFL_UI_THEME_APPLY_ERROR_DEFAULT) return; /* NONE should always be 0 */ - EFL_UI_THEME_APPLY_ERROR_DEFAULT = eina_error_msg_static_register("Fallback to default style was enabled for this widget"); - EFL_UI_THEME_APPLY_ERROR_GENERIC = eina_error_msg_static_register("An error occurred and no theme could be set for this widget"); + EFL_UI_THEME_APPLY_ERROR_DEFAULT; + EFL_UI_THEME_APPLY_ERROR_GENERIC; } // This is necessary to keep backward compatibility diff --git a/src/lib/elementary/elm_widget.h b/src/lib/elementary/elm_widget.h index 7afc2d218b..ab8ea9a215 100644 --- a/src/lib/elementary/elm_widget.h +++ b/src/lib/elementary/elm_widget.h @@ -300,6 +300,9 @@ #include "elm_object_item.h" #include "efl_ui.eot.h" typedef Eo Efl_Ui_Focus_Manager; + +extern EAPI Eina_Error EFL_UI_THEME_APPLY_ERROR_NONE; + #define _EFL_UI_FOCUS_MANAGER_EO_CLASS_TYPE #include "efl_ui_focus_object.eo.h" #include "efl_ui_focus_manager.eo.h" diff --git a/src/lib/eolian/database_var.c b/src/lib/eolian/database_var.c index 4007091848..5029e52068 100644 --- a/src/lib/eolian/database_var.c +++ b/src/lib/eolian/database_var.c @@ -33,6 +33,7 @@ database_var_constant_add(Eolian_Unit *unit, Eolian_Variable *var) EOLIAN_OBJECT_ADD(unit, var->base.name, var, constants); eina_hash_set(unit->state->staging.constants_f, var->base.file, eina_list_append ((Eina_List*)eina_hash_find(unit->state->staging.constants_f, var->base.file), var)); + database_object_add(unit, &var->base); } void