diff --git a/doc/cache.txt b/doc/cache.txt index ac5364a99..c8662e86e 100644 --- a/doc/cache.txt +++ b/doc/cache.txt @@ -234,7 +234,10 @@ SOLUTION: .order files USED BY: + Menus, bars, startup, restart. WHEN: + When displaying the menu or bar. At startup and restart. When + editing them. ISSUES: SOLUTION: @@ -278,6 +281,45 @@ ISSUES: conversion didn't help. It does hide some other bugs though, so that needs to be cleaned up first. + How this all hangs together is complex. + + Evas_List *_e_app_repositories; + Only contains ~/.e/e/applications/all for now. + + E_App *_e_apps_all = ~/.e/e/applications/all + Currently has all the E_Apps as subbapps, but only used as if it was a single E_App. + On the other hand, this is scanned at startup time, so is used to preload the caches. + + _e_apps_list = Most recently used list / all apps list. + + E_App members - + + E_App *parent; /* the parent e_app node */ + e_apps.c internal + This is in a directory, the parent is the E_App for that directory. + + Evas_List *subapps; /* if this a directory, a list of more E_App's */ + e_apps.c internal except for _e_startup and _e_int_menus_apps_scan + This will be a directory with a .order file, subapps points to the content E_Apps. + + Evas_List *references; /* If this app is in a main repository, this would + be a list to other eapp pointing to this */ + e_apps.c internal + E_Apps in a repository are copied before use, this points to those copies. + + E_App *orig; /* if this is a copy, point to the original */ + e_apps.c internal except for _e_border_menu_cb_icon_edit + E_Apps in a repository are copied before use, this points to the original. + + Evas_List *instances; /* a list of all the exe handles for executions */ + e_apps.c internal except for e_zone_exec + Tracks E_Apps that are currently running. + + Ecore_File_Monitor *monitor; /* Check for changes and files */ + e_apps.c internal + Only E_Apps that are directories are monitored. + + SOLUTION: Start by putting all filenames in ~/.e/e/applications/all in a hash with "empty" E_Apps. Fill the "empty" E_Apps during idle time, also @@ -285,8 +327,10 @@ SOLUTION: hash and put it in the directory. The most recently used list can be built from whatever gets used, it - will actually speed things up if it does not contain everything, as - it is usually a linear search. + could actually speed things up if it does not contain everything, as + it is usually a linear search. On the other hand, we could reuse + the subapps of _e_apps_all as this list, since it already exists, + and it doesn't care what order its subapps are in. Executing an app can probably afford to use a slow search. Border icons could make use of bouncy icon thumbnailing. e_int_config_apps