diff options
Diffstat (limited to 'libcontextprovider/provider_interface.h')
-rw-r--r-- | libcontextprovider/provider_interface.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/libcontextprovider/provider_interface.h b/libcontextprovider/provider_interface.h new file mode 100644 index 00000000..bf7a3cee --- /dev/null +++ b/libcontextprovider/provider_interface.h @@ -0,0 +1,44 @@ + +#ifndef __PROVIDER_INTERFACE_H__ +#define __PROVIDER_INTERFACE_H__ + +#include <glib.h> +#include <glib-object.h> +#include <gee/arraylist.h> +#include <string_set.h> + +G_BEGIN_DECLS + + +#define CONTEXT_PROVIDER_TYPE_PROVIDER (context_provider_provider_get_type ()) +#define CONTEXT_PROVIDER_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONTEXT_PROVIDER_TYPE_PROVIDER, ContextProviderProvider)) +#define CONTEXT_PROVIDER_IS_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONTEXT_PROVIDER_TYPE_PROVIDER)) +#define CONTEXT_PROVIDER_PROVIDER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), CONTEXT_PROVIDER_TYPE_PROVIDER, ContextProviderProviderIface)) + +typedef struct _ContextProviderProvider ContextProviderProvider; +typedef struct _ContextProviderProviderIface ContextProviderProviderIface; + +/** + * ContextProviderProvider: + * + * Represents a provider of context + */ +struct _ContextProviderProviderIface { + GTypeInterface parent_iface; + void (*get) (ContextProviderProvider* self, ContextProviderStringSet* keys, GHashTable* ret, GeeArrayList* unavailable_keys); + void (*keys_subscribed) (ContextProviderProvider* self, ContextProviderStringSet* keys_subscribed); + void (*keys_unsubscribed) (ContextProviderProvider* self, ContextProviderStringSet* keys_unsubscribed, ContextProviderStringSet* keys_left); + ContextProviderStringSet* (*provided_keys) (ContextProviderProvider* self); +}; + + +void context_provider_provider_get (ContextProviderProvider* self, ContextProviderStringSet* keys, GHashTable* ret, GeeArrayList* unavailable_keys); +void context_provider_provider_keys_subscribed (ContextProviderProvider* self, ContextProviderStringSet* keys_subscribed); +void context_provider_provider_keys_unsubscribed (ContextProviderProvider* self, ContextProviderStringSet* keys_unsubscribed, ContextProviderStringSet* keys_left); +ContextProviderStringSet* context_provider_provider_provided_keys (ContextProviderProvider* self); +GType context_provider_provider_get_type (void); + + +G_END_DECLS + +#endif |