afb-binding.hpp: Fix constexpr of 'binding'
[src/app-framework-binder.git] / include / afb / afb-binding.hpp
index 1fc8b49..5942f76 100644 (file)
@@ -110,7 +110,8 @@ public:
        int broadcast(json_object *object) const;
        int push(json_object *object) const;
 
-       void drop();
+       void unref();
+       void addref();
        const char *name() const;
 };
 
@@ -219,6 +220,8 @@ public:
        bool has_permission(const char *permission) const;
 
        char *get_application_id() const;
+
+       int get_uid() const;
 };
 
 /*************************************************************************/
@@ -261,7 +264,8 @@ inline void event::invalidate() { event_.itf = NULL; event_.closure = NULL; }
 inline int event::broadcast(json_object *object) const { return afb_event_broadcast(event_, object); } 
 inline int event::push(json_object *object) const { return afb_event_push(event_, object); }
 
-inline void event::drop() { afb_event_drop(event_); invalidate(); }
+inline void event::unref() { afb_event_unref(event_); invalidate(); }
+inline void event::addref() { afb_event_addref(event_); }
 inline const char *event::name() const { return afb_event_name(event_); }
 
 /* args */
@@ -401,6 +405,11 @@ inline char *req::get_application_id() const
        return req_.itf->get_application_id(req_.closure);
 }
 
+inline int req::get_uid() const
+{
+       return req_.itf->get_uid(req_.closure);
+}
+
 /* commons */
 inline struct sd_event *get_event_loop()
        { return afb_daemon_get_event_loop_v2(); }
@@ -576,7 +585,7 @@ constexpr afb_verb_v2 verbend()
        return r;
 }
 
-const afb_binding_v2 binding(const char *name, const struct afb_verb_v2 *verbs, const char *info = nullptr, int (*init)() = nullptr, const char *specification = nullptr, void (*onevent)(const char*, struct json_object*) = nullptr, bool noconcurrency = false, int (*preinit)() = nullptr)
+constexpr afb_binding_v2 binding(const char *name, const struct afb_verb_v2 *verbs, const char *info = nullptr, int (*init)() = nullptr, const char *specification = nullptr, void (*onevent)(const char*, struct json_object*) = nullptr, bool noconcurrency = false, int (*preinit)() = nullptr)
 {
        afb_binding_v2 r = { 0, 0, 0, 0, 0, 0, 0, 0 };
        r.api = name;