As i said on irc, its copied over from rasters efl_vpath implementations. Maybe he can answer on why there are aborts.

As far as i remember, the reasoning was that a error message does not make much sense here, since those errors are critical, and cannot be recovered from in a sane manner, so every runtime after that will NOT be stable.

Further more, the aborts are in a call that is called in the beginning, at startup, so you will not get a random abort somewhere in the runtime, rather your app will not come up :)

Greetings,
   bu5hm4n

On 02/22/2018 10:53 AM, Vincent Torri wrote:
maybe it's just me but i really dislike an abort() in eina (and
generally in any library)
if there is an error, it should fail nicely

vincent

On Thu, Feb 22, 2018 at 10:40 AM, Marcel Hollerbach <m...@bu5hm4n.de> wrote:
Hello,

i sadly discovered on a system that autotools does not understand that there
is a new eina header.
You might run into issues where eina_vpath.h is not installed correctly on
your system, to fix this just run ./configure again, then it will work.

Greetings,
    bu5hm4n


On 02/22/2018 09:35 AM, Marcel Hollerbach wrote:

bu5hm4n pushed a commit to branch master.


http://git.enlightenment.org/core/efl.git/commit/?id=8c7ba8c3a31ec671ccd6d7d30682dbd631d69a62

commit 8c7ba8c3a31ec671ccd6d7d30682dbd631d69a62
Author: Marcel Hollerbach <mar...@osg.samsung.com>
Date:   Sun Feb 18 21:58:57 2018 +0100

      lets delete efl_vpath
           Its not used anymore.
           ref T5314
---
   src/Makefile_Efl.am                           |   9 -
   src/lib/efl/Efl.h                             |   6 -
   src/lib/efl/interfaces/efl_interfaces_main.c  |   2 -
   src/lib/efl/interfaces/efl_vpath.eo           |  31 --
   src/lib/efl/interfaces/efl_vpath_core.c       | 436
--------------------------
   src/lib/efl/interfaces/efl_vpath_core.eo      |  33 --
   src/lib/efl/interfaces/efl_vpath_file.c       |  74 -----
   src/lib/efl/interfaces/efl_vpath_file.eo      |  55 ----
   src/lib/efl/interfaces/efl_vpath_file_core.c  |  66 ----
   src/lib/efl/interfaces/efl_vpath_file_core.eo |  14 -
   src/lib/efl/interfaces/efl_vpath_manager.c    |  88 ------
   src/lib/efl/interfaces/efl_vpath_manager.eo   |  30 --
   12 files changed, 844 deletions(-)

diff --git a/src/Makefile_Efl.am b/src/Makefile_Efl.am
index 01b98ddfde..f98f554362 100644
--- a/src/Makefile_Efl.am
+++ b/src/Makefile_Efl.am
@@ -54,11 +54,6 @@ efl_eolian_files = \
         lib/efl/interfaces/efl_pack_layout.eo \
         lib/efl/interfaces/efl_pack_linear.eo \
         lib/efl/interfaces/efl_pack_table.eo \
-      lib/efl/interfaces/efl_vpath.eo \
-      lib/efl/interfaces/efl_vpath_manager.eo \
-      lib/efl/interfaces/efl_vpath_file.eo \
-      lib/efl/interfaces/efl_vpath_core.eo \
-      lib/efl/interfaces/efl_vpath_file_core.eo \
         lib/efl/interfaces/efl_ui_base.eo \
         lib/efl/interfaces/efl_ui_direction.eo \
         lib/efl/interfaces/efl_ui_drag.eo \
@@ -122,10 +117,6 @@ lib/efl/interfaces/efl_interfaces_main.c \
   lib/efl/interfaces/efl_model_common.c \
   lib/efl/interfaces/efl_gfx_path.c \
   lib/efl/interfaces/efl_gfx_shape.c \
-lib/efl/interfaces/efl_vpath_file.c \
-lib/efl/interfaces/efl_vpath_manager.c \
-lib/efl/interfaces/efl_vpath_core.c \
-lib/efl/interfaces/efl_vpath_file_core.c \
   lib/efl/interfaces/efl_input_device.c \
   lib/efl/interfaces/efl_io_closer.c \
   lib/efl/interfaces/efl_io_positioner.c \
diff --git a/src/lib/efl/Efl.h b/src/lib/efl/Efl.h
index ed7405ced8..2399c9c30b 100644
--- a/src/lib/efl/Efl.h
+++ b/src/lib/efl/Efl.h
@@ -62,12 +62,6 @@ typedef struct _Efl_Text_Annotate_Annotation
Efl_Text_Annotate_Annotation;
     #include <Efl_Model_Common.h>
   -#include "interfaces/efl_vpath_file.eo.h"
-#include "interfaces/efl_vpath.eo.h"
-#include "interfaces/efl_vpath_core.eo.h"
-#include "interfaces/efl_vpath_manager.eo.h"
-#include "interfaces/efl_vpath_file_core.eo.h"
-
   /* Data types */
   #include "interfaces/efl_gfx_types.eot.h"
   #include "interfaces/efl_ui_types.eot.h"
diff --git a/src/lib/efl/interfaces/efl_interfaces_main.c
b/src/lib/efl/interfaces/efl_interfaces_main.c
index d9b87634a6..cb1738e52b 100644
--- a/src/lib/efl/interfaces/efl_interfaces_main.c
+++ b/src/lib/efl/interfaces/efl_interfaces_main.c
@@ -46,8 +46,6 @@
   #include "interfaces/efl_canvas.eo.c"
   #include "interfaces/efl_canvas_pointer.eo.c"
   -#include "interfaces/efl_vpath.eo.c"
-
   #include "interfaces/efl_screen.eo.c"
     /* Packing & containers */
diff --git a/src/lib/efl/interfaces/efl_vpath.eo
b/src/lib/efl/interfaces/efl_vpath.eo
deleted file mode 100644
index ca97f1b090..0000000000
--- a/src/lib/efl/interfaces/efl_vpath.eo
+++ /dev/null
@@ -1,31 +0,0 @@
-interface Efl.Vpath
-{
-   [[ VPath is the EFL "Virtual Path" system that maps paths and
downloads
-
-     You can provide virtual paths common in unix shells like:
-       "~/file.jpg"
-       "~username/file.png"
-     And also other extended paths like:
-       "(:cache:)/file.png"
-       "(:videos:)/file.mp4"
-       ...
-     And in future:
-       "file:///blah.jpg"
-       "http://blah.com/file.jpg";
-       "https://blahblah.com/file.jpg";
-       "ssh://blahblah.com:~/file.jpg"
-       ...
-
-     @since 1.18
-   ]]
-   eo_prefix: efl_vpath;
-   methods {
-      fetch {
-         [[ Fetch a new Vpath File object from the Vpath system ]]
-         params {
-            path: string; [[ The input virtual file path to fetch ]]
-         }
-         return: Efl.Vpath.File @owned; [[ An object representing the
file ]]
-      }
-   }
-}
diff --git a/src/lib/efl/interfaces/efl_vpath_core.c
b/src/lib/efl/interfaces/efl_vpath_core.c
deleted file mode 100644
index d6b136374d..0000000000
--- a/src/lib/efl/interfaces/efl_vpath_core.c
+++ /dev/null
@@ -1,436 +0,0 @@
-#include "config.h"
-#include "Efl.h"
-
-#ifdef HAVE_GETPWENT
-# include <sys/types.h>
-# include <pwd.h>
-#endif
-
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <fcntl.h>
-#include <sys/stat.h>
-#include <unistd.h>
-
-#define MY_CLASS EFL_VPATH_CORE_CLASS
-
-typedef struct _Efl_Vpath_Core_Data Efl_Vpath_Core_Data;
-
-struct _Efl_Vpath_Core_Data
-{
-   Eina_Spinlock lock;
-   Eina_Hash *meta;
-};
-
-static Efl_Vpath_Core *vpath_core = NULL;
-
-EOLIAN static Efl_Object *
-_efl_vpath_core_efl_object_constructor(Eo *obj, Efl_Vpath_Core_Data *pd)
-{
-   char buf[PATH_MAX], bufhome[PATH_MAX];
-   const char *home, *s;
-
-   if (vpath_core) return NULL;
-   obj = efl_constructor(efl_super(obj, MY_CLASS));
-   pd->meta = eina_hash_string_superfast_new
-     ((Eina_Free_Cb)eina_stringshare_del);
-   eina_spinlock_new(&(pd->lock));
-
-   vpath_core = obj;
-
-   // $HOME / ~/ etc.
-   home = eina_environment_home_get();
-   if (!home)
-     {
-        /* Windows does not have getuid(), but home can't be NULL */
-#ifdef HAVE_GETEUID
-        uid_t uid = geteuid();
-        struct stat st;
-
-        snprintf(bufhome, sizeof(bufhome), "/tmp/%i", (int)uid);
-        if (mkdir(bufhome,  S_IRUSR | S_IWUSR | S_IXUSR) < 0)
-          {
-             if (errno != EEXIST)
-               {
-                  if (stat("/tmp", &st) == 0) home = "/tmp";
-                  else home = "/";
-               }
-          }
-        if (stat(bufhome, &st) == 0) home = bufhome;
-        else
-          {
-             if (stat("/tmp", &st) == 0) home = "/tmp";
-             else home = "/";
-          }
-#else
-        home = "/";
-#endif
-     }
-   efl_vpath_core_meta_set(obj, "home", home);
-   // tmp dir - system wide
-   s = eina_environment_tmp_get();
-   efl_vpath_core_meta_set(obj, "tmp", s);
-
-# if defined(HAVE_GETUID) && defined(HAVE_GETEUID)
-#  define ENV_HOME_SET(_env, _dir, _meta) \
-   if ((getuid() != geteuid()) || (!(s = getenv(_env)))) { \
-      snprintf(buf, sizeof(buf), "%s/"_dir, home); s = buf; \
-   } efl_vpath_core_meta_set(obj, _meta, s);
-#else
-#  define ENV_HOME_SET(_env, _dir, _meta) \
-   if (!(s = getenv(_env))) { \
-      snprintf(buf, sizeof(buf), "%s/"_dir, home); s = buf; \
-   } efl_vpath_core_meta_set(obj, _meta, s);
-#endif
-   // $XDG_DATA_HOME defines the base directory relative to which user
-   //   specific data files should be stored. If $XDG_DATA_HOME is either
-   //   not set or empty, a default equal to $HOME/.local/share should be
-   //   used.
-   ENV_HOME_SET("XDG_DATA_HOME", ".local/share", "data");
-   // $XDG_CONFIG_HOME defines the base directory relative to which user
-   //   specific configuration files should be stored. If
$XDG_CONFIG_HOME
-   //   is either not set or empty, a default equal to $HOME/.config
should
-   //   be used.
-   ENV_HOME_SET("XDG_CONFIG_HOME", ".config", "config");
-   // $XDG_CACHE_HOME defines the base directory relative to which
-   //   user specific non-essential data files should be stored. If
-   //   $XDG_CACHE_HOME is either not set or empty, a default equal to
-   //   $HOME/.cache should be used.
-   ENV_HOME_SET("XDG_CACHE_HOME", ".cache", "cache");
-   // $XDG_RUNTIME_DIR defines the base directory relative to which
-   //   user-specific non-essential runtime files and other file objects
-   //   (such as sockets, named pipes, ...) should be stored. The
-   //   directory MUST be owned by the user, and he MUST be the only one
-   //   having read and write access to it. Its Unix access mode MUST
-   //   be 0700.
-#if defined(HAVE_GETUID) && defined(HAVE_GETEUID)
-   if ((getuid() != geteuid()) || (!(s = getenv("XDG_RUNTIME_DIR"))))
-#else
-   if (!(s = getenv("XDG_RUNTIME_DIR")))
-#endif
-     {
-        struct stat st;
-        uid_t uid;
-
-#if defined(HAVE_GETUID) && defined(HAVE_GETEUID)
-        uid = getuid();
-        if (setuid(geteuid()) != 0)
-           {
-              fprintf(stderr,
-                      "FATAL: Cannot setuid - errno=%i\n",
-                      errno);
-              abort();
-           }
-#endif
-        // fallback - make ~/.run
-        snprintf(buf, sizeof(buf), "%s/.run", home);
-        if (mkdir(buf,  S_IRUSR | S_IWUSR | S_IXUSR) == 0) s = buf;
-        else
-          {
-             if (errno == EEXIST)
-               {
-                  if (stat(buf, &st) == 0)
-                    {
-                       // some sanity checks - but not for security
-                       if (!(st.st_mode & S_IFDIR))
-                         {
-                            // fatal - exists but is not a dir
-                            fprintf(stderr,
-                                    "FATAL: run dir '%s' exists but not a
dir\n",
-                                    buf);
-                            abort();
-                         }
-#if defined(HAVE_GETUID) && defined(HAVE_GETEUID)
-                       if (st.st_uid != geteuid())
-                         {
-                            // fatal - run dir doesn't belong to user
-                            fprintf(stderr,
-                                    "FATAL: run dir '%s' not owned by uid
%i\n",
-                                    buf, (int)geteuid());
-                            abort();
-                         }
-#endif
-                       // we're ok
-                       s = buf;
-                    }
-                  else
-                    {
-                       // fatal - we cant create our run dir in ~/
-                       fprintf(stderr,
-                               "FATAL: Cannot verify run dir '%s'
errno=%i\n",
-                               buf, errno);
-                       abort();
-                    }
-               }
-             else
-               {
-                  // fatal - we cant create our run dir in ~/
-                  fprintf(stderr,
-                          "FATAL: Cannot create run dir '%s' -
errno=%i\n",
-                          buf, errno);
-                  abort();
-               }
-          }
-#if defined(HAVE_GETUID) && defined(HAVE_GETEUID)
-        if (setreuid(uid, geteuid()) != 0)
-           {
-              fprintf(stderr,
-                      "FATAL: Cannot setreuid - errno=%i\n",
-                      errno);
-              abort();
-           };
-#endif
-     }
-   if (!s) s = (char *)efl_vpath_core_meta_get(obj, "tmp");
-   efl_vpath_core_meta_set(obj, "run", s);
-   // https://www.freedesktop.org/wiki/Software/xdg-user-dirs/
-   // https://wiki.archlinux.org/index.php/Xdg_user_directories
-   // ^^^^ we don't handle:
-   //   /etc/xdg/user-dirs.conf
-   //   /etc/xdg/user-dirs.defaults
-   //   (:config:)/user-dirs.conf
-   //   (:config:)/user-dirs.defaults
-
-   // $XDG_DESKTOP_DIR="$HOME/Desktop"
-   ENV_HOME_SET("XDG_DESKTOP_DIR", "Desktop", "desktop");
-   // $XDG_DOCUMENTS_DIR="$HOME/Documents"
-   ENV_HOME_SET("XDG_DOCUMENTS_DIR", "Documents", "documents");
-   // $XDG_DOWNLOAD_DIR="$HOME/Downloads"
-   ENV_HOME_SET("XDG_DOWNLOAD_DIR", "Downloads", "downloads");
-   // $XDG_MUSIC_DIR="$HOME/Music"
-   ENV_HOME_SET("XDG_MUSIC_DIR", "Music", "music");
-   // $XDG_PICTURES_DIR="$HOME/Pictures"
-   ENV_HOME_SET("XDG_PICTURES_DIR", "Pictures", "pictures");
-   // $XDG_PUBLICSHARE_DIR="$HOME/Public"
-   ENV_HOME_SET("XDG_PUBLIC_DIR", "Public", "public");
-   // $XDG_TEMPLATES_DIR="$HOME/.Templates"
-   ENV_HOME_SET("XDG_TEMPLATES_DIR", ".Templates", "templates");
-   // $XDG_VIDEOS_DIR="$HOME/Videos"
-   ENV_HOME_SET("XDG_VIDEOS_DIR", "Videos", "videos");
-
-   // Add ~/Applications for user-installed apps
-   ENV_HOME_SET("E_APPS_DIR", "Applications", "apps");
-
-   // XXX: do the below ... later
-   //
-   // FHS FOR APP:
-   // app.dir    = PREFIX
-   // app.bin    = PREFIX/bin
-   // app.lib    = PREFIX/lib
-   // app.data   = PREFIX/share/APPNAME
-   // app.locale = PREFIX/share/locale
-   //
-   // XXX: figure out how to merge these with XDG/FHS?
-   // Tizen:
-   // App Dir Structure:
-   // bin           Executable binary pathOwner: Read
-   // lib            Library pathOwner: Read
-   // data           Used to store private data of an application.
-   // res            Used to read resource files that are delivered with
the application package.
-   // shared         Parent directory of the data, res, and trusted
sub-directories. Files in this directory cannot be delivered with the
application package.Owner: Read
-   // shared/data    Used to share data with other applications.
-   // shared/res     Used to share resources with other applications. The
resource files are delivered with the application package.
-   // shared/trusted Used to share data with family of trusted
applications. The family applications signed with the same certificate can
access data in the shared/trusted directory.
-   //
-   // XXX: figure out how to merge these with XDG?
-   // Media/...vvv
-   // Images           Used for Image data.Read and Write
-   // Sounds           Used for Sound data.
-   // Videos           Used for Video data.
-   // Cameras          Used for Camera pictures.
-   // Downloads        Used for Downloaded data.
-   // Music            Used for Music data.
-   // Documents        Used for Documents.
-   // Others           Used for other types.
-   // System Ringtones Used for System default ringtones.Read
-   //
-   // $TZ_SYS_HOME=/home
-   // $TZ_SYS_DB=/var/db
-   // $TZ_SYS_CONFIG=/var/kdb
-   // $TZ_SYS_CONFIG_VOLATILE=/run/kdb
-   // $TZ_SYS_APP=/usr/apps
-   // $TZ_SYS_DESKTOP_APP=/usr/share/applications
-   //
-   // $TS_USER_DB=<user_homeid>/.tizen/db
-   // $TZ_USER_CONFIG=<user_home_dir>/.tizen/kdb
-   // $TZ_USER_APP=<user_home_dir>/.tizen/apps
-   // $TZ_USER_DESKTOP_APP=<user_home_dir>/.tizen/desktop
-   // $TZ_USER_DOCUMENTS=<user_home_dir>/Documents
-   // $TZ_USER_PICTURES=<user_home_dir>/Pictures
-   // $TZ_USER_VIDEOS=<user_home_dir>/Videos
-   // $TZ_USER_MUSIC=<user_home_dir>/Music
-   // $TZ_USER_DOWNLOADS=<user_home_dir>/Downloads
-   // $TZ_USER_PUBLIC=<user_home_dir>/Public
-   return obj;
-}
-
-EOLIAN static void
-_efl_vpath_core_efl_object_destructor(Eo *obj, Efl_Vpath_Core_Data *pd)
-{
-   eina_hash_free(pd->meta);
-   pd->meta = NULL;
-   eina_spinlock_free(&(pd->lock));
-   if (vpath_core == obj) vpath_core = NULL;
-   efl_destructor(efl_super(obj, MY_CLASS));
-}
-
-EOLIAN static Efl_Vpath_Core *
-_efl_vpath_core_core_get(Eo *obj EINA_UNUSED, void *pd EINA_UNUSED)
-{
-   // no locks here as we expect efl to init this early in main "thread"
-   if (!vpath_core) vpath_core = efl_add(EFL_VPATH_CORE_CLASS, NULL);
-   return vpath_core;
-}
-
-EOLIAN static const char *
-_efl_vpath_core_meta_get(Eo *obj EINA_UNUSED, Efl_Vpath_Core_Data *pd,
const char *key)
-{
-   const char *meta;
-
-   if (!key) return NULL;
-   eina_spinlock_take(&(pd->lock));
-   meta = eina_hash_find(pd->meta, key);
-   eina_spinlock_release(&(pd->lock));
-   return meta;
-}
-
-EOLIAN static void
-_efl_vpath_core_meta_set(Eo *obj EINA_UNUSED, Efl_Vpath_Core_Data *pd,
const char *key, const char *path)
-{
-   if (!key) return;
-   eina_spinlock_take(&(pd->lock));
-   if (path) eina_hash_add(pd->meta, key, eina_stringshare_add(path));
-   else eina_hash_del(pd->meta, key, NULL);
-   eina_spinlock_release(&(pd->lock));
-}
-
-EOLIAN static Efl_Vpath_File *
-_efl_vpath_core_efl_vpath_fetch(Eo *obj, Efl_Vpath_Core_Data *pd
EINA_UNUSED, const char *path)
-{
-   Efl_Vpath_File_Core *file;
-
-   file = efl_add(EFL_VPATH_FILE_CORE_CLASS, obj);
-   efl_vpath_file_path_set(file, path);
-   // XXX: implement parse of path then look up in hash if not just
create
-   // object where path and result are the same and return that with
-   // path set and result set to resolved path - return obj handler calls
-   // "do" on object to get the result inside fetched or failed callback.
-   // if it's a url then we need a new classs that overrides the do and
-   // begins a fetch and on finish calls the event cb or when wait is
called
-   if (path)
-     {
-        /* FIXME: not working for WIndows */
-        // /* <- full path
-        if (path[0] == '/')
-          {
-             efl_vpath_file_result_set(file, path);
-             return file;
-          }
-        // .*
-        if (path[0] == '.')
-          {
-             // .[/]* <- current dir relative
-             if ((path[1] == '/') || (path[1] == 0))
-               {
-                  efl_vpath_file_result_set(file, path);
-                  return file;
-               }
-             // ..[/]* <- parent dir relative
-             if ((path[1] == '.') && ((path[2] == '/') || (path[2] ==
0)))
-               {
-                  efl_vpath_file_result_set(file, path);
-                  return file;
-               }
-          }
-        // ~* ...
-        if (path[0] == '~')
-          {
-             // ~/ <- home directory
-             if (path[1] == '/')
-               {
-                  char buf[PATH_MAX];
-                  const char *home = efl_vpath_core_meta_get(obj,
"home");
-
-                  if (home)
-                    {
-                       snprintf(buf, sizeof(buf), "%s%s", home, path +
1);
-                       efl_vpath_file_result_set(file, buf);
-                       return file;
-                    }
-               }
-#ifdef HAVE_GETPWENT
-             // ~username/ <- homedir of user "username"
-             else
-               {
-                  const char *p;
-                  struct passwd pwent, *pwent2 = NULL;
-                  char *name, buf[PATH_MAX], pwbuf[8129];
-
-                  for (p = path + 1; *p; p++)
-                    {
-                       if (*p =='/') break;
-                    }
-                  name = alloca(p - path);
-                  strncpy(name, path + 1, p - path - 1);
-                  name[p - path - 1] = 0;
-                  if (!getpwnam_r(name, &pwent, pwbuf, sizeof(pwbuf),
&pwent2))
-                    {
-                       if ((pwent2) && (pwent.pw_dir))
-                         {
-                            snprintf(buf, sizeof(buf), "%s%s",
pwent.pw_dir, p);
-                            efl_vpath_file_result_set(file, buf);
-                            return file;
-                         }
-                    }
-                }
-#endif /* HAVE_GETPWENT */
-          }
-        // (:xxx:)/* ... <- meta hash table
-        if ((path[0] == '(') && (path[1] == ':'))
-          {
-             const char *p, *meta;
-             char *name, buf[PATH_MAX];
-             Eina_Bool found = EINA_FALSE;
-
-             for (p = path + 2; *p; p++)
-               {
-                  if ((p[0] ==':') && (p[1] == ')') && (p[2] == '/'))
-                    {
-                       found = EINA_TRUE;
-                       break;
-                    }
-               }
-             if (found)
-               {
-                  name = alloca(p - path);
-                  strncpy(name, path + 2, p - path - 2);
-                  name[p - path - 2] = 0;
-                  eina_spinlock_take(&(pd->lock));
-                  meta = eina_hash_find(pd->meta, name);
-                  eina_spinlock_release(&(pd->lock));
-                  if (meta)
-                    {
-                       snprintf(buf, sizeof(buf), "%s%s", meta, p + 2);
-                       efl_vpath_file_result_set(file, buf);
-                       return file;
-                    }
-               }
-          }
-        // XXX: handle file:// urls locally...
-        // XXX: if its a remote url or zip file etc. where we need to
-        // keep tmp file around then we need to set keep to true
-        // efl_vpath_file_keept_set(file, EINA_TRUE);
-
-        // file:/// <- local file path uri
-        // file://localhost/ <- local file path uri
-        // file://hostname/ <- remove file path uri
-        // XXX: %c4,%17,%fe etc. are bytes escaped
-        // http://www.ietf.org/rfc/rfc2396.txt
-        // http://www.ietf.org/rfc/rfc1738.txt
-        // http://equinox-project.org/spec/file-uri-spec.txt
-        // http://en.wikipedia.org/wiki/File_URI_scheme
-     }
-   return file;
-}
-
-#include "interfaces/efl_vpath_core.eo.c"
diff --git a/src/lib/efl/interfaces/efl_vpath_core.eo
b/src/lib/efl/interfaces/efl_vpath_core.eo
deleted file mode 100644
index 0e238a02a9..0000000000
--- a/src/lib/efl/interfaces/efl_vpath_core.eo
+++ /dev/null
@@ -1,33 +0,0 @@
-class Efl.Vpath.Core (Efl.Object, Efl.Vpath)
-{
-   [[ Core EFL implementation of a Vpath system
-
-   @since 1.18
-   ]]
-   eo_prefix: efl_vpath_core;
-   methods {
-      core_get @class {
-         [[ This gets the global EFL Core Vpath class - only 1 -
singleton ]]
-         return: Efl.Vpath.Core; [[ Get the singleton core vpath ]]
-      }
-      meta_set {
-         [[ A Meta key is a mapping from a virtual path to a real one ]]
-         params {
-            key: string; [[ The magic path key being looked up ]]
-            path: string; [[ The real path the key maps to ]]
-         }
-      }
-      meta_get {
-         [[ This returns the real path set for a Meta key, or NULL if not
]]
-         params {
-            key: string; [[ The magic path key being looked up ]]
-         }
-         return: string; [[Real file path]]
-      }
-   }
-   implements {
-      Efl.Object.constructor;
-      Efl.Object.destructor;
-      Efl.Vpath.fetch;
-   }
-}
diff --git a/src/lib/efl/interfaces/efl_vpath_file.c
b/src/lib/efl/interfaces/efl_vpath_file.c
deleted file mode 100644
index 3e098828ed..0000000000
--- a/src/lib/efl/interfaces/efl_vpath_file.c
+++ /dev/null
@@ -1,74 +0,0 @@
-#include "config.h"
-#include "Efl.h"
-
-#define MY_CLASS EFL_VPATH_FILE_CLASS
-
-typedef struct _Efl_Vpath_File_Data Efl_Vpath_File_Data;
-
-struct _Efl_Vpath_File_Data
-{
-   const char *path;
-   const char *result;
-   Eina_Bool called : 1;
-   Eina_Bool keep : 1;
-};
-
-EOLIAN static void
-_efl_vpath_file_path_set(Eo *obj EINA_UNUSED, Efl_Vpath_File_Data *pd,
const char *path)
-{
-   eina_stringshare_replace(&(pd->path), path);
-}
-
-EOLIAN static const char *
-_efl_vpath_file_path_get(Eo *obj EINA_UNUSED, Efl_Vpath_File_Data *pd)
-{
-   return pd->path;
-}
-
-EOLIAN static void
-_efl_vpath_file_result_set(Eo *obj EINA_UNUSED, Efl_Vpath_File_Data *pd,
const char *path)
-{
-   eina_stringshare_replace(&(pd->result), path);
-}
-
-EOLIAN static const char *
-_efl_vpath_file_result_get(Eo *obj EINA_UNUSED, Efl_Vpath_File_Data *pd)
-{
-   return pd->result;
-}
-
-EOLIAN static void
-_efl_vpath_file_keep_set(Eo *obj EINA_UNUSED, Efl_Vpath_File_Data *pd,
Eina_Bool keep)
-{
-   pd->keep = keep;
-}
-
-EOLIAN static Eina_Bool
-_efl_vpath_file_keep_get(Eo *obj EINA_UNUSED, Efl_Vpath_File_Data *pd)
-{
-   return pd->keep;
-}
-
-EOLIAN static Eina_Bool
-_efl_vpath_file_do(Eo *obj EINA_UNUSED, Efl_Vpath_File_Data *pd)
-{
-   if (pd->called) return EINA_FALSE;
-   pd->called = EINA_TRUE;
-   efl_event_callback_call(obj, EFL_VPATH_FILE_EVENT_FETCHED, NULL);
-   return EINA_TRUE;
-}
-
-EOLIAN static void
-_efl_vpath_file_wait(Eo *obj EINA_UNUSED, Efl_Vpath_File_Data *pd
EINA_UNUSED)
-{
-   if (!pd->called)
-     {
-        pd->called = EINA_TRUE;
-        if (pd->result)
-          efl_event_callback_call(obj, EFL_VPATH_FILE_EVENT_FETCHED,
NULL);
-        else
-          efl_event_callback_call(obj, EFL_VPATH_FILE_EVENT_FAILED,
NULL);
-     }
-}
-
-#include "interfaces/efl_vpath_file.eo.c"
diff --git a/src/lib/efl/interfaces/efl_vpath_file.eo
b/src/lib/efl/interfaces/efl_vpath_file.eo
deleted file mode 100644
index 1568a3ea9c..0000000000
--- a/src/lib/efl/interfaces/efl_vpath_file.eo
+++ /dev/null
@@ -1,55 +0,0 @@
-class Efl.Vpath.File (Efl.Object)
-{
-   [[ VPath File is an actual representation of a downloaded/mapped vpath
file
-
-      Keep this object around for as long as you need to use the file as
it
-      may have been downloaded and kept as a local temporary file and
-      deletion may remove it.
-
-      When you have a Vpath File object for the first time, call the do()
-      method on it to actually begin/do the mapping. From here the
-      fetched or failed event callbacks will be called, inside of which
or
-      afterwards you can fetch the resulting local file path by getting
the
-      result property.
-
-      @since 1.18
-   ]]
-   eo_prefix: efl_vpath_file;
-   methods {
-      @property path {
-         [[ The original source path provided to lookup/fetch from ]]
-         set {}
-         get {}
-         values {
-             path: string; [[ The input virtual path to a file ]]
-         }
-      }
-      @property result {
-         [[ The resulting real local file path to open/read ]]
-         set {}
-         get {}
-         values {
-             path: string; [[ The resulting destination file ]]
-         }
-      }
-      @property keep {
-         [[ If this object has to be kept for the usage of the result ]]
-         set {}
-         get {}
-         values {
-             keep: bool; [[ If the object neerds tobe kept around ]]
-         }
-      }
-      do {
-        [[ Actually begin the resolving here - emit event now or do later
]]
-        return: bool; [[ Result callback already called ]]
-      }
-      wait {
-        [[ If not fetched yet, wait until it is and call result cb ]]
-      }
-   }
-   events {
-      fetched; [[ File successfully mapped/fetched ]]
-      failed; [[ File fetch or mapping failed ]]
-   }
-}
diff --git a/src/lib/efl/interfaces/efl_vpath_file_core.c
b/src/lib/efl/interfaces/efl_vpath_file_core.c
deleted file mode 100644
index e0328e7fb9..0000000000
--- a/src/lib/efl/interfaces/efl_vpath_file_core.c
+++ /dev/null
@@ -1,66 +0,0 @@
-#include "config.h"
-#include "Efl.h"
-
-#define MY_CLASS EFL_VPATH_FILE_CORE_CLASS
-
-typedef struct _Efl_Vpath_File_Core_Data Efl_Vpath_File_Core_Data;
-
-struct _Efl_Vpath_File_Core_Data
-{
-   int dummy;
-};
-
-EOLIAN static Efl_Object *
-_efl_vpath_file_core_efl_object_constructor(Eo *obj,
Efl_Vpath_File_Core_Data *pd)
-{
-   obj = efl_constructor(efl_super(obj, MY_CLASS));
-   pd->dummy = 0;
-   return obj;
-}
-
-EOLIAN static void
-_efl_vpath_file_core_efl_object_destructor(Eo *obj,
Efl_Vpath_File_Core_Data *pd)
-{
-   pd->dummy = 0;
-   efl_destructor(efl_super(obj, MY_CLASS));
-}
-
-EOLIAN static Eina_Bool
-_efl_vpath_file_core_efl_vpath_file_do(Eo *obj, Efl_Vpath_File_Core_Data
*pd)
-{
-   const char *path;
-
-   if (efl_vpath_file_result_get(obj))
-     return efl_vpath_file_do(efl_super(obj, MY_CLASS));
-   // vpath core didn't find a match, so it'ss likely a protocol like
-   // http:// etc. etc. so deal with that here
-   path = efl_vpath_file_path_get(obj);
-   if (path)
-     {
-        if ((!strncasecmp(path, "http://";, 7)) ||
-            (!strncasecmp(path, "https://";, 8)))
-          {
-             // XXX: handle urls --- need a loop object
-          }
-     }
-   // ...
-   pd->dummy = 0;
-
-   // not a magic path - just set result to path
-   efl_vpath_file_result_set(obj, efl_vpath_file_path_get(obj));
-   return efl_vpath_file_do(efl_super(obj, MY_CLASS));
-}
-
-EOLIAN static void
-_efl_vpath_file_core_efl_vpath_file_wait(Eo *obj,
Efl_Vpath_File_Core_Data *pd)
-{
-   if (efl_vpath_file_result_get(obj))
-     {
-        efl_vpath_file_do(efl_super(obj, MY_CLASS));
-        return;
-     }
-   pd->dummy = 0;
-   // XXX: not found yet, so do what is necessary
-}
-
-#include "interfaces/efl_vpath_file_core.eo.c"
diff --git a/src/lib/efl/interfaces/efl_vpath_file_core.eo
b/src/lib/efl/interfaces/efl_vpath_file_core.eo
deleted file mode 100644
index 6a627f032e..0000000000
--- a/src/lib/efl/interfaces/efl_vpath_file_core.eo
+++ /dev/null
@@ -1,14 +0,0 @@
-class Efl.Vpath.File.Core (Efl.Vpath.File)
-{
-   [[ Core EFL implementation of a Vpath File
-
-   @since 1.18
-   ]]
-   eo_prefix: efl_vpath_file_core;
-   implements {
-      Efl.Object.constructor;
-      Efl.Object.destructor;
-      Efl.Vpath.File.do;
-      Efl.Vpath.File.wait;
-   }
-}
diff --git a/src/lib/efl/interfaces/efl_vpath_manager.c
b/src/lib/efl/interfaces/efl_vpath_manager.c
deleted file mode 100644
index cae265c187..0000000000
--- a/src/lib/efl/interfaces/efl_vpath_manager.c
+++ /dev/null
@@ -1,88 +0,0 @@
-#include "config.h"
-#include "Efl.h"
-
-#define MY_CLASS EFL_VPATH_MANAGER_CLASS
-
-typedef struct _Efl_Vpath_Manager_Data Efl_Vpath_Manager_Data;
-typedef struct _Efl_Vpath_Manager_Entry Efl_Vpath_Manager_Entry;
-
-struct _Efl_Vpath_Manager_Data
-{
-   Eina_List *list;
-};
-
-struct _Efl_Vpath_Manager_Entry
-{
-   Efl_Vpath *vpath;
-   int priority;
-};
-
-static Efl_Vpath_Manager_Data vpath_manager =
-{
-   NULL
-};
-
-EOLIAN static Efl_Vpath_File *
-_efl_vpath_manager_fetch(Eo *obj EINA_UNUSED, void *pd EINA_UNUSED, const
char *path)
-{
-   Efl_Vpath_Manager_Entry *entry;
-   Eina_List *l;
-   Efl_Vpath_File *file;
-
-   EINA_LIST_FOREACH(vpath_manager.list, l, entry)
-     {
-        file = efl_vpath_fetch(entry->vpath, path);
-        if (file) return file;
-     }
-   file = efl_add(EFL_VPATH_FILE_CLASS, NULL);
-   if (file)
-     {
-        efl_vpath_file_path_set(file, path);
-        efl_vpath_file_result_set(file, path);
-     }
-   return file;
-}
-
-static int
-_register_sort_cb(Efl_Vpath_Manager_Entry *e1, Efl_Vpath_Manager_Entry
*e2)
-{
-   // sort higher numbers first in  list
-   return (e2->priority - e1->priority);
-}
-
-static void
-_cb_vpath_del(void *data, const Efl_Event *event)
-{
-   efl_vpath_manager_unregister(EFL_VPATH_MANAGER_CLASS, event->object);
-   efl_event_callback_del(event->object, EFL_EVENT_DEL, _cb_vpath_del,
data);
-}
-
-EOLIAN static void
-_efl_vpath_manager_register(Eo *obj, void *pd EINA_UNUSED, int priority,
Efl_Vpath *vpath)
-{
-   Efl_Vpath_Manager_Entry *entry =
malloc(sizeof(Efl_Vpath_Manager_Entry));
-   entry->vpath = vpath;
-   entry->priority = priority;
-   efl_event_callback_add(vpath, EFL_EVENT_DEL, _cb_vpath_del, obj);
-   vpath_manager.list = eina_list_sorted_insert
-     (vpath_manager.list, EINA_COMPARE_CB(_register_sort_cb), entry);
-}
-
-EOLIAN static void
-_efl_vpath_manager_unregister(Eo *obj EINA_UNUSED, void *pd EINA_UNUSED,
Efl_Vpath *vpath)
-{
-   Efl_Vpath_Manager_Entry *entry;
-   Eina_List *l;
-
-   EINA_LIST_FOREACH(vpath_manager.list, l, entry)
-     {
-        if (entry->vpath == vpath)
-          {
-             vpath_manager.list =
eina_list_remove_list(vpath_manager.list, l);
-             free(entry);
-             return;
-          }
-     }
-}
-
-#include "interfaces/efl_vpath_manager.eo.c"
diff --git a/src/lib/efl/interfaces/efl_vpath_manager.eo
b/src/lib/efl/interfaces/efl_vpath_manager.eo
deleted file mode 100644
index e2d301634b..0000000000
--- a/src/lib/efl/interfaces/efl_vpath_manager.eo
+++ /dev/null
@@ -1,30 +0,0 @@
-class Efl.Vpath.Manager (Efl.Object)
-{
-   [[ Vpath Manager manages multiple VPath objects that remap/download
-
-   @since 1.18
-   ]]
-   eo_prefix: efl_vpath_manager;
-   methods {
-      fetch @class {
-         [[ This class function fetches a Vpath File given an input path
]]
-         params {
-            path: string; [[ The input virtual file path to fetch ]]
-         }
-         return: Efl.Vpath.File @owned; [[ An object representing the
file ]]
-      }
-      register @class {
-         [[Register a vpath with the manager ]]
-         params {
-            priority: int; [[ Search order - higher values tried first ]]
-            vpath: Efl.Vpath @nonull; [[ A Vpath implementation object ]]
-         }
-      }
-      unregister @class {
-         [[ Unregister a vpath from the manager ]]
-         params {
-            vpath: Efl.Vpath @nonull; [[ A Vpath implementation object ]]
-         }
-      }
-   }
-}



------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to