diff options
author | Alexander Larsson <alexl@redhat.com> | 2009-06-22 20:39:03 +0200 |
---|---|---|
committer | Alexander Larsson <alexl@redhat.com> | 2009-06-23 15:10:27 +0200 |
commit | c97601731a5dbc9d34e8c4c208e993a3723deec5 (patch) | |
tree | e8e32dc0d08e658898cb43570f6626a7a8e2c605 /metadata/metatree.h | |
parent | a8d6c3db07ad5d9dc75b94eb95492b03bc20e788 (diff) | |
download | gvfs-c97601731a5dbc9d34e8c4c208e993a3723deec5.tar.gz |
Initial code for metadata store
This adds a mmap based metadata store for NFS-safe highly
efficient desktop-wide metadata lookup and store.
Diffstat (limited to 'metadata/metatree.h')
-rw-r--r-- | metadata/metatree.h | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/metadata/metatree.h b/metadata/metatree.h new file mode 100644 index 00000000..b18d30d9 --- /dev/null +++ b/metadata/metatree.h @@ -0,0 +1,58 @@ +#include <glib.h> + +typedef struct _MetaTree MetaTree; + +typedef enum { + META_KEY_TYPE_NONE, + META_KEY_TYPE_STRING, + META_KEY_TYPE_STRINGV +} MetaKeyType; + +typedef gboolean (*meta_tree_dir_enumerate_callback) (const char *entry, + guint64 last_changed, + gboolean has_children, + gboolean has_data, + gpointer user_data); + +typedef gboolean (*meta_tree_keys_enumerate_callback) (const char *key, + MetaKeyType type, + gpointer value, + gpointer user_data); + +void meta_tree_free (MetaTree *tree); +MetaTree *meta_tree_open (const char *filename, + gboolean for_write); +void meta_tree_refresh (MetaTree *tree); /* May invalidates all strings */ + + +MetaKeyType meta_tree_lookup_key_type (MetaTree *tree, + const char *path, + const char *key); +guint64 meta_tree_get_last_changed (MetaTree *tree, + const char *path); +char * meta_tree_lookup_string (MetaTree *tree, + const char *path, + const char *key); +char ** meta_tree_lookup_stringv (MetaTree *tree, + const char *path, + const char *key); +void meta_tree_enumerate_dir (MetaTree *tree, + const char *path, + meta_tree_dir_enumerate_callback callback, + gpointer user_data); +void meta_tree_enumerate_keys (MetaTree *tree, + const char *path, + meta_tree_keys_enumerate_callback callback, + gpointer user_data); +gboolean meta_tree_flush (MetaTree *tree); +gboolean meta_tree_unset (MetaTree *tree, + const char *path, + const char *key); +gboolean meta_tree_set_string (MetaTree *tree, + const char *path, + const char *key, + const char *value); +gboolean meta_tree_set_stringv (MetaTree *tree, + const char *path, + const char *key, + const char **value); |