datastore for moduels to share data via - they are in charge of cleaning up

and reference counts and stuff tho


SVN revision: 15049
This commit is contained in:
Carsten Haitzler 2005-06-02 04:21:00 +00:00
parent 417742def8
commit a0d654aa60
5 changed files with 54 additions and 1 deletions

4
TODO
View File

@ -55,6 +55,10 @@ Also look at all the .c files - they have their own localized TODO lists
These are in no particular order:
* libechack needs to come back - and execute all things with libehack preloads active
* get all libehack properties if they exist
* titlebar/border expansion/gadget panel for moduels to put window widgets in
* a generic module messaging system (events with strings)
* add actions to flip desktops on a given zone and/or container only
* don't show borders before window
* double check edje and evas image caches are working

View File

@ -55,7 +55,8 @@ e_moveresize.h \
e_actions.h \
e_popup.h \
e_ipc_codec.h \
e_prefix.h
e_prefix.h \
e_datastore.h
enlightenment_SOURCES = \
e_main.c \
@ -102,6 +103,7 @@ e_actions.c \
e_popup.c \
e_ipc_codec.c \
e_prefix.c \
e_datastore.c \
$(ENLIGHTENMENTHEADERS)
enlightenment_LDFLAGS = -export-dynamic @e_libs@ @dlopen_libs@

31
src/bin/e_datastore.c Normal file
View File

@ -0,0 +1,31 @@
/*
* vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
*/
#include "e.h"
/* local subsystem functions */
/* local subsystem globals */
static Evas_Hash *store = NULL;
/* externally accessible functions */
void
e_datastore_set(char *key, void *data)
{
store = evas_hash_del(store, key, NULL);
store = evas_hash_add(store, key, data);
}
void *
e_datastore_get(char *key)
{
return evas_hash_find(store, key);
}
void
e_datastore_del(char *key)
{
store = evas_hash_del(store, key, NULL);
}
/* local subsystem functions */

15
src/bin/e_datastore.h Normal file
View File

@ -0,0 +1,15 @@
/*
* vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
*/
#ifdef E_TYPEDEFS
#else
#ifndef E_DATASTORE_H
#define E_DATASTORE_H
EAPI void e_datastore_set(char *key, void *data);
EAPI void *e_datastore_get(char *key);
EAPI void e_datastore_del(char *key);
#endif
#endif

View File

@ -11,6 +11,7 @@ static int _e_prefix_try_argv(char *argv0);
static char *_exe_path = NULL;
static char *_prefix_path = NULL;
/* externally accessible functions */
int
e_prefix_determine(char *argv0)
{