afs-supervisor: Add systemd service and config
[src/app-framework-binder.git] / src / afb-api.h
index 6dfbf02..ff1bc10 100644 (file)
@@ -19,6 +19,7 @@
 
 struct afb_xreq;
 struct afb_apiset;
+struct json_object;
 
 struct afb_api_itf
 {
@@ -27,12 +28,19 @@ struct afb_api_itf
        void (*update_hooks)(void *closure);
        int (*get_verbosity)(void *closure);
        void (*set_verbosity)(void *closure, int level);
+       struct json_object *(*describe)(void *closure);
 };
 
 struct afb_api
 {
        void *closure;
        struct afb_api_itf *itf;
+       const void *group;
 };
 
-extern int afb_api_is_valid_name(const char *name);
+extern int afb_api_is_valid_name(const char *name, int hookable);
+
+#define AFB_API_UNHOOKABLE_PREFIX_CHAR    '$'
+#define AFB_API_UNHOOKABLE_PREFIX_STRING  "$"
+#define afb_api_is_hookable(api)          ((api)[0] != AFB_API_UNHOOKABLE_PREFIX_CHAR)
+